Commit Graph

16623 Commits

Author SHA1 Message Date
Jake Turner 7782bc3452 Make VK_Graphics_Pipeline debugged pixel test fail instead of an error 2026-01-08 06:57:56 +13:00
Jake Turner b49291a611 Make enum RemoteServerPacket into enum class, move Count to the end 2026-01-07 09:10:06 +13:00
Sharlock93 2a1b67eeb6 Sorting array members in the Watch and High Level Variables window
This sets the offset of the VariableTag for array members in the watch
window. This ensures they are sorted correctly when displayed.
This also adds sorting by sourceVarIdx if the memebers are
globalSourceVars which fixes the sorting in the High Level Variables
window for built-in Variables
2026-01-06 02:31:07 +00: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
baldurk 8c97cfb7aa Ensure uniforms are updated on GL pixel history programs. Closes #3760
* When we replace a program, GL programs have *state* in the form of uniforms
  and so must be updated each time even if we retrieve the replacement from a
  cache.
2026-01-05 14:36:33 +00:00
baldurk 856c838def Update copyright years to 2026 and fix copyright ranges
* In a previous update in 2021 many copyright ranges were truncated
  accidentally, and some files have been copy-pasted with wrong years. These
  dates have been fixed based on git history and original copyright messages.
2026-01-05 14:17:28 +00:00
Jake Turner 2b0e143509 Change DXIL ShaderVarible construction for cbuffer variables
Fixes a crash trying to add a watch for these variables
2026-01-05 12:59:05 +13:00
baldurk 9e2be03e09 Only read sampler when unwrapping combined image/sampler descriptor 2026-01-03 16:41:44 +00:00
baldurk 084e1c5acc Fix depth resolve barrier in D3D12 renderpass api 2026-01-01 16:52:20 +00:00
baldurk f333d08bb4 Rename function to not use automatic-slot naming 2025-12-28 11:48:26 +00:00
Jasper St. Pierre f5c73155b5 d3d12: Implement ID3D12SharingContract on the ID3D12CommandQueue
https://learn.microsoft.com/en-us/windows/win32/api/d3d12sdklayers/nn-d3d12sdklayers-id3d12sharingcontract
says:

> You may want to use this interface to enable diagnostic tools to
> capture usage patterns that don't use DXGI swap chains for
> presentation. If so, you can access this interface via
> QueryInterface from a D3D12 command queue.

Currently, this is implemented on the ID3D12Device. Implement
it on the D3D12CommandQueue as well.
2025-12-28 20:25:18 +09:00
Jake Turner 1b5543e74f Fix D3D12 Compute Derivative Tests
Use groupId for the output buffer index to match the python
Only output results for workgroup 1,0,0

Do not reset test failing to false in check_compute_derivative_tests()
2025-12-22 09:03:33 +13:00
Jake Turner 411cb89106 Default current stage to VSIn when viewing Vertex Shaders 2025-12-22 07:49:09 +13:00
Jake Turner 6d89b15bc9 Fix D3D validation warning in ResolvePendingIndirectState()
D3D12 WARNING: ID3D12Resource3::ID3D12Resource::Unmap: pWrittenRange does not point to an empty D3D12_RANGE and the heap type is D3D12_HEAP_TYPE_READBACK. Readback resources can be written by the CPU but there's not much utility. The rationale is that readback heaps are stuck in COPY_DEST state such that the GPU can never use what the CPU is writing. The range [0, 4194304) should be empty (Begin >= End). [ EXECUTION WARNING #929: UNMAP_RANGE_NOT_EMPTY]
2025-12-20 07:27:33 +13:00
Jake Turner 3c407eee51 GetParentMarker: Search children if first child is less than eventId
Handle case where action->eventId > eventId but the action contains the event being searched for
2025-12-20 07:26:26 +13:00
baldurk 191e8cd10d Bump version to v1.43 2025-12-19 17:41:39 +00:00
Jake Turner e7f0b0ea67 DXBC Debugger fix for CalculateLevelOfDetailUnclamped
The LOD result has already been swizzed into result.x
v1.42
2025-12-14 08:13:05 +13:00
Jake Turner 3767d5da0c Added D3D11, D3D12 shader debug tests for CalculateLevelOfDetail* 2025-12-14 08:11:14 +13:00
Jake Turner a3f3f1a510 Support for DXIL SM6.6 Derivatives in Compute Shaders
linear layout (4x1x1) : for 1D workgroup (Nx1x1) otherwise quad layout (2x2x1)

HLSL
ddx()
ddx_coarse()
ddy()
ddy_coarse()
ddx_fine()
ddy_fine()

CalculateLevelOfDetail()
CalculateLevelOfDetailUnclamped()
Sample()
SampleBias()
SampleCmp()

DXIL
DXOp::DerivCoarseX
DXOp::DerivCoarseY
DXOp::DerivFineX
DXOp::DerivFineY
DXOp::CalculateLOD
DXOp::Sample
DXOp::SampleBias
2025-12-12 12:02:16 +13:00
Jake Turner ab7016e142 D3D12 DXIL Debugger pure quad scope fixes
Initialise global SV_GroupID builtin
Resize containers to correct number of threads
2025-12-12 12:02:16 +13:00
Jake Turner 1b56d385fe D3D12 Test cases for SM6.6 Derivatives in Compute Shaders
HLSL
ddx()
ddx_coarse()
ddy()
ddy_coarse()
ddx_fine()
ddy_fine()

CalculateLevelOfDetail()
CalculateLevelOfDetailUnclamped()
Sample()
SampleBias()
SampleCmp()
2025-12-12 12:02:16 +13:00
Jake Turner cd0faba571 Made enum DerivType be class enum to reduce its scope 2025-12-12 12:02:16 +13:00
baldurk 72c6bbe302 Also check mesh shader for exported primitive ID. Refs #3746
* We were only checking geometry shader before.
2025-12-11 19:07:16 +00:00
Jake Turner 95702ce6f7 Support for DXIL Quad Ops in Compute Shader Debugging
linear layout (4x1x1) : for 1D workgroup (Nx1x1) otherwise quad layout (2x2x1)
2025-12-11 15:39:19 +13:00
Jake Turner dc61249328 Set ThreadScope::Quad if DXIL compute shader uses Quad Ops
Check for dx.op.quadReadLaneAt.* or dx.op.quadOp.* or dx.op.quadVote.*
2025-12-11 15:39:19 +13:00
Jake Turner e2ca32a348 D3D12_Subgroup_Zoo tests for Quad Ops in Compute Shader
QuadReadLaneAt
QuadReadAcrossDiagonal
QuadReadAcrossX
QuadReadAcrossY
QuadAny
QuadAll
2025-12-11 15:39:19 +13:00
Jake Turner 823ab380c1 Move hasQuadScope assert to the correct place (after workgroup check) 2025-12-11 14:56:14 +13:00
Jake Turner c14d404f2c Add warning text to CrashDialog if capture contains embedded files
"Warning: The capture file includes data from <N> embedded files."
2025-12-11 11:13:29 +13:00
Jake Turner 8c25651162 Add Tools Menu Option for externally referenced dependent files
"Embed external files into Capture"
"Remove external files from Capture"
2025-12-11 11:13:29 +13:00
Jake Turner cf4e8b15fc ICaptureContextx APIs for externally referenced dependency files
void EmbedDependentFilesIntoCapture();
void RemoveDependentFilesFromCapture();
2025-12-11 11:13:29 +13:00
Jake Turner 10cf43b703 ICaptureAccess APIs for externally referenced dependency files
ResultDetails EmbedDependentFilesIntoCapture();
ResultDetails RemoveDependentFilesFromCapture();
int32_t CountEmbeddedDependentFiles();
int32_t CountExternallyReferencedFiles();
rdcarray<rdcstr> GetExternallyReferencedFiles();
2025-12-11 11:13:29 +13:00
Jake Turner 0bd07bf283 Connect Vk and DXBC Shader Debug files to dependent files Core API
Add any found external shader debug file as a tracked dependency.
If external shader file is not found on disk, try to find it in the loaded tracked file data.
Use the shader debug filename reference as the dependency nickname : this might be an absolute path, relative path or a hash.
2025-12-11 10:18:34 +13:00
Jake Turner 5db4350193 RenderDoc Core APIs to support external file dependencies in captures 2025-12-11 10:18:34 +13:00
Jake Turner 0d1220aab9 Missing UnregisterMemoryRegion() in ~ReplayController 2025-12-10 22:04:36 +13:00
Jake Turner a9d98f9526 Compute BBOX correctly when viewing Mesh Shader draw 2025-12-09 07:58:59 +13:00
Jake Turner f42e03b079 Set current stage to TaskOut instead of VSIn when viewing Mesh Shaders 2025-12-09 07:58:27 +13:00
baldurk 94f469de63 Update documentation to account for new mesh viewer options 2025-12-08 18:24:19 +00:00
baldurk a059764b74 Fix default identification of raster out stage 2025-12-08 18:24:19 +00:00