From f549ee12f1770dc05be6d7a4b90b45bc296c405d Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 31 Oct 2018 13:54:52 +0000 Subject: [PATCH] Handle stencil attachments in triangle size GL overlay --- renderdoc/driver/gl/gl_overlay.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/gl/gl_overlay.cpp b/renderdoc/driver/gl/gl_overlay.cpp index 629fb854e..581d18e84 100644 --- a/renderdoc/driver/gl/gl_overlay.cpp +++ b/renderdoc/driver/gl/gl_overlay.cpp @@ -920,16 +920,31 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve drv.glBindBufferBase(eGL_UNIFORM_BUFFER, 1, DebugData.UBOs[1]); drv.glBindBufferBase(eGL_UNIFORM_BUFFER, 2, DebugData.UBOs[2]); - const GLenum att = eGL_DEPTH_ATTACHMENT; - GLuint depthObj = 0; + GLenum att = eGL_DEPTH_ATTACHMENT; + GLuint depthObj = 0, stencilObj = 0; GLint type = 0, level = 0, layered = 0, layer = 0; + // do we have a stencil object? + drv.glGetNamedFramebufferAttachmentParameterivEXT(drawFBO, eGL_STENCIL_ATTACHMENT, + eGL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, + (GLint *)&stencilObj); + // fetch the details of the 'real' depth attachment drv.glGetNamedFramebufferAttachmentParameterivEXT( drawFBO, att, eGL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, (GLint *)&depthObj); drv.glGetNamedFramebufferAttachmentParameterivEXT( drawFBO, att, eGL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &type); + if(depthObj && stencilObj) + { + att = eGL_DEPTH_STENCIL_ATTACHMENT; + } + else if(depthObj == 0 && stencilObj) + { + att = eGL_STENCIL_ATTACHMENT; + depthObj = stencilObj; + } + if(depthObj) { drv.glGetNamedFramebufferAttachmentParameterivEXT(