Commit Graph

15744 Commits

Author SHA1 Message Date
Jake Turner 673caa32a7 Add the input variables to DXIL debugger sourcevars 2025-03-20 13:52:21 +00:00
Jake Turner e8665926cc DXIL Disassembly match bindings with upperBound = -1
i.e.

Texture2DArray<float> resArray[] : register(t0);
2025-03-20 13:52:21 +00:00
Jake Turner d7fa6c9df0 Improve DXIL Debugger support for cbuffer arrays
Resolve the cbuffer resource names correctly to show the correct data in the "Constants" view in the Shader Viewer UI
Add a cbuffer reference mapping from SSA Id handles to: constantBufferIndex and arrayIndex
Change constantBlocksDatas to be a map from a cbuffer reference to a bytebuf
2025-03-20 13:52:21 +00:00
Jake Turner 25e0612a50 Improve SSA variable name and accessed resource name for resource arrays
For a dynamic index resolve the name to the actual array index i.e. res2[1] instead of res2[_70 - 7]
2025-03-20 13:52:21 +00:00
Jake Turner 03b5c94144 Improve DXIL disassembly for accessing resource arrays
Subtract the base register away from the register to show the correct array index
2025-03-20 13:52:20 +00:00
Jake Turner e444aff7cf Extend D3D12_Shader_Debug_Zoo tests
New pixel shader for testing which does not contain resource references
Added new tests for ddx, ddy and discard
2025-03-20 13:52:20 +00:00
Jake Turner 025a6bbf86 Extend D3D12_Resource_Mapping_Zoo test to SM6 & SM6.6
To test the DXIL debugger and added a test of dynamic SRV array index
2025-03-20 13:52:20 +00:00
Jake Turner dae198b39e Extend D3D12_Draw_Zoo to SM6 & SM6.6
To test the DXIL debugger
2025-03-20 13:52:19 +00:00
Jake Turner ac2da339ae Extend D3D12_Bufer_Truncation test to SM6.0 & SM6.6
To test the DXIL debugger
2025-03-20 13:52:19 +00:00
Jake Turner 9163aa76c2 Add SM6.6 tests to D3D12_CBuffer_Zoo 2025-03-20 13:52:19 +00:00
Jake Turner 2dbaf739d7 Extend D3D12_Shader_Linkage_Zoo test to SM6
To test the DXIL debugger
2025-03-20 13:52:19 +00:00
Jake Turner b27f5d5872 Extend D3D12_PrimitiveID test to SM6
To test the DXIL debugger
2025-03-20 13:52:18 +00:00
Jake Turner 506d1a1222 Minor tidyup of D3D12_Mesh_Shader python 2025-03-20 13:52:18 +00:00
Jake Turner 7eef20b3db Added demos test VK_Mesh_Shader
Similar on d3d12_mesh_shader test, move some helper code from d3d12_mesh_shader python to testcase.py to allow for sharing with vk_mesh_shader python
2025-03-20 13:52:17 +00:00
baldurk 1ab434d983 Work around NV driver bug miscompiling quadSwizzleHelper() in some cases 2025-03-19 18:31:56 +00:00
baldurk 20eda2c3a2 Fix mapping calculation for array-of-structs variables 2025-03-19 18:31:56 +00:00
baldurk b565693e15 Pass subgroup size and index through to DXIL instruction execute 2025-03-19 18:31:56 +00:00
baldurk 9bdb5bc134 Add D3D12_Subgroup_Zoo test 2025-03-19 18:31:56 +00:00
baldurk 083af09397 Expand input fetching to VS & CS when subgroup info is needed 2025-03-19 18:31:55 +00:00
baldurk 54810cc8a5 Fix thread calculation for subgroup&workgroup scope in shader debug 2025-03-19 18:31:55 +00:00
baldurk dbb58a1179 Extract PS input fetching code into common helpers to be re-used 2025-03-19 18:31:55 +00:00
baldurk 6b0604f735 Refactor how builtins are gathered & provided for DXIL debugging
* Buitins can either be thread-varying or global, we pick the narrowest type to
  use
2025-03-19 18:31:55 +00:00
baldurk 5914b0641d Expand D3D input fetchers to support VS&CS and support subgroup fetch 2025-03-19 18:31:55 +00:00
baldurk 59fbd3d820 Reflect explicit wave size out of compute shaders if present in DXIL 2025-03-19 18:31:55 +00:00
baldurk a20214452f Prepare DXIL debugger for larger workgroup sizes 2025-03-19 18:31:55 +00:00
Tristan Ritchie 2eade4650b Add support for VK_KHR_maintenance5 2025-03-19 15:43:08 +00:00
Remi Palandri 2b01465c79 keep driver's pipelineCacheUUID valid and use it for replay 2025-03-17 10:12:51 +00:00
baldurk b400d4bc52 Refactor D3D ps input fetch to use quad swizzle helper
* Also centralises and shares more code between D3D11 and D3D12 to use the same
  shader
2025-03-14 18:54:38 +00:00
baldurk 58cace21fb Add hlsl helper for reading other lanes via derivative swizzling 2025-03-14 18:54:38 +00:00
baldurk 2322e165de Update copyright years to 2025 2025-03-14 18:54:37 +00:00
Jasmine Hansen ffc985a957 Fix render overlay dynamic state for VK_EXT_shader_object
Mirrors the pipeline modifications with dynamic state for Highlight Draw, Depth, Stencil, Backface Cull, and Viewport Scissor
2025-03-13 21:08:32 +00:00
baldurk add78f9904 Print more useful errors in the event of mesh output failures
* These may not be caused by application errors, but in the event that they are
  this may be more actionable by the user - even though it's invalid API use.
2025-03-13 19:26:40 +00:00
baldurk 9b6f1a5b59 Try to generate reasonable reflection from PDB info
* On FXC if the user strips reflection info and uses a separate PDB, that PDB
  does not contain reflection information. Try to re-generate what we can from
  the PDB debug info, which is not perfect but
2025-03-13 16:45:53 +00:00
baldurk 7171eea3f9 Move scalar-offset calculating helper into common DXBC code 2025-03-13 16:17:31 +00:00
baldurk 2f6d881b8e Only do groupshared unrolling for groupshared declarations
* FXC sometimes seems to emit mappings for static variables which are
  nonsense/can't be used, and are also redundant against the actual information
  available elsewhere. Ignore these as we could potentially expand a huge number
  of mappings that are worthless.
2025-03-13 16:17:00 +00:00
baldurk 3dac15bd9d Disable GPU Reshape 2025-03-13 14:00:09 +00:00
baldurk 9bc6174f62 Disable reshade 2025-03-13 13:59:12 +00:00
Jake Turner e4b4cb02fc D3D12 Pixel shader debug support for Mesh shader generated primitives 2025-03-12 13:50:36 +00:00
Jake Turner 90827deed3 Add DebugPixel to D3D12_Mesh_Shader python tests
Validates can do shader debugging on pixels generated by mesh shaders
2025-03-12 13:50:36 +00:00
Jake Turner 9dffc2f6c6 Do not force rebuild DXIL reflection data when starting the debugger
Closes #3554
2025-03-12 13:50:36 +00:00
Jake Turner 7b3e1cd3f6 Free the debugger trace in multiple places during D3D12 shader tests 2025-03-09 11:30:11 +00:00
Jake Turner e5d09bb0f7 Improve fetching UAV texture data in the D3D12 shader debuggers
Use the resource format if the UAV format is unknown format (typeless)
2025-03-07 12:54:34 +00:00
Jake Turner 87b7f5de72 D3D12 Shader Debugger test for unknown format UAV with a typed Texture2D
Valid for UAV to have unknown format if the underlying resource has a typed format
2025-03-07 12:39:06 +00:00
Jake Turner ff25ea31f6 Handle getting post VS inputs when attribute offset larger than stride
i.e. storing de-interleaved data in a Vertex Buffer
2025-03-07 10:53:35 +00:00
baldurk c78f827c9e Improve quad swizzle helper to handle all possible swaps
* The old method with coarse+fine derivatives didn't return us thread 3's data
  into thread 0 (or vice versa) across the diagonal, which we needed in some
  cases.
* Porting the quad overdraw message passing works better.
2025-03-06 19:20:41 +00:00
baldurk 86e8909b1e Display colour swatch when showing cbuffer values as RGB. Closes #3533 2025-03-06 16:07:49 +00:00
baldurk 959d330488 Treat RGB display of float values as in linear space always. Refs #3533 2025-03-06 16:07:49 +00:00
Jake Turner 9cac526d49 Add d3d12_shader_debugdata_zoo test
Similar to d3d12_shader_debug_zoo but instead of verifying debugger simulation accuracy used to verify debug data is parsed and present

Supports SM6.0 and the DXIL debugger - verifies debug data in pixel and compute shaders
2025-03-06 13:34:57 +00:00
Jake Turner 5120723135 Add Shader source variable helper functions to rdtest
parse_shader_var_type()
get_source_shader_var_value()

moved out from D3D12_Shader_Debug_Zoo
2025-03-06 13:34:50 +00:00
Jake Turner c67c8fcfd9 Improve DXIL debug data handling for DIDerivedType's
Add cases for:
DW_TAG_restrict_type
DW_TAG_reference_type

Parse the base type for any non-null base types of unhandled DIDerivedType's
2025-03-06 11:36:12 +00:00