From ff711346f3563d7e27c17e0267f9ceb4efdb5e51 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 8 Jul 2025 13:37:48 +0100 Subject: [PATCH] Treat read-only DSVs as depth writes disabled for overlays on D3D --- renderdoc/driver/d3d11/d3d11_overlay.cpp | 4 ++++ renderdoc/driver/d3d12/d3d12_overlay.cpp | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/renderdoc/driver/d3d11/d3d11_overlay.cpp b/renderdoc/driver/d3d11/d3d11_overlay.cpp index b4b6f3bfd..d14108fb5 100644 --- a/renderdoc/driver/d3d11/d3d11_overlay.cpp +++ b/renderdoc/driver/d3d11/d3d11_overlay.cpp @@ -1570,6 +1570,10 @@ ResourceId D3D11Replay::RenderOverlay(ResourceId texid, FloatVector clearCol, De d.FrontFace = cur.FrontFace; d.BackFace = cur.BackFace; } + if(dsViewDesc.Flags & D3D11_DSV_READ_ONLY_DEPTH) + d.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ZERO; + if(dsViewDesc.Flags & D3D11_DSV_READ_ONLY_STENCIL) + d.StencilWriteMask = 0; SAFE_RELEASE(os); hr = m_pDevice->CreateDepthStencilState(&d, &os); diff --git a/renderdoc/driver/d3d12/d3d12_overlay.cpp b/renderdoc/driver/d3d12/d3d12_overlay.cpp index ea7b4fb53..6568b7a71 100644 --- a/renderdoc/driver/d3d12/d3d12_overlay.cpp +++ b/renderdoc/driver/d3d12/d3d12_overlay.cpp @@ -2210,6 +2210,12 @@ ResourceId D3D12Replay::RenderOverlay(ResourceId texid, FloatVector clearCol, De } } + if(dsViewDesc.Flags & D3D12_DSV_FLAG_READ_ONLY_DEPTH) + psoDesc.DepthStencilState.DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ZERO; + if(dsViewDesc.Flags & D3D12_DSV_FLAG_READ_ONLY_STENCIL) + psoDesc.DepthStencilState.FrontFace.StencilWriteMask = + psoDesc.DepthStencilState.BackFace.StencilWriteMask = 0; + RDCEraseEl(psoDesc.RTVFormats.RTFormats); psoDesc.RTVFormats.RTFormats[0] = DXGI_FORMAT_R16G16B16A16_FLOAT; psoDesc.RTVFormats.NumRenderTargets = 1;