Commit Graph
11785 Commits
Author SHA1 Message Date
baldurk fec285efb7 Add D3D12 support for annotations 2026-01-28 14:42:09 +00:00
baldurk c26a5405e9 Add GL support for annotations 2026-01-28 14:42:09 +00:00
Remi Palandri 727f450be2 add D3D11 support for annotations on immediate context only 2026-01-28 14:42:09 +00:00
baldurk c793e9a73e Add Vulkan support for annotations 2026-01-28 14:42:09 +00:00
baldurk 650458beae Add helpers for managing annotations in structured data 2026-01-28 14:42:09 +00:00
baldurk 8f0a408a2b Add a new in-application API for setting user-specified annotations 2026-01-28 14:42:08 +00:00
Aitor Camacho ba10b62149 Expose Vulkan layer entrypoints for mac 2026-01-27 21:45:06 +00:00
Jake Turner be8a5f61fc Spirv Debugger support for SPV_KHR_integer_dot_product
OpSDot
OpUDot
OpSUDot
OpSDotAccSat
OpUDotAccSat
OpSUDotAccSat
2026-01-27 16:16:30 +13:00
baldurk 738a5c1ea5 Track last descriptor buffer and normal descriptor set binds separately
* We need to track these separately because descriptor buffer set invalidation
  can lead to empty sets with no valid pipeline layout as the last bound set
  (since we can't _clear_ the descriptor sets when descriptor buffers are
  invalidated, as there may be a descriptor set binding there). Track these
  separately so we can pick the right set to bind from if we don't have a known
  pipeline layout, and also handle the case where there are descriptor set
  states but the last bound is not valid.
2026-01-26 13:25:21 +00:00
baldurk 55bcd77624 Allow querying device UUIDs too via dxgi GetDevice 2026-01-26 13:25:21 +00:00
Jake Turner 18ab43ae99 Extend the GL shader debugger to handle resource arrays
Part of the fixes for Issue 3763
2026-01-26 11:33:09 +13:00
Jake Turner 25da813b40 Extend GL reflection matching to SPIRV reflection for resource 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-01-26 10:59:50 +13:00
Jake Turner 993842ecf2 Always set the baseType for DXIL debug data DW_TAG_enumeration_type 2026-01-26 10:04:20 +13:00
Jake Turner d729deec1c Fix DXIL debugger hang if an unhandled DICompositeType is used
There was an infinite loop if the unhandled debug data is mapped to a struct member
2026-01-24 08:17:04 +13:00
qwmnerbvqwmn 80cce82823 Fix a hang when debugging HLSL compute shaders with enum types 2026-01-23 18:15:36 +00:00
Martyn Jacques 842d47da96 Avoid address re-use for internal fake backbuffer memory
Track fake backbuffer memory as a device address
resource to defer freeing it until the end of the capture
2026-01-23 03:02:29 +09:00
baldurk 8f7208fa02 Add beginsWith helper to rdcinflexiblestr 2026-01-22 12:16:05 +00:00
baldurk 52c54ef476 Don't do anything for releasing special resources on GL shutdown 2026-01-21 14:43:05 +00:00
baldurk 03de856edf Track CPU-based image layout transitions while idle. Closes #3778
* Similar to proper image transitions we must always track the state of images,
  even if we only serialise the calls during active capturing.
2026-01-21 11:42:32 +00:00
Jake Turner 6d2fe9d1a4 In Vulkan FlushQ() sync m_PrevQueue if it is active 2026-01-20 06:24:06 +13:00
Jake Turner 6fcd5f03db GL Shader Debugger support for interpolation qualifiers
flat
noperspective

Get the interpolation type from the SPIRV decoration
2026-01-20 06:24:06 +13:00
Jake Turner e19f0e9b72 GL Shader Debugger support for bool uniforms 2026-01-20 06:24:06 +13:00
Jake Turner ba10e3a380 Add D3D11 Deferred context to the ResourceManager
ResourceManager::Shutdown() will release it.
2026-01-20 06:24:06 +13:00
Jake Turner bd2a66b5f0 Add the D3D11 Immediate context to the ResourceManager
ResourceManager::Shutdown() will release it.
2026-01-20 06:24:05 +13:00
Jake Turner 5b44a2709b Use m_BakedCmdBufferInfo to test for push constant descriptor 2026-01-20 06:24:05 +13:00
Jake Turner b19a453a8c Fix Vk push constants using the wrong command buffer resource ID 2026-01-20 06:24:05 +13:00
Jake Turner bf99f6fb6e Treat ResourceId() as a replay only ID
This matches previous behaviour of GetOriginalID() used when checking for live IDs i.e.

(GetResourceManager()->GetOriginalID(id) == id)
2026-01-20 06:24:05 +13:00
Jake Turner 775a9c947f Vk shader editing: use unreplaced ID of the shader(s) in the pipeline 2026-01-20 06:24:05 +13:00
Jake Turner ee3b8cf76b Fix shader editing check for replay pipelines/programs 2026-01-20 06:24:04 +13:00
Jake Turner 1e39c9951e Always generate resources for D3D11 Proxy device 2026-01-20 06:24:04 +13:00
baldurk 9bef60d6c3 Display source variables mapped to OpUndef as <undefined value>
* Undefined values are still 0xccccccccc, since that value can propagate through
  operations. But source variables mapped directly to an OpUndef are displayed
  in a more semantically clear way.
2026-01-19 13:34:58 +00:00
Remi Palandri c71f3d504b fix destroyed BDA buffers staying tracked 2026-01-19 19:18:08 +09:00
Jake Turner ef0d6737cc Fix GL GetShaderEntryPoints() when passed in resource is not a shader 2026-01-14 11:26:08 +13:00
MJP 72966f9ba0 Add proper casts when returning the wrapped command queue 2026-01-12 21:54:58 +09:00
MJP c8596542b6 Use proper interface pointer casting during D3D12 CommandQueue creation 2026-01-12 21:54:58 +09:00
MJP 79350fe512 Add missing IID checks for creating ID3D12CommandQueue1 2026-01-12 21:54:58 +09:00
Jake Turner b49291a611 Make enum RemoteServerPacket into enum class, move Count to the end 2026-01-07 09:10:06 +13:00
Jake Turner 5e286ad9b8 Original ID/Live ID fixups for Metal backend 2026-01-06 14:26:28 +13:00
baldurk 94df84d5d9 Remove ownership tracked list
* This list on replay is used to free all replay-created resources, but we can
  re-use the resource map for this.
2026-01-05 22:51:40 +00:00
baldurk 72a16ffa97 Merge live and current resource maps
* Only one is needed now that there's no distinction needed anymore.
2026-01-05 22:51:40 +00:00
baldurk 43cde7debd Remove GetLiveID entirely 2026-01-05 22:51:39 +00:00
baldurk 83919d9306 Remove GetOriginalIDs and naming/comments mentioning original IDs
* Original IDs are now always equal to live IDs.
2026-01-05 22:51:39 +00:00
baldurk 7710c7df1a Generate inline shader IDs during capture on D3D12 2026-01-05 22:51:39 +00:00
baldurk 351f287a59 Eliminate original/live ID distinction by respecify IDs on D3D12 2026-01-05 22:51:38 +00:00
baldurk d0aaad8f99 Eliminate original/live ID distinction by respecify IDs on D3D11 2026-01-05 22:51:38 +00:00
baldurk 6133590777 Eliminate original/live ID distinction by respecify IDs on GL 2026-01-05 22:51:38 +00:00
baldurk d2e3b9d26c Generate inline shader IDs during capture on vulkan
* This ensures they are stable, will not apply to old captures.
2026-01-05 22:51:38 +00:00
baldurk ce21a2dc35 Eliminate original/live ID distinction by respecify IDs on vulkan 2026-01-05 22:51:38 +00:00
baldurk 0c1bb18a1b Prepare to remove live<->replay resource id map lookups
* Resources will be given the ID to use on replay in order to match the original
  IDs. Any internal replay-time resources are given the same namespaced IDs as
  before.
* We add a new per-ID query to check if something is replay-only or not.
2026-01-05 19:11:21 +00:00
Jonathan Glines d03952a874 Fix crash in NVIDIA HasCounter() called without EnumerateCounters()
This fix avoids a NULL-pointer dereference when HasCounter() is called without
a preceding call to EnumerateCounters() for NVIDIA Nsight Perf SDK counters.
2026-01-06 00:26:37 +09:00