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
baldurk
188007eb46
Exclude modifier/toggle keys from key bindings
2025-12-08 18:24:19 +00:00
baldurk
bae6f79dee
Catch conflicting binds and warn to ensure no duplicates
2025-12-08 18:24:19 +00:00
baldurk
f86aa4a2b7
On windows/linux convert known native scancodes to default keys
...
* This lets us have more helpful behaviour for default keys rather than being
all-or-nothing, and display which keys are which.
2025-12-08 18:24:19 +00:00
baldurk
c554f726dd
Enable depth clipping for solid mesh render, disable for wireframes
...
* Wireframes can render without a near plane clip and be mostly fine, but solid
renders need the depth so they should clip. Behaviour was inconsistent between
APIs before
2025-12-08 18:24:19 +00:00