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;