Jake Turner
49e764e2c1
D3D12_Shader_Debug_Zoo test overlapped GPU math and sampling operations
...
Also unified the indentation to spaces in the shader source
2025-10-08 09:48:14 +01:00
Jake Turner
15b510f131
Fix incorrect assert about DXIL result SSA tracking
...
Assert was changed in 0809a6dd3f when ssaMaxExecPoints was made into an rdcarray
2025-10-07 16:43:12 +01:00
Jake Turner
30b45f0cff
Use ShaderDebugData enum when creating Vk Shader Debug Readback Buffer
...
ShaderDebugData::MAX_QUEUED_OPS instead of hard coded 128
2025-10-06 16:20:55 +01:00
baldurk
2485eefc80
viewportCount can't be assumed to be the number of scissors
...
* Although normally viewportCount == scissorCount, if viewport is
DYNAMIC_WITH_COUNT and scissor is only dynamic (or fixed) the number of
scissors must be used strictly.
2025-10-06 14:21:10 +01:00
baldurk
a4ae1e881a
Handle descriptor state being invalid/inaccessible for non-draw actions
2025-10-06 13:17:29 +01:00
Jake Turner
48fd758960
Set the correct values for the return of Operation::CompareExchange
...
Returns a struct: { Original Value, 1 (equal) / 0 (not equal)
2025-10-05 07:50:05 +01:00
Jake Turner
0e6fc382d7
Add Interlocked* tests to D3D12_Groupshared
2025-10-05 07:50:05 +01:00
Jake Turner
823ae93845
Support for Operation::ExtractVal on a struct
2025-10-05 06:49:54 +01:00
Jake Turner
c1ba2694f7
Remove m_State from Spirv Debugger
...
Replaced with bool hasDebugState
2025-10-04 12:23:10 +01:00
Jake Turner
95b98c81f1
Update Spirv DebugBreak to work with multi-threading
...
Use pendingDebugState instead of m_State
2025-10-04 11:20:11 +01:00
Jake Turner
0809a6dd3f
Changed ExecutionPointPerId to be an rdcarray instead of std::map
...
DXIL Debugger optimisation
2025-10-04 11:09:13 +01:00
Jake Turner
b70b79e897
Changed m_Variables to be an rdcarray instead of std::map
...
DXIL Debuggeer optimisation and thread-safety
2025-10-04 09:25:04 +01:00
Jake Turner
377280eada
Op::ImageRead does not have to be in lockstep
...
It does not require derivatives
2025-10-04 08:19:42 +01:00
Jake Turner
ecd1860789
DXIL Debugger helper lanes don't modify UAVs
2025-10-04 07:16:49 +01:00
Jake Turner
3e38a63ebb
D3D12_Shader_Debug_Zoo test for helper lane UAV writes are ignored
2025-10-04 07:16:49 +01:00
Jake Turner
a0db9d5a1f
Comment about thread safety requirements in Spirv debugger ids container
2025-10-03 15:20:57 +01:00
Jake Turner
d7f7be63a9
Spirv debugger small tidy up for consistency
...
Rename:
simulationFinished -> atomic_simulationFinished
Vulkan_Hack_ShaderDebugUsesJobSystemQueue -> Vulkan_Hack_ShaderDebugUsesJobSystemJobs
2025-10-03 06:24:49 +01:00
baldurk
36f8d654dc
Add NULL aliasing barrier around buffer discard patterns
2025-10-02 14:17:20 +01:00
baldurk
2018b5d790
Use the correct state for creating whole memory buffers on D3D12
2025-09-30 11:26:01 +01:00
baldurk
a92e0d2669
Ensure capabilities are properly cached when only prepared once
2025-09-30 11:26:01 +01:00
Zackery Mason-Blaug
30f5a4023d
Add support for VK_EXT_vertex_attribute_robustness
2025-09-30 19:10:06 +09:00
Zackery Mason-Blaug
9711e0eb57
Add support for maintenance9 vertex attribute robustness
2025-09-30 19:10:06 +09:00
Jake Turner
c03b2e2fb0
Remove unused methods from GpuMathOperation & GpuSampleGatherOperation
...
Clear() methods are not used
2025-09-29 17:09:04 +01:00
baldurk
8864a1d81e
Improve time listing available demos
...
* Remove redundant repeated calls when preparing multiple tests
2025-09-29 16:40:15 +01:00
baldurk
dadf4a14d5
Serialise D3D12 buffer initial contents less memory-intensivesly
2025-09-29 16:37:45 +01:00
baldurk
41e9f3c426
Add a demo project with extremely high overlap/sparseness buffers
...
* For stressing memory overhead in buffer initial states
2025-09-29 16:37:45 +01:00
Jake Turner
9952483f2b
Make D3D12_Groupshared test deterministic
2025-09-28 07:26:30 +01:00
Jake Turner
1ccdf7f4f4
Op::ControlBarrier requires full lockstep when being simulated
...
Lockstep before executing the instruction
Lockstep after executing the instruction
2025-09-28 07:26:30 +01:00
Jake Turner
357102fd3f
Make VK_Groupshared test deterministic
2025-09-28 07:26:30 +01:00
Jake Turner
d6a49c4c18
Make D3D12_Workgroup_Zoo test determistic
2025-09-28 07:26:30 +01:00
Jake Turner
9e63b3fb8c
Enable VK_Groupshared test
2025-09-28 07:26:30 +01:00
Jake Turner
11a4104bde
DXIL Debugger support for thread local global memory
2025-09-28 07:26:30 +01:00
Jake Turner
61cc31062e
Change D3D12_Shader_Debug_Zoo test to exercise thread local global mem
2025-09-28 07:26:15 +01:00
Jake Turner
a5c3ee4b70
Tweak to DXIL debugger cbuffer handling
...
Initialise the ShaderVariable for the handle to 0xCC
Only memory copy the bytes available (do not assume the source buffer is a multiple of 16 bytes in size)
Fixes non-determinism problem (exposed by root constant buffer of size four bytes)
2025-09-25 17:35:35 +01:00
Jake Turner
fa40e51e7d
Tweak d3d12_workgroup_zoo : set both root constants for both dispatches
2025-09-25 17:35:35 +01:00
Jake Turner
8ecc23e78d
Return 0,0,0,0 when sampling NULL resources in Spirv Shader Debugger
2025-09-25 17:35:35 +01:00
baldurk
4df53b41d3
Delete parents after base objects
...
* This fixes a potential crash deleting an image view after an image, by
ensuring a non-owning pointer to the image's resinfo remains valid until after
the image view is destroyed.
2025-09-25 16:17:46 +01:00
Jake Turner
39c7dc1027
Fix python message handling reading out of bounds read
2025-09-24 15:47:14 +01:00
Jake Turner
8203032ec3
Fix out of bounds writes during spirv debugging
...
Previously it would allow writes to width/height/depth
2025-09-24 15:46:06 +01:00
Jake Turner
da03329b12
Improve handling of NULL resources in Spirv Shader Debugger
2025-09-24 15:35:01 +01:00
Jake Turner
8898fa2e3e
Use liveID to find the descriptor buffer resource in shader debug
2025-09-24 15:34:51 +01:00
Jake Turner
668fa75660
Change some asserts to be development only in Spirv Debugger
...
Asserts used during development of multi-threading and related to the consistency of expected state
2025-09-24 15:31:49 +01:00
Jake Turner
56415992ac
Added CHECK_DEBUGGER_THREAD() to Spirv_Debug.cpp
...
Does nothing in RELEASE, replaces calls to
RDCASSERT(debugger.IsDeviceThread());
2025-09-24 15:29:01 +01:00
Jake Turner
5222954723
Add a lock when simulating Atomic Memory instructions
2025-09-24 15:21:41 +01:00
Jake Turner
234a78ecf2
Remove Vulkan_Hack_EnableGroupCaps
2025-09-24 15:18:14 +01:00
Jake Turner
b536bbaf95
Spirv Debugger 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
2025-09-24 15:14:55 +01:00
Jake Turner
e9e081a55f
Spirv Debugger run multiple simulation steps per job
2025-09-24 15:08:43 +01:00
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