Jake Turner
a4d916f033
Add VK_Workgroup_Zoo unit tests for subgroup Scan and Prefix ops
...
subgroupBallotExclusiveBitCount()
subgroupExclusiveAdd()
subgroupExclusiveMul()
2025-04-07 13:20:36 +01:00
Jake Turner
5be762a464
Add DXIL Debugger Support for Wave Broadcast Operations
...
HLSL
WaveReadLaneFirst()
WaveReadLaneAt()
DXIL
DXOp::WaveReadLaneAt
DXOp::WaveReadLaneFirst
2025-04-07 11:08:00 +01:00
Jake Turner
214d3f766f
Add D3D12_Workgroup_Zoo unit tests for subgroup Broadcast ops
...
WaveReadLaneFirst()
WaveReadLaneAt()
2025-04-07 11:07:03 +01:00
Jake Turner
b8f1d01b35
Add VK_Workgroup_Zoo unit tests for subgroup Broadcast/Shuffle ops
...
subgroupBroadcastFirst()
subgroupBroadcast()
subgroupShuffle()
2025-04-07 11:06:29 +01:00
Jake Turner
0e35fe6fcb
Add DXIL Debugger Support for Wave Vote Operations
...
HLSL
WaveActiveAnyTrue()
WaveActiveAllTrue()
WaveActiveBallot()
DXIL
DXOp::WaveAnyTrue
DXOp::WaveAllTrue
DXOp::WaveActiveBallot
2025-04-07 11:05:07 +01:00
Jake Turner
aefb21fa36
Add D3D12_Workgroup_Zoo unit tests for Wave Vote operations
...
WaveActiveAnyTrue()
WaveActiveAllTrue()
WaveActiveBallot()
2025-04-07 11:05:07 +01:00
Jake Turner
001539a3cd
Add VK_Workgroup_Zoo unit tests for subgroup Vote operations
...
subgroupAny()
subgroupAll()
subgroupBallot()
2025-04-07 11:05:07 +01:00
baldurk
b70254174f
Handle marking sparse BDA buffers as referenced. Closes #3572
2025-04-07 10:48:08 +01:00
Cam Mannett
b031e69597
Warn user if layer config application failed before JDWP failure
2025-04-07 10:17:05 +01:00
Jake Turner
fa22effc77
Add DXIL Debugger Support for Quad Operations
...
HLSL
QuadReadLaneAt()
QuadReadAcrossDiagonal()
QuadReadAcrossX()
QuadReadAcrossY()
DXIL
DXOp::QuadReadLaneAt
DXOp::QuadOp
2025-04-06 14:39:49 +01:00
Jake Turner
038aee2459
Add D3D12_Workgroup_Zoo unit tests for Quad Shuffle operations
...
QuadReadLaneAt()
QuadReadAcrossDiagonal()
QuadReadAcrossX()
QuadReadAcrossY()
2025-04-06 14:38:13 +01:00
Jake Turner
7240cf8c57
Add VK_Workgroup_Zoo unit tests for Quad Shuffle operations
...
subgroupQuadBroadcast()
subgroupQuadSwapDiagonal()
subgroupQuadSwapHorizontal()
subgroupQuadSwapVertical()
2025-04-06 14:00:52 +01:00
Jake Turner
e9f5c93062
Add DXIL Debugger Support for workgroup query functions
...
HLSL
WaveGetLaneCount()
WaveIsFirstLane()
DXIL
DXOp::WaveGetLaneCount
DXOp::WaveIsFirstLane
2025-04-06 12:55:52 +01:00
Jake Turner
5e6cfd73a0
Add D3D12_Workgroup_Zoo unit tests for workgroup query functions
...
WaveGetLaneCount()
WaveGetLaneIndex()
WaveIsFirstLane()
2025-04-06 12:55:29 +01:00
Jake Turner
88a9bde2f9
Add SubgroupSize to global_builtins for Vulkan shader debugging
...
Added for all stages (Vertex, Compute, Pixel)
2025-04-06 12:50:18 +01:00
Jake Turner
e0f8f29fa7
Add VK_Workgroup_Zoo unit tests for workgroup query functions
...
gl_SubgroupSize
gl_SubgroupInvocationID
subgroupElect()
2025-04-06 12:50:08 +01:00
Jake Turner
fdc2125e7b
Add D3D12_Workgroup_Zoo convergence test with dynamic for loop
...
A different number of iterations per thread
2025-04-06 12:49:34 +01:00
Jake Turner
2af9015e04
Add VK_Workgroup_Zoo convergence test with dynamic for loop
...
A different number of iterations per thread
2025-04-06 12:49:16 +01:00
Jake Turner
b7a40e644a
Ignore Constant initialiser data that is undefined
2025-04-06 10:21:56 +01:00
Jake Turner
30fbb6b0f5
Switch to previous behaviour for finding Uniform Blocks
...
Use paths including loops
2025-04-06 10:21:51 +01:00
Jake Turner
c83be4088a
Change DXIL debugger control flow to use rdcshaders::ControlFlow
...
This emulates maximal re-convergence behaviour and matches how the SPRIV shader debugger control flow works.
Remove the quick fix for discard to skip over degenerate branches
Remove StepOverDegenerateBranch() method
2025-04-04 11:42:58 +01:00
Jake Turner
ee4a2c40a9
Added OutputGraph to output control flow as a graphvis text file
2025-04-04 11:42:58 +01:00
Jake Turner
744c9a2899
Added GetDivergentBlocks(), GetConvergentBlocks() to DXIL::ControlFlow
2025-04-04 11:42:58 +01:00
Jake Turner
99260a9c9b
Add d3d12_subgroup_zoo tests for maximal reconvergence behaviour
...
Diverged threads which re-converge at expected points
The tests copied over from vk_subgroup_zoo
2025-04-04 11:42:58 +01:00
Jake Turner
ac5162d44c
Fix DXIL Debugger WaveActiveOp ShaderVariable UI result
...
The result variable name was being set to the input variable name
The simulation was correct.
2025-04-04 11:42:58 +01:00
Jake Turner
6435986d2a
Remove spammy warning about no callstack entry found for instruction
2025-04-04 11:42:18 +01:00
Jake Turner
d7025e6bf7
Remove error "DXIL GlobalVar initialiser"
...
Valid for a DXIL global var to be uninitialized (treat it as zero initialized)
2025-04-04 11:41:48 +01:00
Jake Turner
59454dbecc
ControlFlow do not add duplicate merge points on the top of the stack
2025-04-04 07:20:21 +01:00
Jake Turner
8eba23875e
Specific DXIL disassembly handling for WaveActiveOp
...
After
int _WaveActiveOp11 = WaveActiveSum(_WaveGetLaneIndex); // Unsigned
Before
int _WaveActiveOp11 = WaveActiveOp(/*value*/ _WaveGetLaneIndex, /*op*/ 0, /*sop*/ 1);
2025-04-03 15:40:02 +01:00
Jake Turner
88752e2c20
Rename workgroundSize parameter to threadsInWorkgroup
2025-04-03 10:01:17 +01:00
Jake Turner
820b3afb4f
Added helper function ThreadState::JumpToBlock(const Block* target)
...
Centralize branch handling for Operation::Branch and Operation::Switch
2025-04-03 10:00:40 +01:00
Jake Turner
b31b0cc8db
Add explicit namespace scope for DXIL::ControlFlow usage
...
Avoids a name clash with rdcshaders::ControlFlow
2025-04-03 09:55:15 +01:00
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