From fe2aaa60dcbb42b9b244b4ec07f8c597dcf9d3fd Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 13 May 2019 18:59:23 +0100 Subject: [PATCH] Handle stencil-only backbuffers --- renderdoc/driver/gl/gl_driver.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index ad71cc3f5..329c52603 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -671,6 +671,8 @@ void WrappedOpenGL::CreateReplayBackbuffer(const GLInitParams ¶ms, ResourceI depthfmt = eGL_DEPTH32F_STENCIL8; else if(params.depthBits == 24) depthfmt = eGL_DEPTH24_STENCIL8; + else if(params.depthBits == 0) + depthfmt = eGL_STENCIL_INDEX8; else RDCERR("Unexpected combination of depth & stencil bits: %d & %d", params.depthBits, params.stencilBits); @@ -704,7 +706,9 @@ void WrappedOpenGL::CreateReplayBackbuffer(const GLInitParams ¶ms, ResourceI GetBaseFormat(depthfmt), GetDataType(depthfmt), NULL); } - if(stencil) + if(stencil && params.depthBits == 0) + drv.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_STENCIL_ATTACHMENT, target, depth, 0); + else if(stencil) drv.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_DEPTH_STENCIL_ATTACHMENT, target, depth, 0); else drv.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_DEPTH_ATTACHMENT, target, depth, 0);