Commit Graph

642 Commits

Author SHA1 Message Date
baldurk 5cb9b90f5f Implement support for VK_KHR_synchronization2
* For the most part we implement this as a thin pass-through layer. Where we
  care about things (image barriers for layout transitions and queue
  submissions) we do two different things:
  - For image barriers, we "downcast" to plain VkImageMemoryBarrier. Currently
    the only thing that's unique to VkImageMemoryBarrier2KHR is extra access
    flags and pipeline stages, which we don't care about. This keeps a lot of
    code from having to either handle two paths or handle the new path and then
    do lots of conversions back to VkImageMemoryBarrier when running on older
    drivers.
  - For queue submissions we do the opposite. We promote old VkSubmitInfo to
    VkSubmitInfo2KHR and process that in a common function, then if necessary
    we decay back to VkSubmitInfo before sending to the driver.
2021-02-17 15:03:52 +00:00
baldurk cf23c35d60 Update vulkan headers to 1.1.170
* Note the sync2 structs aren't properly sorted in vk_next_chains.cpp because
  I'm about to implement it and I'm too lazy to insert them in the right places
  only to go find them all again to remove them.
2021-02-17 14:04:57 +00:00
baldurk 7e6a785055 Add test of vulkan dedicated allocations 2021-02-01 14:43:43 +00:00
baldurk 0513914c42 Test that correct root-constant entry is used for cbuffer values 2021-02-01 13:39:09 +00:00
baldurk 2333cfa2a1 Test that UAV reads in shader debugging read data prior to event 2021-02-01 13:31:23 +00:00
baldurk 6b12864a7b Ensure pixel pack/unpack buffers don't break overlays on GL 2021-02-01 13:22:40 +00:00
baldurk 28bf213382 Test APIs where scissor can be disabled doesn't affect overlays 2021-02-01 13:14:28 +00:00
baldurk 13ead841a4 Add tests of cubemaps on GL
* GL treats cubemaps in a more special/different way than other APIs
2021-02-01 12:49:02 +00:00
baldurk cf3dc150cb Test compute bindless feedback on vulkan 2021-02-01 11:55:54 +00:00
baldurk 2629a8b096 Fix AMD shader extensions test to check for tuples 2021-01-29 10:57:39 +00:00
baldurk 56c5c18aac Tweak leak threshold on vulkan test
* It seems like some drivers don't free some memory from the resident set until
  a certain point, meaning the peak memory is higher after a couple of captures
  then goes down. This isn't a true leak and us  checking the entire process's
  working set size is a very poor litmus test, so bumping this value is fine.
2021-01-27 00:29:46 +00:00
baldurk 5aadf1d649 Fix Iter_Test invalid python tuple use 2021-01-25 12:21:22 +00:00
baldurk 106999a43a Fix leak of descriptor memory during each capture on D3D12 2021-01-25 11:13:28 +00:00
baldurk 5ce6093661 Pick resident set memory for current memory usage on linux
* The virtual size can be much bigger than the actual amount of memory in use
  that we care about.
2021-01-22 14:20:11 +00:00
baldurk 019d75cd0d Fix demos project compilation on linux 2021-01-22 14:19:33 +00:00
baldurk f45bdcb49a Fix Iter_Test and Repeat_Load for newest python API 2021-01-22 13:24:48 +00:00
baldurk 20d8ae2dcf Fix display of 3D texture slices when linear sampling
* When displaying mip 0 of a texture at less than 100% zoom we linear sampling,
  but we don't want to linear sample across slices. Adding a half pixel offset
  in z ensures we sample precisely on the slice itself.
2021-01-20 17:15:34 +00:00
baldurk f263e244f4 Tweak allowed memory increase when loading VK_Large_Descriptor_Sets 2021-01-19 17:25:35 +00:00
baldurk 0a5353a398 Test inverse viewport height in VK_Mesh_Zoo, with rendering and picking 2021-01-19 17:20:59 +00:00
baldurk 64131e0510 Test vulkan overalys with rasterizer discard and otherwise invalid state
* E.g. no viewport/scissors bound.
2021-01-19 16:43:57 +00:00
baldurk 086b038d0b Add simple checks for large memory leaks
* Smaller memory leaks are harder to differentiate from noise, so we go for a
  large enough leak to be noticable over time (50,000 frames).
2021-01-19 15:22:12 +00:00
baldurk 7e5fc40779 Ignore number of captures made in D3D11_Swapchain_Zoo 2021-01-18 14:18:34 +00:00
baldurk 84dabc7b54 Update buffer size when it resizes mid-capture. Closes #2149
* We need to be careful with this, as we want to update the buffer's creation
  chunks without invalidating any data that may be present there.
2021-01-18 12:20:16 +00:00
baldurk 86ca794494 Add test to check ID3DDeviceContextState refcounting/rewrapping 2021-01-15 11:33:13 +00:00
baldurk a083680b08 Test that primitive restart is enabled for either GL state 2021-01-13 16:29:01 +00:00
baldurk bb5834fd1c Add test of root signature ranges larger than the descriptor heap 2021-01-13 16:07:43 +00:00
baldurk ec50e9005a Test inline uniform block descriptors in VK_CBuffer_Zoo 2021-01-13 15:32:09 +00:00
baldurk 92192ef348 Add test to ensure vkBindBufferMemory2 can be split up 2021-01-13 14:48:40 +00:00
baldurk f5a99d47a2 Update D3D headers in test project 2021-01-13 14:25:54 +00:00
baldurk 026da176bb Update copyright years to 2021 2021-01-13 13:56:10 +00:00
baldurk a3007ffa05 Make sure BDA capture/replay bit is enabled 2021-01-13 10:42:46 +00:00
baldurk 8ed47fd75a Update vulkan headers to 1.2.166 2021-01-11 15:55:21 +00:00
baldurk b01c84f051 Implement proper handling for unbound views in shader debugging
* We force FetchUAV/FetchSRV to always return something, and it can be empty if
  the resource is unbound meaning we get proper OOB behaviour for it. The D3D12
  implementation still prints an error message for registers that don't
  correspond to the root signature at all, but for D3D11 we silently allow it.
2021-01-05 18:26:27 +00:00
baldurk 9a6ec5282d Don't build GL_Callstacks demo in release
* The nice callstacks we're looking for won't happen in release builds.
2020-12-10 16:56:34 +00:00
baldurk bd342e1596 Fix buffer overrun in D3D12_Draw_Zoo 2020-12-10 16:46:01 +00:00
baldurk 8b5234d0af Fix texture zoo remote server launch when running from renderdoccmd 2020-12-10 16:40:26 +00:00
baldurk 232c4a9ecb Fix texture zoo tests 2020-12-10 16:40:10 +00:00
baldurk 68d690a912 When rendering overlays, clear to transparent black
* This might cause some fringing artifacts when at low scales due to non-PMA
  colors but it means there are no false-positive green pixels.
2020-12-09 18:16:08 +00:00
baldurk 7ff7e0a71d Replace fixed C arrays with wrapper class in public interface
* These map more naturally to python tuples and are easier to wrap in and out.
* We also tidy up the FloatVecVal etc and standardise the members of
  ShaderValue.
2020-12-09 18:16:08 +00:00
baldurk 580f96c8a1 Rename ShaderVariableType/Descriptor to ShaderConstant
* These structs are no longer used with ShaderVariable so the name is misleading
  at best.
2020-12-09 15:18:27 +00:00
baldurk 1ab2047ecb Reset state in D3D shader debugging to before draw when fetching UAVs
* Debugging shaders with UAV access could(likely will) have side-effects on
  those UAV contents, so when ContinueDebug needs to fetch UAV contents we
  should replay back to before the draw to fetch them.
* This replay only happens once per ContinueDebug, and UAV contents are cached
  globally so we only do it once per UAV that's accessed, so the impact is low.
2020-12-07 15:41:03 +00:00
baldurk b69ca4526e Log the specific error if vkCreateInstance fails in demo program 2020-12-03 10:59:05 +00:00
baldurk 883e023259 Avoid use of EXT_direct_state_access in tests
* Mesa doesn't implement the EXT version, only the KHR version
2020-11-24 16:47:35 +00:00
baldurk abf7e3bd90 Only declare half type if shaderFloat16 is supported
* Without this, the 16-bit storage only refers to ints (if that feature is
  available).
2020-11-24 16:44:08 +00:00
baldurk c9f1c9ea2e Update to AGS 6.0.1 2020-11-24 16:12:20 +00:00
baldurk bd5b79bd3a Tweak Repeat_Load to do two reload tests before grabbing baseline 2020-11-10 13:18:31 +00:00
baldurk 063131d288 Enable and expand float64 tests in VK_Shader_Debug_Zoo 2020-11-09 16:02:48 +00:00
baldurk 8be0da2ce3 Add a test of AMD shader operations 2020-11-04 17:48:49 +00:00
baldurk 55b84f4e7c Test that creating root signatures identical to internal sigs works OK 2020-10-29 16:27:31 +00:00
baldurk ed0138a242 Test that debugging sampling from vert shaders in D3D12 works correctly
* We also test that pixel shaders can be debugged even if they have
  DENY_ROOT_SIGNATURE_ACCESS enabled.
2020-10-29 16:12:33 +00:00