From 920bc98f0cff24b51537adbb5a7b176f40e9c182 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 4 Oct 2018 17:35:15 +0100 Subject: [PATCH] Fix D3D11 ClearBeforeDraw overlay not respecting visible range control --- renderdoc/driver/d3d11/d3d11_overlay.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/renderdoc/driver/d3d11/d3d11_overlay.cpp b/renderdoc/driver/d3d11/d3d11_overlay.cpp index 26321a7dc..675ec15f3 100644 --- a/renderdoc/driver/d3d11/d3d11_overlay.cpp +++ b/renderdoc/driver/d3d11/d3d11_overlay.cpp @@ -571,10 +571,29 @@ ResourceId D3D11Replay::RenderOverlay(ResourceId texid, CompType typeHint, Debug if(!events.empty()) { if(overlay == DebugOverlay::ClearBeforePass) + { m_pDevice->ReplayLog(0, events[0], eReplay_WithoutDraw); + } const D3D11RenderState &state = tracker.State(); + if(overlay == DebugOverlay::ClearBeforeDraw) + { + UINT UAV_keepcounts[D3D11_1_UAV_SLOT_COUNT] = {(UINT)-1, (UINT)-1, (UINT)-1, (UINT)-1, + (UINT)-1, (UINT)-1, (UINT)-1, (UINT)-1}; + + if(m_pImmediateContext->IsFL11_1()) + m_pImmediateContext->OMSetRenderTargetsAndUnorderedAccessViews( + RDCMIN(state.OM.UAVStartSlot, (UINT)D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT), + state.OM.RenderTargets, state.OM.DepthView, state.OM.UAVStartSlot, + D3D11_1_UAV_SLOT_COUNT - state.OM.UAVStartSlot, state.OM.UAVs, UAV_keepcounts); + else + m_pImmediateContext->OMSetRenderTargetsAndUnorderedAccessViews( + RDCMIN(state.OM.UAVStartSlot, (UINT)D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT), + state.OM.RenderTargets, state.OM.DepthView, state.OM.UAVStartSlot, + D3D11_PS_CS_UAV_REGISTER_COUNT - state.OM.UAVStartSlot, state.OM.UAVs, UAV_keepcounts); + } + for(size_t i = 0; i < ARRAY_COUNT(state.OM.RenderTargets); i++) if(state.OM.RenderTargets[i]) m_pImmediateContext->ClearRenderTargetView(state.OM.RenderTargets[i], black);