From 4cb7648ebcfac84010ebbc7105c2f23d4e49e177 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 13 Mar 2021 00:46:38 +0000 Subject: [PATCH] Fix handling of multisampled renderbuffers on GL --- renderdoc/driver/gl/gl_debug.cpp | 8 ++++---- renderdoc/driver/gl/gl_replay.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/renderdoc/driver/gl/gl_debug.cpp b/renderdoc/driver/gl/gl_debug.cpp index fd08f097c..3e7336194 100644 --- a/renderdoc/driver/gl/gl_debug.cpp +++ b/renderdoc/driver/gl/gl_debug.cpp @@ -1714,7 +1714,7 @@ bool GLReplay::GetMinMax(ResourceId texid, const Subresource &sub, CompType type switch(texDetails.curType) { case eGL_RENDERBUFFER: - texSlot = RESTYPE_TEX2D; + texSlot = texDetails.samples > 1 ? RESTYPE_TEX2DMS : RESTYPE_TEX2D; renderbuffer = true; break; case eGL_TEXTURE_1D: texSlot = RESTYPE_TEX1D; break; @@ -1756,7 +1756,7 @@ bool GLReplay::GetMinMax(ResourceId texid, const Subresource &sub, CompType type GL.glBindFramebuffer(eGL_READ_FRAMEBUFFER, curReadFBO); texname = texDetails.renderbufferReadTex; - target = eGL_TEXTURE_2D; + target = texDetails.samples > 1 ? eGL_TEXTURE_2D_MULTISAMPLE : eGL_TEXTURE_2D; } MakeCurrentReplayContext(m_DebugCtx); @@ -1940,7 +1940,7 @@ bool GLReplay::GetHistogram(ResourceId texid, const Subresource &sub, CompType t switch(texDetails.curType) { case eGL_RENDERBUFFER: - texSlot = RESTYPE_TEX2D; + texSlot = texDetails.samples > 1 ? RESTYPE_TEX2DMS : RESTYPE_TEX2D; renderbuffer = true; break; case eGL_TEXTURE_1D: texSlot = RESTYPE_TEX1D; break; @@ -1982,7 +1982,7 @@ bool GLReplay::GetHistogram(ResourceId texid, const Subresource &sub, CompType t GL.glBindFramebuffer(eGL_READ_FRAMEBUFFER, curReadFBO); texname = texDetails.renderbufferReadTex; - target = eGL_TEXTURE_2D; + target = texDetails.samples > 1 ? eGL_TEXTURE_2D_MULTISAMPLE : eGL_TEXTURE_2D; } MakeCurrentReplayContext(m_DebugCtx); diff --git a/renderdoc/driver/gl/gl_replay.cpp b/renderdoc/driver/gl/gl_replay.cpp index 34ae92877..cc350a02c 100644 --- a/renderdoc/driver/gl/gl_replay.cpp +++ b/renderdoc/driver/gl/gl_replay.cpp @@ -2723,7 +2723,7 @@ void GLReplay::GetTextureData(ResourceId tex, const Subresource &sub, // then proceed to read from the texture texname = texDetails.renderbufferReadTex; - texType = eGL_TEXTURE_2D; + texType = texDetails.samples > 1 ? eGL_TEXTURE_2D_MULTISAMPLE : eGL_TEXTURE_2D; MakeCurrentReplayContext(m_DebugCtx); }