Commit Graph

15973 Commits

Author SHA1 Message Date
Cam Mannett 96c2cf0774 Add VK_EXT_dynamic_rendering_unused_attachments support 2025-06-19 12:22:30 +01:00
thisisjimmyfb b79d1e6fe2 Android swapchain format selection prefer to use srgb format
Android to use similar swapchain format and dimension as Windows
2025-06-19 11:45:04 +01:00
thisisjimmyfb 29207a7333 Fix VK_Leak_Check for Android
RemoteServer timedout due to VK_Leak_Check taking too long before sending commands to remote server. Spawning a worker thread to keeping the remote server connection alive fixes the disconnection issue.
2025-06-19 11:45:04 +01:00
thisisjimmyfb 97c74415f6 VK_Large_Descriptor_Sets
Use remote server friendly routine to check capture file
2025-06-19 11:45:04 +01:00
thisisjimmyfb 035fc9974d Remote Android and Linux test support part 2
Support swapchain image size greater than 4
2025-06-19 11:45:04 +01:00
thisisjimmyfb b1d3123583 Remote Android and Linux test support part 1
Add remote server support to test framework
2025-06-19 11:45:04 +01:00
baldurk 500061011d Ensure raw groupshared access is always byte-addressed 2025-06-16 17:29:52 +01:00
Jake Turner e4d027a79c D3D12 ShaderDebugger reset the debug allocator after submits
Performance win for shader debugger for ops run on the GPU (math, sample)
Fixes GPU errors if the shader debugger does a very large amount of GPU ops
2025-06-16 12:41:15 +01:00
baldurk 1ca3f25850 Fix unextended pipeline flags being put on wrong struct 2025-06-12 10:22:37 +01:00
baldurk 6337c23958 Fix validation error querying vkCreateDevice from GDPA 2025-06-12 10:22:37 +01:00
baldurk d8241fdca9 Add names to internal sampler objects 2025-06-12 10:22:30 +01:00
Nicolas Morales 9323872925 #3623: ensure data.egl_cfg is set in eglSwapBuffers_renderdoc_hooked 2025-06-09 11:41:16 +01:00
baldurk 9bad0c5ec0 Remove some memset calls on non-POD types 2025-06-06 12:16:54 +01:00
baldurk f9eb25494e Ignore pointless warning on clang. Closes #3621 2025-06-06 12:16:54 +01:00
baldurk 81d5ca7c35 Add a trie lookup handler from a byte sequence key
* This is intended for write-only so does not support removing keys at all.
2025-06-06 12:16:54 +01:00
baldurk 93617f3d11 Adjust shader viewer highlight colours for dark theme 2025-06-05 17:11:45 +01:00
baldurk b49fe5aa8d Update CI image to windows-2025
* This requires custom-installing the V140 toolset which unfortunately takes a
  long time on CI :(.
* We also drop the VS2019 target as it has little use.
2025-06-03 17:49:49 +01:00
baldurk 18cb138aa3 Do not allow error reports on fatal error from dev/unoffiical builds 2025-06-03 14:20:33 +01:00
baldurk 95975e29a2 Remove display step from action 2025-05-30 11:21:16 +01:00
baldurk 093630ecb7 Try to override custom shader legacy redeclarations. Closes #3616
* When patching shaders for separability we are limited in what we can safely
  do. If we need to add a separable declaration but a shader uses legacy GLSL
  and redeclares an individual global these can't co-exist, so we try to remove
  the incompatible one. This may not be safe but is a best-effort.
2025-05-30 11:06:32 +01:00
baldurk 3aaf08c903 Add workflow for inactivity lock 2025-05-30 11:05:10 +01:00
baldurk 6111affe33 Update to latest vulkan headers
* VK_KHR_robustness2 is supported as a trivial promotion
2025-05-26 21:44:24 +01:00
baldurk cafa6acc64 Update to latest SPIR-V core grammar 2025-05-26 16:52:28 +01:00
baldurk 435956cf4d Format VK_WHOLE_SIZE properly on texel buffers in pipeline state 2025-05-26 15:00:00 +01:00
baldurk d7236e0d91 Fix reads & writes to storage texel buffers in vulkan shader debugging 2025-05-26 14:59:46 +01:00
baldurk 58a9f3cce1 Tweak naming of images particularly storage images in SPIR-V disasm 2025-05-26 13:21:34 +01:00
baldurk 6263c7100c Avoid problems with windows 11 hotpatch DLLs not behaving properly 2025-05-26 13:18:49 +01:00
baldurk e070de60ad Improve disassembly of SPIR-V where a function's last block isn't return
* In this case the last block in the function was part of a loop continuing, and
  the merge return block was inside the loop.
2025-05-26 10:56:54 +01:00
Jake Turner d4c1919a9c Fix assert check on format number of components for AtomicBinOp on UAV
Tweak error message about AtomicBinOp storing to out of bounds or unbound resource
2025-05-22 14:01:14 +01:00
Jake Turner f79b95c8db Update active thread DXIL global pointers to the local backing memory 2025-05-22 12:12:09 +01:00
Jake Turner 1881b26fef Test for DXIL constant global pointers 2025-05-22 12:12:09 +01:00
Jake Turner f152c2b585 Fix incorrect assert in DXBC debugger GetGroupsharedSrc 2025-05-22 11:56:36 +01:00
baldurk 42e1ecef5f Ensure unformatted internal details aren't displayed for RT calls 2025-05-21 22:41:49 +01:00
baldurk 367ec41fa2 Reset D3D11 offset/counts to default if NULL is passed. Closes #3614
* These make the 1 bind functions behave like the normal bind functions
2025-05-19 22:08:11 +01:00
Jake Turner 962c1cdcf6 Enable Python shader trace validation by default 2025-05-19 16:57:22 +01:00
Jake Turner 4539ff5c43 DXIL Debugger GroupShared simulation changes
On the active thread
* GSM reads come from the local GSM cache (not the global GSM data)
* GSM writes go to the local GSM cache and the global GSM data
* Workgroup Memory barrier populates the local GSM cache with the data from the global GSM data

On the non-active threads:
* GSM reads/write always operate on the global GSM data
* Workgroup Memory barrier is ignored
2025-05-19 16:56:03 +01:00
Jake Turner 9523f98b8a Python implementation of ShaderDebugTrace validation
Similar to the validation that is performed in ShaderViewer UI
Disabled by default pass True to process_trace to enable the validation
Includes validate_shadervariable() and shadervariable_equal()
2025-05-19 16:44:45 +01:00
Jake Turner f120f46b45 ShaderViewer UI validation for ShaderVariable construction
if members.size() == 0
rows * columns must be between 1 and 15
type must not be Struct

if members.size() > 0
type must be Struct or Unknown or ConstantBlock
rows must be 0
columns must be 0
then recurse and check construction of each element of members array
2025-05-19 16:44:25 +01:00
Jake Turner fe53dd874e Ignore void return values in the SPIRV debugger
Do not call SetDst() which won't create a ShaderVariableChange
Would also prevent a non-null return value being used for the next void return function
2025-05-19 16:42:38 +01:00
Jake Turner 8133364057 Update DXIL constant buffer ShaderVariable columns count 2025-05-19 16:41:34 +01:00
Jake Turner 04e476d54a Simplify DXIL Disassembly for global variable pointers
Unify the name generation with the DXIL debugger name generation
2025-05-19 16:41:20 +01:00
Jake Turner 4a50e28a78 Spirv debug set rows = 0, columns = 0 for helper Struct ShaderVariable's 2025-05-19 16:40:55 +01:00
Jake Turner 890f80b6d8 Set DXIL arrays to type Unknown 2025-05-19 16:40:36 +01:00
Jake Turner f457a5194e Fixups to make DXIL Debugger ShaderVariables correctly formed 2025-05-19 16:40:22 +01:00
Jake Turner 915339042e Set DXBC GSM and Temp registers to have rows = 0 and columns = 0 2025-05-19 16:39:41 +01:00
Jake Turner f8b25203dc Fix D3D12 Pixel History ExecuteIndirect with multiple draws
Update m_IndirectData.argsOffset inside the loop
Clear the m_IndirectData outside of the loop

Add not NULL assert for argsBuffer in ReplayDraw() helper
2025-05-19 15:41:45 +01:00
Jake Turner be6cc2d324 Verify pixel history succeeds as part of D3D12_Execute_Indirect tests 2025-05-18 12:52:56 +01:00
Jake Turner 66aabcaba3 Set the correct type for DXIL constant buffer array ShaderVariables
Change the name of constant buffer array elements to match access to match SRV and UAV naming i.e. cbvArray[3] instead of cbvArray_3_0
2025-05-18 09:25:44 +01:00
Jake Turner 72ff41656f Fix incorrect assert for result.type in DXIL SetResult
Want to assert if members.empty() && type == Unknown
2025-05-18 09:25:34 +01:00
Jake Turner 3f8df6b589 Spirv Debugger GroupShared simulation changes
On the active thread
* GSM reads come from the local GSM cache (not the global GSM data)
* GSM writes go to the local GSM cache and the global GSM data
* Workgroup Memory barrier populates the local GSM cache with the data from the global GSM data

On the non-active threads:
* GSM reads/write always operate on the global GSM data
* Workgroup Memory barrier is ignored
2025-05-16 17:54:44 +01:00