From 693fa9e8eab57537ff302c1859d0645169897ca0 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Fri, 1 Dec 2023 05:22:31 +0000 Subject: [PATCH] GL Depth Overlay fallback to non-stencil mask Fallback if the depth copy does not handle the depth texture configuration --- renderdoc/driver/gl/gl_overlay.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/renderdoc/driver/gl/gl_overlay.cpp b/renderdoc/driver/gl/gl_overlay.cpp index 2fcd28f2e..beb2ff82c 100644 --- a/renderdoc/driver/gl/gl_overlay.cpp +++ b/renderdoc/driver/gl/gl_overlay.cpp @@ -1012,6 +1012,7 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, FloatVector clearCol, Debug GLuint depthCopy = 0, stencilCopy = 0; bool useBlitFramebuffer = true; + bool useDepthStencilMask = (overlay == DebugOverlay::Depth) && (curDepth != 0); // create matching depth for existing FBO if(curDepth != 0) @@ -1062,8 +1063,16 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, FloatVector clearCol, Debug if(oldFmt != fmt) { - useBlitFramebuffer = false; - curStencil = curDepth; + if(DebugData.overlayTexSlices > 1) + { + useDepthStencilMask = false; + RDCWARN("Depth overlay using fallback method instead of stencil mask"); + } + else + { + useBlitFramebuffer = false; + curStencil = curDepth; + } } } @@ -1331,7 +1340,6 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, FloatVector clearCol, Debug if(!IsGLES && !rs.Enabled[GLRenderState::eEnabled_DepthClamp]) drv.glDisable(eGL_DEPTH_CLAMP); - bool useDepthStencilMask = (overlay == DebugOverlay::Depth) && (curDepth != 0); if(useDepthStencilMask) { drv.glStencilMask(0xff);