Commit Graph
133 Commits
Author SHA1 Message Date
Jake Turner 982f464eee Do not call end_section when a shader debug pixel comparison test fails 2024-09-20 17:44:25 +01:00
Jake Turner 42a1b4e641 For Test D3D12_Sharing validate the D3D12 Drawcall results
In addition to the Copy results
2024-09-18 12:45:55 +01:00
Jake Turner 0f8ad0d1fe Conditionally test SM 6.0, 6.6 in D3D12_Shader_Debug_Zoo
Added SM 5.0 to the basic compute shader debug test
2024-09-16 09:36:37 +01:00
Jake Turner 8745c399ad Extended existing shader model coverage to include 6.0, and 6.6
Added Compute shader test for SM 6.0 and SM 6.6
Added very basic vertex shader test to the triangle rendering for each SM
2024-09-10 14:59:03 +01:00
Jake Turner 84786aea20 Demos test D3D12_Shader_Mesh 2024-07-24 13:21:57 +01:00
baldurk 7db141c77b Implement bindless feedback for samplers on D3D12. Closes #3387 2024-07-22 16:17:10 +01:00
baldurk 9a18e871e5 Add testing of aliased bindings with descriptor feedback. Refs #3288 2024-04-10 18:58:53 +01:00
baldurk 9de4a79859 Update tests to new descriptor interface 2024-04-10 18:58:52 +01:00
baldurk 4caf3e4e13 Correct struct name typo in python script 2024-03-18 10:28:37 +00:00
Jake Turner 7934d1d16e Change DebugPixel() to take a DebugShaderInputs struct
DebugShaderInputs struct contains existing the parameters:

sample
primitive

and a new parameter

view

Default constructor for DebugShaderInputs sets the parameters to NoPreference (~0U).
2024-03-13 07:58:48 +00:00
Jake Turner 20578f46a6 Extend D3D12 ExecuteIndirect test to do multiple draws per Execute
The argument buffers are used fully used with no spare bytes
The python test iterates over every draw to check the replay has a valid output target count
This verifies the replay did not crash when replaying ExecuteIndirect with multiple draws and an argument buffer with no spare bytes
2024-01-30 17:03:11 +00:00
baldurk 49c96806b6 Add test of solo numbered semantics to linkage zoo tests 2024-01-23 11:11:14 +00:00
Jake Turner e18ea02a2b D3D12 Pixel History Test add some drawcall stress tests
1000 drawcalls of 1 instance of 1 triangle
1 drawcall of 1000 instances of 1 triangle

Python tests verify the count of modifications is correct, the modifications are self-consistent and the picked texture value matches the final modifications tex after value
2024-01-22 09:39:22 +00:00
Jake Turner edbcbe53e2 D3D12 Pixel History Simple D16 test 2024-01-09 12:44:14 +00:00
Jake Turner 9dad897802 Enable D3D12 Pixel History Depth Bounds test
Replay code was fixed in 3d5ce05e11
2024-01-02 14:05:00 +00:00
Jake Turner 04856b53c1 Enable D3D12 Pixel History MSAA test
Replay code was fixed in 7e8c22ce68
2024-01-02 14:05:00 +00:00
Jake Turner a70bed751b Extend D3D12 Pixel History tests
Check the post mod stencil at pixel location 110,100
Check the post mod stencil is unknown at pixel location 275, 260 for fragment zero of a multi-fragment event

Validate that in a fragment event the postMod stencil value should be unknown (-1 or -2)
This test validates the code change in 4815adaa83
2023-12-31 08:41:23 +00:00
Steve Karolewics 28ce7ac51c Add test for D3D12 pixel history 2023-12-18 07:51:51 +00:00
Dan Hawson 910f1dcd7e Add new d3d12_multi_wait_before_signal.py test
It's currently forcibly disabled via 'check_support' because it's known
to fail due to the fact that the commands are always serialised and
replayed in submission order instead of the order that respects queues
blocked on fence waits that get signalled later from other queues.
2023-11-08 15:25:36 +00:00
baldurk d88eff15f3 Update execute indirect test to verify more complex EI behaviour 2023-09-18 12:19:36 +01:00
Jake Turner 53bf231104 Extend D3D12 Execute Indirect test
Change it to do 8 indirect draws with a clear in between.
Check the pixel and mesh data for each draw is correct (simple triangle)
2023-07-03 13:05:10 +01:00
baldurk d57a7c9979 Fix error message in D3D12 compute test 2023-05-18 17:04:39 +01:00
baldurk 36731cb841 Handle maps on D3D12 of different aliases in a placed heap
* We need to check for map writes even if the mapped buffer isn't the one that's
  referenced by a submit but still overlaps it. We do this by moving to the heap
  for all placed resources so any map to a buffer on a heap is checked as long
  as any buffer bound to that heap is referenced.
2023-03-13 17:39:16 +00:00
baldurk 2c2bafa1a6 Add protection on D3D12 for bad internal API calls from python 2023-03-09 13:23:19 +00:00
baldurk 220b26aa59 Handle collisions with existing UAVs in root signature when patching
* When debugging a pixel or doing quad overdraw we replace the pixel shader and
  patch in our own UAV. Previously we were moving other UAVs out of the way that
  were visible to the pixel shader, but this fails if a UAV is visible to all
  stages and used in a vertex stage.
* Now instead for pixel shader inputs we pick a free space and use it. For quad
  overdraw we pick an arbitrary high space to hopefully use the precompiled
  shader, and if it's somehow not free we recompile the shader with a free
  space.
2023-01-06 16:53:20 +00:00
baldurk 69c1990035 Fix handling of descriptor feedback in iterating arrays 2022-11-21 15:22:43 +00:00
baldurk 14484cc67c Slightly increase D3D12 leak check threshold
* We're now caching descriptor data so we deliberately allocate a bit more
  memory. This will still allow us to catch egregious leaks.
2022-11-15 13:11:16 +00:00
baldurk aa412ddf89 Don't hard-fail on results of undefined tests in shader debug zoo 2022-09-19 16:44:56 +01:00
baldurk 00d7827d06 Allow a ~500 difference between PS invocations and samples passed
* This can be caused by overshading/rasterization differences
2022-09-19 16:44:56 +01:00
baldurk 8e4b44aed7 Add test of integer offsets on texture sample for D3D shader debug 2022-06-30 13:51:26 +01:00
baldurk 7d9a1a05b8 Correctly handle programs that don't create graphics queues 2022-06-21 15:31:41 +01:00
baldurk 71d7f000c4 Add test for D3D12 texture contents including with DENY_SHADER_RESOURCE 2022-06-17 17:27:30 +01:00
baldurk a351fc14f4 Fix tests for API changes 2022-05-24 12:48:17 +01:00
baldurk cef00a102b Add struct VarType and combine flags into single field
* This is not a space saving right now, but allows more flags to be added
  without adding more storage.
2022-05-20 13:37:25 +01:00
baldurk cfdbc3da57 Remove outdated experimental feature check 2022-05-03 15:30:47 +01:00
baldurk 04c62f9595 Add a test debugging shaders on D3D12 with banned flags in the root sig 2022-04-28 14:19:38 +01:00
baldurk 7066692262 Test that sampler heaps are represented in structured data properly
* This is a test of a specific case of lazy serialisation, but in particular
  D3D12 descriptors do some aliasing tricks for types to compress the data, so
  repeated serialisation needs to be safe.
2022-04-28 13:39:37 +01:00
Benoit Dumesnil 2ace1fe84d Add test of D3D12 bindless feedback for shadermodel 6.6. 2022-03-21 11:30:47 +00:00
Benoit Dumesnil e47450a43b Fix test of D3D12 bindless feedback.
Fix a typo in a comment in D3D12_Descriptor_Indexing.py.
Fix UAV using a typed buffer view instead of a structured buffer view.
Fix SetDescriptorHeaps being called before ClearUnorderedAccessViewUint
2022-03-21 11:30:47 +00:00
baldurk 2498043374 Add test of standard counters 2021-11-19 11:56:36 +00:00
baldurk 352821026e Add tests that frame 0 can be captured and contains correct events 2021-11-11 14:43:17 +00:00
baldurk 3cec544508 Patch quad overdraw shaders on D3D12 to follow rules. Closes #2356
* This is a stupid requirement as the quad overdraw shader doesn't use any
  interpolators, but the D3D12 runtime complains and refuses to create a PSO
  unless the PS has a matching signature. This works as long as the position was
  the first output from the previous stage, but if it isn't the PSO fails to
  create.
* To fix this, we take the existing shader and patch it by grafting the output
  signature from the last stage over onto the input signature, and patching up
  where the position is.
2021-10-20 17:22:43 +01:00
baldurk 97dfda3c3c Fix use of GetCBufferVariableContents in tests 2021-10-18 10:20:08 +01:00
baldurk 62d6ffaec2 Enable DXIL bindless feedback test 2021-09-27 12:26:22 +01:00
baldurk a76aa1dede Update RGA devices list to include RDNA2
* We also drop everything gfx804 to keep the device list from being too bloated,
  as well as AMD planning to remove support for these devices soon.
2021-08-18 20:12:07 +01:00
baldurk 50219acaf9 Fix crash when tests are run on linux 2021-07-28 11:37:14 +01:00
baldurk a3a0aae660 Handle fixed index lookups in array resources 2021-07-19 16:51:50 +01:00
baldurk abe0787bb2 Add test of D3D12 bindless feedback 2021-07-15 16:41:23 +01:00
baldurk 23fe6ae67f Remove SM5.0 test for D3D12 AMD shader extensions
* This seems not to work and is not officially supported so there's little value
  in testing it.
2021-07-05 14:20:48 +01:00
baldurk a1b5f01159 Fix tests with references to removed properties 2021-07-05 14:20:48 +01:00