Jake Turner
cb83fac970
DXIL debugger support for GPU batching of Math and SampleGather ops
2025-10-25 15:12:39 +01:00
Jake Turner
6bb8070fd2
Add a lock around Atomic memory operations in DXIL debugger
2025-10-25 15:00:07 +01:00
Jake Turner
02f08bb051
DXOp::WaveIsFirstLane considers helper lanes as active
2025-10-25 14:46:38 +01:00
Jake Turner
7b146ec97d
Convert DXIL Debugger to run simulation multi-threaded
...
Enabled by default : config option "D3D12_DXIL_Debug_EnableShaderDebugMT"
By default run jobs in a hot spin loop in a single JobQueue job
Each JobQueue Job runs SimulationJobHelper which is a while loop looking for threads to simulate
Developer option "D3D12_Hack_ShaderDebugUsesJobSystemJobs" to run simulation steps in individual job system jobs.
2025-10-25 14:33:12 +01:00
Jake Turner
0e20fbf9fb
Added caching to DXIL APIWrapper and Debugger
...
Added TypedUAV Load/Store to APIWrapper
2025-10-25 14:17:40 +01:00
Jake Turner
f72c1a3769
DXIL debugger support for queued GPU operations (run on Device Thread)
2025-10-25 14:04:19 +01:00
Jake Turner
516dec8e17
DXIL debugger support for queue and run simulation on Device Thread
2025-10-25 13:49:28 +01:00
Jake Turner
0243927d43
DXIL Debugger can simulate multiple instructions per step
2025-10-25 13:36:33 +01:00
Jake Turner
fe8e63f7ec
Reworked DXIL debugger simulation in preparation for multithreading
...
Rearranged to isolate the simulation of a single lane into a helper function: InternalStepThread(uint32_t lane)
2025-10-25 13:24:43 +01:00
Jake Turner
c4fa11b6e6
Assert for DXIL the subgroup is converged for subgroup ops
2025-10-25 13:12:20 +01:00
Jake Turner
34a8af762b
Cache DXIL SSA ID Result names
...
The disassembly will populate the cache and the debugger will reuse the cache
2025-10-25 13:00:24 +01:00
Jake Turner
99b3137b41
Add asserts for DXIL ThreadState APIs to be called on the device thread
2025-10-25 12:47:25 +01:00
Jake Turner
6ce3e5a6ec
Add asserts for DXIL Debugger APIs to be called on the device thread
2025-10-25 12:35:46 +01:00
Jake Turner
755c96640f
Add asserts for D3D12APIWrapper APIs to be called on the device thread
2025-10-25 12:23:54 +01:00
Jake Turner
c74022dfd2
Remove use of APIWrapper from DXIL ThreadState
...
Make the APIWrapper calls become Debugger APIs which then call the wrapper
2025-10-25 12:08:18 +01:00
Jake Turner
97283a60e2
Change DXIL 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-10-25 11:53:42 +01:00
Jake Turner
d7169cf8b0
Rework DXIL ThreadState in preparation for Multithreading
...
Make all members private with Set/Get APIs are required.
Mark containers which must be thread safe
2025-10-25 11:53:42 +01:00
Jake Turner
0dba797e30
Rework DXIL D3D12APIWrapper helper in preparation for Multithreading
...
Make it persistent in the lifetime of the DXIL Debugger session
Add the wrapper to the DXIL Debugger
Make the wrapper replay reset consistent
Store initialisation data in the ApiWrapper
Pull data from ApiWrapper into Debugger during BeginDebug()
Makes DXIL debugger behave more like SPIRV debugger during its initialisation
2025-10-25 11:53:42 +01:00
Jake Turner
1ea88a43f2
Remove D3D_Hack_EnableGroups
...
Now supported by default for D3D11 & D3D12
2025-10-25 11:53:42 +01:00
Jake Turner
a4d407ec3a
Enable D3D11, D3D12 groupshared, subgroup, workgroup tests
...
D3D11_Groupshared, D3D12_Groupshared
D3D12_Subgroup_Zoo
D3D11_Workgroup_Zoo D3D12_Workgroup_Zoo
2025-10-25 11:01:13 +01:00
Jake Turner
bc403a291d
DXIL debugger handle all int/float types for DXOp::Dot2/3/4
2025-10-25 10:17:24 +01:00
Jake Turner
8a725233d6
DXIL debugger handle all float types for DXOp::Saturate
2025-10-25 10:16:56 +01:00
Jake Turner
eebb66eea1
DXIL debugger handle all int types for DXOp::IMin, IMax, UMin, UMax
2025-10-25 10:16:19 +01:00
Jake Turner
d3e8891e41
DXIL debugger handle all float types for DXOp::FAbs
2025-10-25 10:15:41 +01:00
Jake Turner
1520431350
DXIL debugger handle all float types for DXOp::FMin, FMax
2025-10-25 10:15:12 +01:00
Jake Turner
f1344c5485
Fix DXIL Debugger support for structs in the output structure
...
i.e. matrices
Fixed incorrect asserts in StoreOutput
Fixed source variable mapping
2025-10-25 08:35:20 +01:00
Jake Turner
d1054b8fa2
DXIL Debugger improve handling of arrays of Samplers
...
Previously would only work in very simple scenarios where the array of Samplers was accessed once
2025-10-24 07:50:42 +01:00
Jake Turner
58ec8fd9d3
Simple test cases of arrays of Samplers for the DXIL debugger
2025-10-24 07:49:44 +01:00
Jake Turner
8a8aaf269a
Fix DXIL global samplers resize() which should have been reserve()
2025-10-24 06:51:29 +01:00
Jake Turner
8aa42d0348
Set the correct number of elements in LaneBuffer
2025-10-23 09:48:19 +01:00
Jake Turner
c756cbeced
Move DXBC debugger comment to the correct place
2025-10-23 09:15:42 +01:00
Jake Turner
1c10c0654a
Make DXIL GlobalVar names unique in the debugger and disassmbly
2025-10-23 09:15:42 +01:00
Jake Turner
9c31e0131e
Fix validate_trace() being called from generate_full_trace()
2025-10-23 09:15:42 +01:00
baldurk
6fe5e8d765
Use serialised desc struct for serialised RT emit info call
2025-10-22 18:24:04 +01:00
baldurk
7b00e42310
Handle NULL arrays being bound on D3D11
2025-10-21 23:31:22 +01:00
baldurk
2f6bb02347
Fix some sizing issues with CS labels in D3D11 pipeline state view
2025-10-21 23:31:22 +01:00
baldurk
5fd9cd67a5
Ensure D3D12 descriptors are properly initialised for pipeline state
2025-10-21 23:31:22 +01:00
baldurk
f42dbdcdd6
Don't force API validation in development builds on D3D11/GL
2025-10-21 23:31:22 +01:00
baldurk
466a11100c
Add new checks for vkconfig, and detect after startup
...
* We check every couple of seconds for the vkconfig file (and then stop checking
after warning) so that users are more likely to see the warning.
2025-10-21 23:31:22 +01:00
baldurk
4db8616ec4
Fix double click on FBO entry in GL pipeline state not opening texture
2025-10-21 23:31:22 +01:00
baldurk
12bb4eaf23
Add support for signing using google cloud KMS
...
* This is basically required for the stupid, expensive, and insecure new code
signing key requirements
2025-10-21 23:31:22 +01:00
baldurk
182af54086
Set format in fake descriptors for GL pipeline state FBO attachments
2025-10-21 16:46:50 +01:00
baldurk
cb053efe77
Fix duplicate failure reporting in auto sections
2025-10-21 16:46:47 +01:00
baldurk
70c303d1ab
Bump shader cache version for modified include files
2025-10-15 12:32:44 +01:00
baldurk
5d824d9d3e
Treat template types as trivial copies in debug info
2025-10-15 12:32:44 +01:00
baldurk
dd40f0103e
Insert dummy debug types for functions in case of member functions
2025-10-15 12:32:44 +01:00
baldurk
81a367be66
Add naming helper for image views
2025-10-15 12:32:44 +01:00
baldurk
48b19e8ba4
Add an immediate error check if SPIR-V compiler fails in tests
2025-10-15 12:32:44 +01:00
baldurk
9192882273
Silence validation warning about non-coherent map invalidates
2025-10-15 12:32:44 +01:00
baldurk
ba578ed15f
Handle maintenance9 handling of 3D barriers to internal transitions
2025-10-15 12:32:44 +01:00