Commit Graph

16260 Commits

Author SHA1 Message Date
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
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
baldurk 1df4a75a97 Remove shader controls frames to allow full flow layout wrapping 2025-09-17 09:58:50 +01:00