Commit Graph
17061 Commits
Author SHA1 Message Date
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 MannettandBaldur Karlsson 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 BlumenkrantzandBaldur Karlsson 29187e6c15 support VK_VALVE_fragment_density_map_layered 2025-09-20 00:03:09 +09:00
Mike BlumenkrantzandBaldur Karlsson 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
baldurk a22b8a88a2 Calculate mip shift accurately for NPOT textures 2025-09-19 14:13:01 +01:00
baldurk b857cb2b0b Build shaders with debug info when self-capturing 2025-09-19 11:55:42 +01:00
baldurk fd86ca4ddc Allow editing zoom level text when fit-to-window is enabled
* We need to disable it before changing the zoom level.
2025-09-19 11:01:12 +01:00
baldurk 101953be7a Only create initial contents for memory that is initialisable 2025-09-18 10:05:06 +01:00
baldurk 998b1c7ee0 Don't offer option to debug pixel on events that are not draws 2025-09-17 17:09:39 +01:00
Jake Turner 52cb002dd7 Defensive code fix for RT auditing after device lost 2025-09-17 13:24:11 +01:00
baldurk 7734a36228 Fix shader clears to properly reset all labels 2025-09-17 11:26:08 +01:00
baldurk 86e6941265 Use device independent scaling for height calculation 2025-09-17 11:25:59 +01:00
baldurk 0e271c5cdb Release device tools 2025-09-17 11:10:07 +01:00