Commit Graph

15768 Commits

Author SHA1 Message Date
Jake Turner 75c0e506da Rename DXIL::ExecutionPoint to DXIL::ExecPointReference
To avoid name clash with rdcshaders::ControlFlow::ExecutionPoint
2025-04-03 09:54:31 +01:00
Jake Turner d42d867be4 Minor tidyup of SPIRV controlflow setup
Use the first instruction as the starting point not the first block
2025-04-03 09:54:13 +01:00
Jake Turner 368db48054 Fix Android building with cmake 4.0
Set cmake policies to 3.5 when building with cmake 4.0

With cmake policies set to 4.0 Android fails to link correctly.
It is fixed by running the cmake command twice before doing the make build or setting the cmake policies to 3.5
2025-04-03 06:40:38 +01:00
Jake Turner 6ed8b4670f Moved SPIRV Shader Debugger control flow class to renderdoc/shaders
Renamed files from: spirv_controlflow -> controlflow

Preparation for sharing the shader debugger control flow code between SPIRV and DXIL debuggers
2025-04-02 13:48:21 +01:00
Jake Turner 4af5b27521 cmakefile support for building with cmake 4.0 2025-04-02 12:52:58 +01:00
Jake Turner f50c85173b Unified Subgroup_Zoo VK and D3D12 python
Improved test failure reporting
2025-04-02 08:43:30 +01:00
Jake Turner fa9bc127b1 Add early return test case to D3D12_Shader_DebugData
Change python to search backwards through the instruction info to find the value for a source variable
2025-04-02 08:39:49 +01:00
Jake Turner 061ef29a91 Remove unused DXBC::IDebugInfo::HasSourceMapping()
Never called from anywhere, not implemented for DXIL
2025-04-02 08:37:05 +01:00
Cam Mannett c3c1afbfdd VK_EXT_image_compression_control_swapchain 2025-03-29 08:36:55 +00:00
Cam Mannett 8d340d5fe4 VK_EXT_image_compression_control 2025-03-29 08:36:55 +00:00
baldurk eb35bbee68 Improve handling of 16-bit output from vertex shaders on Vulkan
* We now promote all I/O variables to 32-bit minimum when converting them to
  private since we might not have the capabilities available to leave them as
  16-bit. We instead snoop on any reads/writes to the private variables and
  insert the necessary width-expansions or contractions to convert between the
  stored & private 32-bit types and the shader's expected type.
2025-03-28 17:09:51 +00:00
baldurk c98a1c3042 Properly initialise generated parameter data in SPIR-V 2025-03-28 17:09:51 +00:00
baldurk 0ccec22757 Fix handling of sub-32-bit inputs in PS debugging. Closes #3569 2025-03-28 17:09:51 +00:00
baldurk b353bbdc66 For sparse MSAA textures ignore queried heap props. Closes #3561 2025-03-28 17:09:51 +00:00
baldurk e4af8bcf39 Only close texture goto when focus is lost
* Previously this closed as soon as the mouse left the bounds.
2025-03-28 17:09:51 +00:00
Amit Prakash 00381637a7 Update GPA Integration for 4.0
* Use gpa session instead of gpa context for counter interrogation.
2025-03-28 17:09:32 +00:00
Amit Prakash 9b5b58225d Update GPA 4.0 headers 2025-03-28 17:09:32 +00:00
baldurk 2d006eaa7b Ensure newlines are stripped from command line input
* These can be inserted via copy-paste even though Qt says that QLineEdit only
  does single line editing :(
2025-03-24 13:05:59 +00:00
baldurk d55a1c2412 Fix GL quad overdraw overlay when using renderbuffer for depth 2025-03-24 10:57:48 +00:00
baldurk e5f034bbba Fix SPIR-V editing with Intel driver workaround 2025-03-24 10:43:31 +00:00
Jake Turner c1013a1b82 Change SPIRV debugger control flow to emulate maximal reconvergence 2025-03-23 12:02:55 +00:00
Jake Turner 7ca6c741ca SPIRV ControlFlow helper class
Implements maximal reconvergence
2025-03-23 12:00:57 +00:00
Jake Turner 7f4098d835 Add vk_subgroup_zoo tests for maximal reconvergence behaviour
Diverged threads which re-converge at expected points
2025-03-23 12:00:53 +00:00
Jake Turner 593e57f65b DXIL debugger discard should not terminate helper lanes
Active lane is demoted to helper invocation which for pixel debug terminates the debug.

Non-active lanes skip over a degenerate branch if that is the next instruction after the discard.

This is a quick fix until maximal re-convergence style control flow is implemented, where quads reconverge at local uniform block
2025-03-20 15:00:37 +00:00
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