Commit Graph

16528 Commits

Author SHA1 Message Date
baldurk 23abdbab90 Add GL API wrapper skeleton, based on vulkan wrapper
* We keep some of the threading code rather than removing it, but this will run
  single threaded.
2025-12-01 17:25:57 +00:00
baldurk 84c1391aeb Add custom glslang feature to allow specifying I/O automap base location 2025-12-01 17:25:56 +00:00
baldurk 2b687a56c8 Move SPIR-V debugging input fetch lane data to SPIR-V headers 2025-12-01 17:25:56 +00:00
baldurk 04866327cc Move Vec3i to common header 2025-12-01 17:25:56 +00:00
baldurk bbd5655cfe Rename some config variables to better be agnostic over SPIR-V and DXIL 2025-12-01 17:25:56 +00:00
Jake Turner 22b9e1ded2 Show DXIL debugger missing resources as DebugMessage instead of RDCERR 2025-11-30 06:42:02 +13:00
Jake Turner defb87127c Fix DXIL Debug crash in ExtractVal on invalid ShaderVariable
0-sized struct
2025-11-30 06:42:02 +13:00
baldurk f5e9903860 Don't return video interface if real interface is missing. Closes #3735 2025-11-27 15:20:44 +00:00
baldurk c61e3f72f0 Try to make CI check for commit messages more robust
* For some reason the commit message check failed to detect a bad message on a
  PR commit. The only clue is a 'broken pipe' message from tail in the log but
  it doesn't reproduce on another repository with the same scripts :(.
* Temporarily ignore the bad commit from future checks until it drops out of the
  most recent 100.
2025-11-27 14:10:13 +00:00
陈飞越 7a064ae915 Fix gpu driver crash caused by pixel history
Force load renderpass contains only one subpass, if not set subpass,
the subpass passed to gpu driver mismatch the actual subpass,
and then causes crash.
2025-11-27 22:22:48 +09:00
David McFarland d26f634aeb Pass -rdynamic to renderdoccmd link
This ensures replay marker sym is exported, and matches qrenderdoc.
2025-11-27 20:11:34 +09:00
Jake Turner 62775694ef Support for Spirv Quad Ops in Compute Shader Debugging
Use a Linear 4x1x1 layout for the quads

CS derivatives in quad scope are defined to be 0.0 if ComputeDerivativeMode is None i.e. the execution mode is not DerivativeGroupQuadsKHR or DerivativeGroupLinearKHR
2025-11-27 13:11:03 +13:00
Jake Turner d514df902b Remove Capability::GroupNonUniformQuad setting subgroup scope 2025-11-27 12:43:15 +13:00
Jake Turner 34ce4035d0 VK_Subgroup_Zoo tests for Quad Ops in Compute Shader
subgroupQuadBroadcast
subgroupQuadSwapDiagonal
subgroupQuadSwapHorizontal
subgroupQuadSwapVertical
subgroupQuadAny
subgroupQuadAll
2025-11-27 12:42:21 +13:00
Jake Turner 61bf255ea0 Updates to SSA lifetime and UI changes related to shader base pointers
Mark potential pointer bases as having no end lifetime (similar to global variables)

Do no make an out of scope change and an in scope change if the ID is in the old and new live lists (can happen for pointer base variables)
2025-11-27 07:51:07 +13:00
Jake Turner a9acee3106 SPIR-V debugger support for VK_KHR_compute_shader_derivatives
i.e.
SPV_KHR_compute_shader_derivatives
SPV_NV_compute_shader_derivatives
2025-11-26 12:17:45 +13:00
Jake Turner 97755b5ebb Test cases for VK_KHR_compute_shader_derivatives
dFdx, dFdy, dFdxFine, dFdyFine, dFdxCoarse, dFdyCoarse

OpImageQueryLod (textureQueryLod)
OpImageSampleProjImplicitLod (textureProj)
OpImageSampleImplicitLod (texture)
OpImageSampleDrefImplicitLod (textureProj)
2025-11-26 11:40:22 +13:00
Jake Turner f2e708d405 Add the base pointer to live list if a UI change was created for it 2025-11-26 11:40:22 +13:00
Jake Turner b7f307dc06 Don't add changes for pointer base if it is out of the current scope
Generate a change for the base pointer if:
* it is live in this scope
* it is not live in any outer scopes
2025-11-26 08:22:12 +13:00
Jake Turner 21a699e339 Spirv Debugger mark pointer stores and memory copies as live
Added helper method SetLive() used by SetDst() and WritePointerValue()
2025-11-26 08:19:57 +13:00
Jake Turner f5e63aa838 VK Shader Debug Test for function modifying inputs 2025-11-25 16:20:38 +13:00
Jake Turner 828ec85982 Fix Spirv simulation of ImageSampleProjDrefExplicitLod/ImplicitLod
Divide the compare (Dref) value by q
2025-11-24 15:31:02 +13:00
Jake Turner 2f057a78d4 VK Shader Debug Zoo test for OpImageSampleProjDrefExplicitLod 2025-11-24 15:27:20 +13:00
Jake Turner 792afc2190 Tweaked test success message for new D3D12 EI test 2025-11-22 12:52:22 +13:00
Jake Turner 323cc5838f Fix D3D12 shader feedback of EI which does not need a root signature
Do not include argument types:

D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW
D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW

when checking if need to create and set a new command signature
2025-11-20 15:45:25 +13:00
Jake Turner a9056f1eca Add a D3D12 EI test case for an EI which does not need a root signature
EI with:

D3D12_VERTEX_BUFFER_VIEW
D3D12_DRAW_ARGUMENTS
2025-11-20 15:41:32 +13:00
Jake Turner 67fc8618a7 Move the recent D3D12_Shader_Debug_Zoo tests to the noResources shader 2025-11-19 10:44:18 +13:00
Jake Turner ae927151c6 Tweak to compute the vk_workgroup_group pipename from GROUP_SIZE_XYZ 2025-11-19 10:44:18 +13:00
baldurk 00ec7c3fd9 Use correct texture dimension to check for 3D texture copies 2025-11-18 18:12:28 +00:00
baldurk ccbe3c8cce Propagate up failure through expand sections in test results 2025-11-18 17:59:12 +00:00
Jake Turner 0d695da164 Set the d3d12path for d3d12 tests before caching the d3d12 capabilities 2025-11-18 11:40:04 +13:00
Jake Turner a9c2f082bc Moved new DXIL shader debug zoo tests from CS to PS
Guarded use of double by testing against D3D runtime : DoublePrecisionFloatShaderOps
2025-11-18 09:48:07 +13:00
Jake Turner 9c36c319af DXIL Debug simplified result assignment 2025-11-18 09:46:50 +13:00
Jake Turner 4ec8e969bc Extra DXIL shader debug zoo tests
float64, float32, float16 Tests for:

min
max
abs
fmad
frac
dot2/3/4
saturate

sint64, sint32, sint16, uint64, uint32, uint16, Tests for:

min
max
mulitply
division (UDiv)
imad
dot2/3/4
2025-11-17 15:52:27 +13:00
Jake Turner fc30d97244 Tweak DXIL disassembly for global variables to show friendly addrspace
Groupshared instead of addrspace(3)
2025-11-17 11:51:16 +13:00
Jake Turner bc1504bd74 Get the base type form the encoded GPUPointer for DXIL Atomic operations 2025-11-17 11:42:57 +13:00
Jake Turner 48a23a0ddb Store the baseType with DXIL encoded GPUPointers 2025-11-17 11:42:22 +13:00
Jake Turner c864e87fbb Reorder the D3D12 DebugData Zoo shader work around bad DXC debug data
Put the early return case as the first case in the switch statement
2025-11-17 07:13:34 +13:00
Jake Turner 759a738cd1 Add DXIL compute shader builtin inputs to the UI Inputs
Parse the compute shader instructions to see which CS builtins are accessed
SV_DispatchThreadID
SV_GroupID
SV_GroupIndex
SV_GroupThreadID
2025-11-17 06:28:53 +13:00
Jake Turner dbbd9ba010 Added MSAA tests for SM6.0 and SM6.
Disabled in the python because the RenderDoc does not currently support DXIL debugging of MSAA instructions or SV_Barycentrics
2025-11-17 05:47:55 +13:00
Jake Turner 046fa76328 Implement DXIL Debugger support UAV Counter (DXOp::BufferUpdateCounter) 2025-11-17 05:38:15 +13:00
baldurk 15a1587ca0 Fix accidentally removed subobject case 2025-11-14 10:20:13 +00:00
baldurk 647f3850a1 Disable conservative rasterization in wireframe overlay. Closes #3730 2025-11-14 10:19:42 +00:00
Jake Turner ccbb516610 Simplify DXIL Disassembler/Debugger SSA ID name strings and aliases
Store SSA ID name strings in a container which is shared between the disassembler and the debugger.
The SSA ID name strings are guaranteed to be unique by appending the SSA ID value.

Do not use resource names for SSA ID names, only show resource names when a DXIL handle is created i.e. DXOp::CreateHandle, DXOp::CreateHandleFromBinding & DXOp::CreateHandleFromHeap

This means the debugger now has a unique name for each ShaderVariable generated.

Revert the ShaderViewer consistency changes which were only required because the DXIL debugger did not generate unique names for ShaderVariables.
2025-11-13 13:10:44 +13:00
Jake Turner edf9ddacf0 Use ENABLED(RDOC_RELEASE), ENABLED(RDOC_DEVEL) instead of #if defined 2025-11-13 03:34:55 +13:00
Jake Turner 0194951bca Fix D3D12_Resource_Mapping_Zoo false failure if no SM6.6 action to test
Apply the same fix for no SM6.0 action to test
2025-11-12 17:42:03 +13:00
Jake Turner 8a2ca8e14d Convert GetNextUniformBlock() to use graph instead of path
Added:
int32_t BlockInAnyPath(uint32_t from, uint32_t to) const;
which replaces path API BlockInAnyPathSlow()

Removed:
All path related data and functions

Added unit tests for GetNextUniformBlock()
2025-11-12 17:24:20 +13:00
Jake Turner 61262d26f1 Treat vectors of size one as scalars for DXIL debug mapping 2025-11-12 11:42:19 +13:00
Jake Turner 637626638c Fix D3D Shader Debugger source variable mapping for matrix
If the matrix was mapped to a single register (i.e. special SSA ID -1) then it was expanded because a single element was mapped to different register the expansion was not happening because the matrix row was being set to be emitted in the code which tries to recombine rows

Apply similar fix for vector recombining code, do not emit the whole vector by default when assigning a single element and let the recombining code mark if the whole vector should be emitted
2025-11-12 11:42:19 +13:00
Jake Turner 0e84176738 Handle float3 packing and arrays in D3D11/12 shader debug input fetcher
Packing float with a float3

float TEXCOORD0
int   TEXCOORD1
float3 COLOR

Packing float with a float3[1]

float TEXCOORD0
int   TEXCOORD1
float3[1] COLOR

Not packing float with a float3[2]

float TEXCOORD0
int   TEXCOORD1
float3[2] COLOR
2025-11-12 11:42:19 +13:00