Commit Graph
17464 Commits
Author SHA1 Message Date
baldurk 7aff2979a7 Also ignore attachmentCount as spec says this is ignored too 2026-10-20 15:32:10 +01:00
baldurk 64beecb16a Ignore pipeline color attachments if all states are dynamic 2026-10-20 15:29:32 +01:00
baldurk 183fbfab8a Fix demos compile error
* error C2026: string too big, trailing characters truncated
2026-10-20 13:33:44 +01:00
baldurk 4ed3ad4886 Add notes that LLM generated text for issues/PRs is prohibited 2026-10-20 10:15:59 +01:00
Jake Turner 80ee1c3ba9 DXBC Debugger SM5.1 support for all resource type arrays and operations
- previously only the resource used in the CalculateSampleGather operation would support arrays
- now includes array of Samplers, array of UAVs, array of SRVs which does not use CalculateSampleGather
2026-10-19 12:31:07 +01:00
Jake Turner 2195a47ea7 DXIL Debugger improved support for arrays of resources
- simulation support for arrays of Samplers (bounded and unbounded)
- simulation support for arrays of cbuffers (bounded and unbounded)
- add arrayed SRVs, UAVs, Samplers, cbuffers to the global state and UI
2026-10-19 12:04:07 +01:00
Jake Turner 33b0522c4f Extend D3D12_Shader_Debug_Zoo tests for arrayed resources
- bounded array of srv, uav, sampler, cbuffer
- unbounded array of srv, uav, sampler, cbuffer
2026-10-19 11:46:50 +01:00
Jake Turner ef2961d2c3 GL Spirv debugger support for arrays of UBOs, SSBOs
- bounded arrays only
2026-10-19 11:46:50 +01:00
Jake Turner 36995aefa3 Extend GL reflection matching to SPIRV reflection for UBO, SSBO arrays
GL resource arrays are expanded in the GL reflection i.e. texture[0], texture[1] but they are collapsed in the SPIRV reflection.
For SPIRV resource arrays if matching the full name fails then try to match by the expanded name i.e. texture[<ARRAY_ELEMENT>]
2026-10-19 11:46:50 +01:00
Jake Turner f69a1f91d8 Fix GL Shader Reflection for UBO arrays
- use the array basename to match for ubo variables
2026-10-19 11:46:50 +01:00
Jake Turner 729443d4fb Extend GL_Shader_Debug_Zoo tests for arrayed resources
- bounded UBO array
- bounded SSBO array
2026-10-19 11:46:50 +01:00
Jake Turner e89335822a ShaderViewer support for arrays of Samplers 2026-10-19 11:46:50 +01:00
Jake Turner 737355196a ShaderViewer support for arrays of cbuffers 2026-10-19 10:42:15 +01:00
Jake Turner e3a7f3da4c Vulkan Spirv debugger support for arrays of cbuffers
- bounded and unbounded
2026-10-19 10:34:59 +01:00
Jake Turner 6599a0d363 Extend VK_Shader_Debug_Zoo tests for arrayed resources
- bounded Uniform array
- unbounded array of Uniform, Buffer, Sampler and Tex2D
2026-10-19 10:33:10 +01:00
Jake Turner a6fde06ea5 Fix ShaderViewer UI display of Samplers
- Samplers were accidentally broken in "Improve support for resource array display in Shader Debugging UI"
2026-10-16 15:49:22 +01:00
Jake Turner fdf0ae8c8b Ignore MSVC Warning 5240
- C5240: '[[nodiscard]]': attribute is ignored in this syntactic position
2026-10-16 07:47:57 +01:00
baldurk 45e91661ee Leak resources on linux context shutdown if not bound. Closes #3921
* Linux doesn't support rebinding contexts between EGL (Android binding API) and
  GLX (linux) even if no context is bound, so if one platform is used then the
  other we can't bind our child contexts in order to delete objects when a
  context is destroyed.
* We will have to do the same as we do if a different context is bound, and hope
  that the driver tidies this stuff up for us when the context is deleted.
2026-10-15 17:27:17 +01:00
baldurk d0ea00bba1 Check for truncated flag presence or absence in cbuffer checks 2026-10-12 10:37:10 +01:00
Jake Turner 36b1c78ec7 Show a DXIL TypedDebuffer as "Buffer" in the disassembly to match HLSL
- DXC disassembly still uses TypedBuffer
2026-10-09 13:37:53 +01:00
James Sumihiro bc8c83b4e9 Add support for VK_EXT_shader_object to FetchShaderFeedback 2026-10-09 21:32:59 +09:00
Wang, Xiong 61a81af880 Release Python callback arguments in the destructor
Keep the argument tuple owned by varfunc for its full per-call lifetime.
ConvertFunc destroys varfunc before ScopedFuncCall, so the tuple is released
exactly once while the GIL is still held, including failed callbacks.
2026-10-09 21:32:37 +09:00
Wang, Xiong c3548cd16a Fix Python callback reference counting and shutdown cleanup
Clear the argument tuple after calling a Python callback so varfunc's
destructor cannot decrement it a second time. This prevents repeated
zero-argument callbacks from losing references to the shared empty tuple.

Skip callback reference cleanup after Python has shut down, since Qt can
destroy pending callback closures during QApplication teardown.

Validation:
- Regression harness using this header and bundled Python 3.6.4: 20,000
  callbacks with balanced references, nonempty arguments, exception paths,
  deferred release, and callback destruction after Py_Finalize.
- Windows x64 Release build: no warnings or errors.
- MI 8 remote replay: 1.rdc -> 2.rdc -> 1.rdc -> 2.rdc; normal exit with
  a pending callback, exit code 0.

Build and device checks used the existing development checkout, which also
contains separate local changes excluded from this commit.
2026-10-09 21:32:37 +09:00
baldurk 37c2395138 Don't leak Truncated flag for spec constants when filling values 2026-10-08 21:43:55 +01:00
baldurk c3b5920471 Allow bindings in shader feedback that do not exist in descriptor sets
* In some cases for resources that are declared in the entry point they will be
  in reflected but it is possible that they are not statically used. For these,
  it is allowed for them to not be present in the descriptor set at which point
  we need to ignore them.
2026-10-08 16:08:16 +01:00
Jake Turner 4288cec631 Do not validate ShaderVariable before/after for ConstantBlock types 2026-10-08 10:58:18 +01:00
Jake Turner 591e765bea Change MakeCompositePointer to take a const array of indices 2026-10-08 10:57:53 +01:00
Jake Turner f5f8f8f652 Include array index when sorting resources in Vulkan Pipeline View 2026-10-08 10:55:26 +01:00
Jake Turner 4924d00db0 Set system paths in local_pcre build for autoreconf
- Fixes building from Xcode
2026-10-07 06:00:15 +01:00
Jake Turner 15c73df694 Changes to Metal protocols to support MacOS SDK 27.0 2026-10-07 05:59:50 +01:00
baldurk 2cb0a87d6a Don't require sampled feature for 64-bit integer formats
* Normally we require this for display, but we can't display these formats. On
  many drivers sampling is not supported so this would force the whole format to
  be unsupported, but due to shaderImageInt64Atomics we can't do that.
2026-10-06 13:58:35 +01:00
baldurk 6b0eb1f7f4 Be explicit that 64bit integer textures can't be displayed. Closes #3918 2026-10-06 13:58:34 +01:00
Jake Turner e2b85b4622 Update the VK_Shader_Debug_Zoo tests for arrayed resources
- Access queryTests, queryTestsMS element one instead of zero
- add tests for texBuffers, storeTexBuffers
- initialize arrayed resources descriptors to bad values
- set the accessed array indices to good values
2026-10-06 08:44:43 +01:00
Jake Turner d4253c2618 Change Mac github runner to macos-15 2026-10-06 06:32:45 +01:00
Jake Turner 66d008ecd0 Changes to Metal protocols to support MacOS SDK 15.0 2026-10-06 06:32:41 +01:00
Jake Turner 6597049558 Add #define for calcoffset() to fix Apple clang compile error
- offset of on non-standard-layout type -Winvalid-offsetof
2026-10-06 06:32:34 +01:00
Jake Turner 6906fce2be Fix Apple compile errors from -Wnontrivial-memcall
- first argument in call to 'memset' is a pointer to non-trivially copyable type 'MetalInitialContents'
2026-10-06 06:32:26 +01:00
Jake Turner e3c71e6e13 Fix Apple xcode path capitalisation to match disk 2026-10-06 06:32:05 +01:00
baldurk 14b5863046 Add misisng stringise for VkStructureType
* This wasn't included accidentally in last header bump.
2026-10-05 12:55:27 +01:00
Student Main 662623da68 Fix LoongArch BREAK instruction encoding 2026-10-05 20:16:53 +09:00
Jake Turner 4c07524147 Improve support for resource array display in Shader Debugging UI
- Use Shader feedback to get the accessed resource array index
- Use Shader feedback to show accessed elements in unbounded resource arrays

Before

tex1    [128]
tex1[0] _100[0] Resource Colour Tex
tex1[1] _100[1] Resource Black Tex

inbuf _166[unbounded] [unbounded]

tex2 _208[unbounded] [unbounded]

tex3    [3]
tex3[0] _221[0] Resource Colour Tex

After

tex1    [128]
tex1[4] _100[4] Resource Colour Tex
tex1[19] _100[19] Resource Black Tex

inbuf    unbounded
inbuf[15] _166[15] RW Resource Buffer 171

tex2    unbounded
tex2[381] _208[381] Resource Colour Tex
tex2[386] _208[386] Resource Colour Tex

tex3    [3]
tex3[1] _221[1] Resource Colour Tex
2026-10-02 14:25:14 +01:00
Jake Turner 9f12bf79a3 Allow spirv shader debugging for unbounded SSBOs 2026-10-02 14:25:14 +01:00
baldurk 0db41a0cde Don't use != in rdcpair as not every struct will implement it
* We can use !(a == b) instead for the same effect as we assume an equality
  operator.
2026-10-02 14:22:16 +01:00
baldurk 5b666aebef Improve autocomplete over rdcarray variables
* Anything obtained via the aliased interfaces will act as if it's a List[], but
  any globals from the repl will be rdcarray typed so we need to handle looking
  up the 'real' type for that.
2026-10-02 14:22:16 +01:00
baldurk e189be893c Unwrap/ignore optional for purposes of autocomplete 2026-10-02 14:22:15 +01:00
papalqi 42e52b48a3 vulkan: work around Qualcomm opaque capture address ordering bug
On some Qualcomm drivers (observed on Adreno 740, Xiaomi 2304FPN6DC,
Android 16) vkAllocateMemory returns an address different from the
requested opaque capture address when the pNext chain lists
VkMemoryOpaqueCaptureAddressAllocateInfo before
VkMemoryAllocateFlagsInfo carrying
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT. The allocation
itself succeeds, so replay only fails later at the post-allocation
address equality check ("opaque address 0x%llx has changed on replay").

A standalone NDK Vulkan probe that replays the captured allocation
sequence without any RenderDoc layer involved deterministically
reproduces the wrong address with the captured chain order, and gets
all addresses matching when the two structures are swapped. pNext
chain order is not supposed to affect behaviour, so this is a driver
bug.

Move the existing VkMemoryAllocateFlagsInfo node to the head of the
chain when the new QualcommBrokenOpaqueCaptureAddress driver
workaround is active, immediately before AllocateMemory. The captured
address, flags, and all other chain nodes are left untouched, and the
existing address equality check still applies. The workaround only
triggers when both structures are present, a non-zero opaque address
is requested, and the flags node is not already first, so unrelated
captures are unaffected. The flag is enabled unconditionally for
Qualcomm for now as the fix version is unknown, matching the other
Qualcomm workarounds.

Validated on the original failing capture: remote replay of a
33 MB frame that previously failed the address check now opens in
~2.7 s and replays through Present with matching addresses.
2026-10-01 19:01:11 +09:00
Triang3l 894e51ccf2 Support null vertex/index buffers in D3D12 ExecuteIndirect
According to the D3D12 debug layer, setting either BufferLocation or
SizeInBytes to 0 in IASetVertexBuffers and IASetIndexBuffer commands
causes a null view to be bound, with the rest of the VBV/IBV description
structure being ignored.

In particular, this means that a BufferLocation of 0 must be supported
by RenderDoc, and also if SizeInBytes is 0, BufferLocation may be an
invalid address, so it must be ignored.

This change disables the resource lookup for null VBVs and IBVs.

Additionally, if the application has provided an invalid address for a
non-null VBV or IBV, it's replaced with a null view now instead of
passing the original address from the application through.
2026-10-01 10:29:42 +01:00
baldurk 91ea80af1d Display evaluated assertion expression if present 2026-09-30 12:29:31 +01:00
baldurk d3555c51af Use move helper for rdcarray move append
* This makes a big difference for move-appending basic types like bytes or ints
2026-09-30 12:29:31 +01:00
baldurk c63d957359 Fix fetching extra buffer data if fixed range is larger than clamp size 2026-09-30 12:29:31 +01:00