Commit Graph
16254 Commits
Author SHA1 Message Date
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
baldurk 4998542c06 Update to latest stable D3D12 headers 1.616.1 2025-09-16 18:21:03 +01:00
baldurk 7ef361fec5 Ensure memory without initial states on vulkan are cleared properly
* The code was already handling the replay optimisation level properly, but
  without a dummy initial contents we were never even getting to the apply for
  memory objects created mid-frame and so without any initial contents.
2025-09-16 17:07:08 +01:00
baldurk 157941e31f Split shader/program labels in pipeline state views up to wrap better
* If program or shader names are very long then combining them can cause
  problems with how wide the widgets get. Splitting each element into a label
  that can wrap around and be truncated individually produces better behaviour.
2025-09-16 16:30:53 +01:00
baldurk b9b8fe4b1b Claim proper contents margins for height of RDLabels with rich text 2025-09-16 16:29:57 +01:00
baldurk 511c33c52a Handle Expanding policies in flow layouts 2025-09-16 16:29:25 +01:00
baldurk 0a6a8e763a Fix overly aggressive check for UAV clears not accounting for depth 2025-09-16 11:19:14 +01:00