Jake Turner
d78edcbbea
Added Debugger::GetBufferLength()
2025-09-24 15:02:32 +01:00
Jake Turner
b9945d563e
Active thread runs scope changes on the device thread
...
Run EnterFunction(), EnterEntryPoint(), ProcessScopeChange() on device thread
2025-09-24 14:59:28 +01:00
Jake Turner
7bdf8a8d88
Make pointer read/write methods return DeviceOpResult
...
ThreadState
DeviceOpResult ReadPointerValue(Id pointer, ShaderVariable &ret);
Debugger
DeviceOpResult ReadFromPointer(const ShaderVariable &ptr, ShaderVariable &ret) const;
DeviceOpResult GetPointerValue(const ShaderVariable &v, ShaderVariable &ret) const;
2025-09-24 14:52:42 +01:00
Jake Turner
781984703b
Change WritePointerValue, WriteThroughPointer to return DeviceOpResult
...
Mark any pointer writes that require a callback to run on the device thread
2025-09-24 14:50:46 +01:00
Jake Turner
d93be6f2b2
Multi-threaded support for SPIRV wrapper APIs ReadTexel, WriteTexel
2025-09-24 14:45:14 +01:00
Jake Turner
8d9bb3f168
Add Spirv Debugger APIs to wrap API Wrapper APIs
...
The Debugger APIs run on the device thread if required,
FillInputValue(), ReadTexel(), WriteTexel()
2025-09-24 14:38:33 +01:00
Jake Turner
35fdf44c20
Spirv debugger support for queue and run of Simulation on Device Thread
2025-09-24 14:33:01 +01:00
Jake Turner
6e28ff1ca8
Convert Spirv Debugger to run Thread steps via the JobSystem
...
Enabled by default : config option "Vulkan_Debug_EnableShaderDebugMT"
2025-09-24 14:29:59 +01:00
Jake Turner
94d7f4365d
Batch Spirv debugger MathOp and SampleGatherOp GPU operations
...
Thread Simulation queues MathOp, SampleGatherOp requests and then the Thread is paused.
The Debugger loop processes the MathOp queue, batches MathOps together into a single command list, Submit, Sync.
The Debugger loop processes the SampleGatherOp queue, batches GPU SampleGatherOps together into a single command list, Submit, Sync. Some SampleGatherOps are run on the CPU and do not use the GPU.
When the queued operations are completed, the results are written back into the Thread Simulation and the paused Threads are rerun.
2025-09-24 14:22:04 +01:00
Jake Turner
b9d86315ff
Change Spirv Shader Debugger steps chunk size to 1,000,000
...
Helps to reduce the number of replays during shader debugging which helps when captures have non-deterministic replay
2025-09-24 14:18:43 +01:00
Jake Turner
f12aa91ba2
Python helpers to generate and check a full trace from shader debug
2025-09-24 14:13:59 +01:00
Jake Turner
e6f75e1530
Update Spirv debugger methods to be const methods
...
Add read/write locking for containers "usedNames" and "dynamicNames"
2025-09-24 14:09:43 +01:00
Jake Turner
64b9e517e0
VK_Shader_Debug_Zoo test of overlapped GPU math and sampling operations
2025-09-24 14:01:47 +01:00
Jake Turner
fc2c080a77
Remove unused cycles variable in VK_ShaderDebugZoo
2025-09-24 14:01:30 +01:00
Jake Turner
d0d385ceef
Use const reference for ShaderBindIndex argument passing
2025-09-24 13:53:56 +01:00
Jake Turner
3b74e038d2
Assert for SPIRV Subgroup Ops that the subgroup is converged
2025-09-24 13:49:51 +01:00
Jake Turner
e5121962f3
Spirv Debugger control flow helper variable tweaks
...
Removed unused mergeBlock
Made control flow variables private with helper methods to get them
2025-09-24 13:46:00 +01:00
Jake Turner
c0b77c1d0c
Add thread safe SPIRV Debugger::AddDebugMessage()
...
Adds to an MT safe queue which is processed on the debugger device thread
Made ClampScalars static methods become Debugger helper member functions
2025-09-24 13:39:48 +01:00
Jake Turner
6163426870
Assert for SPIRV CalcDeriv that the lanes are converged
2025-09-24 13:36:12 +01:00
Jake Turner
a2de7cb4ff
Add Threading::JobSystem::GetCountWorkers()
2025-09-24 13:32:37 +01:00
Jake Turner
a4bf961af3
Add asserts for SPIRV Debugger APIs to be called on the device thread
2025-09-24 13:22:46 +01:00
Jake Turner
135389a605
Add asserts for VulkanAPIWrapper APIs to be called on the device thread
2025-09-24 12:17:58 +01:00
Jake Turner
6518e89b3e
Change VulkanAPIWrapper::m_Creation to be const
2025-09-24 12:13:05 +01:00
Jake Turner
6058969b74
Add VulkanCreationInfo const helpers
...
Useful for multi-threaded use of VulkanCreationInfo to guarantee it can't be accidentally mutated.
Primary usage is for SPRIV shader debugging.
Change existing VulkanDebugManager helpers to use the new helpers
2025-09-24 12:05:20 +01:00
Jake Turner
decbcff6ab
Enable Vk Workgroup and Subgroup tests
2025-09-24 12:04:37 +01:00
Jake Turner
754b5d21eb
Change VK_Workgroup_Zoo test to be deterministic
2025-09-24 11:50:52 +01:00
Jake Turner
b3981e9bf6
Change DXIL debugger to generate CBuffer Handle ShaderVariable data
...
Generate a struct of N x uint4, where N comes from the DXIL metadata cbuffer resource size
Fixes ShaderVariable malformed errors when using cbuffers with packedoffset
2025-09-23 16:18:00 +01:00
Jake Turner
0f0da06737
Fix DXIL Debugger Constants display of cbuffer with packedoffset
...
The simulation had the correct values
cbuffer packed_consts : register(b1)
{
float col1z : packoffset(c1.z); // 4+2
float col2w : packoffset(c2.w); // 8+3
};
2025-09-23 16:16:32 +01:00
Jake Turner
bfb0b09db9
Fix DXBC Debugger for cbuffer with packedoffset at non-zero component
...
cbuffer packed_consts : register(b1)
{
float col1z : packoffset(c1.z); // 4+2
float col2w : packoffset(c2.w); // 8+3
};
2025-09-23 16:14:13 +01:00
Jake Turner
e16a714aba
New cbuffer tests: D3D11, D3D12 packedoffset; D3D12 cbuffer array
...
cbuffer packed_consts : register(b2)
{
float col1z : packoffset(c1.z); // 4+2
float col2w : packoffset(c2.w); // 8+3
};
struct ArrayStruct
{
float4 a;
};
ConstantBuffer<ArrayStruct> array_consts[2] : register(b3);
2025-09-23 15:59:48 +01:00
Jake Turner
b47e703c06
Include the cbuffer element byte offset in DXIL disassembly
2025-09-23 15:59:32 +01:00
baldurk
659bdee578
Implement D3D12 shader feedback for constant buffers
2025-09-23 14:49:20 +01:00
baldurk
3d1e78ba17
Handle buffers created in new state with undefined layout
...
* These can implicitly be transitioned to old states even though the spec says
resources must go via COMMON - because there is no way to do that for new
buffers.
2025-09-23 10:16:03 +01:00
baldurk
de1fd89591
Remove debug code
2025-09-23 09:48:17 +01:00
baldurk
2381c2669d
Add support in tests for compiling with separate shader debug info
2025-09-22 14:21:56 +01:00
baldurk
872752cd51
Add version check for -select-validator which was annoyingly removed
2025-09-22 14:21:36 +01:00
baldurk
cda6da6945
Enumerate supported shader model in demos a bit more tightly
2025-09-22 13:49:51 +01:00
baldurk
d4fd5b4977
Don't use = for argument parameters in SRCI information from dxc
2025-09-22 13:48:42 +01:00
baldurk
26cf7d3d7f
Ensure shader reflection information is stored as const
...
* Avoids accidental modifications
2025-09-22 11:58:56 +01:00
Cam Mannett
0dd399cc11
Handle multiple and NULL initial state AS descriptors
...
* Fix for handling NULL VkAccelerationStructureKHR handles in an AS write descriptor
* Fix for handling multiple AS write descriptors across different bind indices
2025-09-20 00:37:32 +09:00
baldurk
bf8354b703
Pass fragment offsets on renderpass end
2025-09-19 16:19:42 +01:00
baldurk
9954649720
Update unit test for new compile flag
2025-09-19 16:03:19 +01:00
baldurk
5f95354737
Process fake OpModuleProcessed comments in non-semantic debug source
2025-09-19 16:03:18 +01:00
baldurk
f17604df26
Restore depth bounds test correctly for depth test overlay. Closes #3701
2025-09-19 16:03:18 +01:00
Mike Blumenkrantz
29187e6c15
support VK_VALVE_fragment_density_map_layered
2025-09-20 00:03:09 +09:00
Mike Blumenkrantz
9cfef91e06
support VK_EXT_fragment_density_offset
2025-09-20 00:03:09 +09:00
baldurk
1e0f960635
Don't allow implicit scalar to vector casts in Vec helpers
...
* With all default parameters in the constructor `Vec4f foo = 1.0f` would be
legal by implicit constructor.
2025-09-19 14:13:01 +01:00
baldurk
7f92c9204b
Handle dubiously-valid unbound scissor region in D3D12 pixel history
2025-09-19 14:13:01 +01:00
baldurk
baecdd85ca
Improve arrow key nudging behaviour on NPOT mips in texture viewer
2025-09-19 14:13:01 +01:00
baldurk
858cfab281
Improve positioning for pixel context highlight for NPOT textures
2025-09-19 14:13:01 +01:00