Commit Graph

16555 Commits

Author SHA1 Message Date
baldurk 7a2af108ad Remove pipes which can randomly fail apparently
* Previously `git log --oneline | grep -v 7a064ae | head -n 100` was throwing an
  error `grep: write error: Broken pipe` which as far as I can tell is working
  as intended and can't be fixed. So we remove pipes and use temporary files
  like animals.
2025-12-02 20:10:20 +00:00
baldurk 372aae1381 Add config option for vulkan GPU VA 2025-12-02 14:21:55 +00:00
baldurk c4f35d45cc Fix compilation on old linux compilers 2025-12-02 13:10:34 +00:00
baldurk 09a0c34979 Add manual implicit bias path for Android 2025-12-02 12:37:19 +00:00
baldurk d89b763e49 Fix issues for Android debugging 2025-12-02 12:37:19 +00:00
baldurk ac8b786476 Remove GL shader debugging config variable 2025-12-02 12:37:19 +00:00
baldurk 466f8f6738 Add documentation for GL shader debugging 2025-12-02 12:37:19 +00:00
baldurk e85651545f Add test of GL shader debugging 2025-12-02 12:17:36 +00:00
baldurk 910f7ab65f Handle matrices when copying program attribute bindings 2025-12-02 12:17:36 +00:00
baldurk 7c438edd2a Fix column lookup via access chain in SPIR-V debugging 2025-12-02 12:17:36 +00:00
baldurk 0a15153330 Add a compute debugging UI selector to the GL pipeline state view 2025-12-02 12:17:36 +00:00
baldurk 0f70937707 Dump input fetcher & SPIR-V to disk based on config option 2025-12-02 12:17:36 +00:00
baldurk 01d305eb4e Detect gl_PerVertex for GL shaders 2025-12-02 12:17:36 +00:00
baldurk 88cf6f295a Add vertex shader debugging setup on GL 2025-12-02 12:17:36 +00:00
baldurk d550195e4c Add compute shader debugging setup on GL 2025-12-02 12:17:36 +00:00
baldurk ddf19304b7 Handle resources encountered in the SPIR-V debugging that don't exist
* It is common for drivers to dead-code eliminate resources and they will not
  show up in reflection at all and will not have a binding. For these we will
  still encounter them when debugging so need to ensure we handle that case.
* This unfortunately makes a previously illegal/error-checked case silently
  continue, so we add API-specific asserts.
2025-12-02 12:17:35 +00:00
baldurk 7490abedcf Remap locations/binds back to match real shader as needed 2025-12-02 12:17:35 +00:00
baldurk 8ed7c14556 Try to compile GLSL shaders to SPIR-V to enable debugging 2025-12-02 12:17:35 +00:00
baldurk c4f71f6223 Support plain bare uniforms in GL SPIR-V 2025-12-02 12:17:35 +00:00
baldurk 02096dd75e Add input fetcher generation for GL shader debugging 2025-12-02 12:17:35 +00:00
baldurk 55e8c42f50 Require SSBOs & CS for shader debuggging at minimum 2025-12-02 12:17:35 +00:00
baldurk 5a4b4dca03 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-02 12:17:34 +00:00
baldurk e66dc5cd6b Update GL headers to latest as of 2025-11-14 2025-12-02 12:17:34 +00:00
baldurk d62d2d8848 Add CPU side handling of math/sampling operations 2025-12-02 12:17:33 +00:00
baldurk 118baf6432 Add GL versions of shader debug pixel shaders 2025-12-01 17:25:57 +00:00
baldurk 22979a8696 Allow shader debug vertex shader to compile on GL or Vulkan 2025-12-01 17:25:57 +00:00
baldurk 6749e47177 Move shader debugging replay function stubs into new file 2025-12-01 17:25:57 +00:00
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