From f00914bbfd7ad2233edcd9b1eda8215777f69a8d Mon Sep 17 00:00:00 2001 From: baldurk Date: Sun, 2 Nov 2014 20:09:35 +0000 Subject: [PATCH] Always point sample depth textures on display --- renderdoc/data/glsl/debuguniforms.h | 1 + renderdoc/data/glsl/texdisplay.frag | 3 ++- renderdoc/driver/gl/gl_debug.cpp | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/renderdoc/data/glsl/debuguniforms.h b/renderdoc/data/glsl/debuguniforms.h index 7d61fd059..419d08e8d 100644 --- a/renderdoc/data/glsl/debuguniforms.h +++ b/renderdoc/data/glsl/debuguniforms.h @@ -91,4 +91,5 @@ BINDING(0) uniform FontUniforms #define TEXDISPLAY_TYPEMASK 0x7 #define TEXDISPLAY_UINT_TEX 0x8 #define TEXDISPLAY_SINT_TEX 0x10 +#define TEXDISPLAY_DEPTH_TEX 0x20 diff --git a/renderdoc/data/glsl/texdisplay.frag b/renderdoc/data/glsl/texdisplay.frag index 94441d658..fd2d9b441 100644 --- a/renderdoc/data/glsl/texdisplay.frag +++ b/renderdoc/data/glsl/texdisplay.frag @@ -268,6 +268,7 @@ void main(void) { bool uintTex = (OutputDisplayFormat & TEXDISPLAY_UINT_TEX) != 0; bool sintTex = (OutputDisplayFormat & TEXDISPLAY_SINT_TEX) != 0; + bool depthTex = (OutputDisplayFormat & TEXDISPLAY_DEPTH_TEX) != 0; vec4 col; uvec4 ucol; @@ -287,7 +288,7 @@ void main(void) } else { - col = SampleTextureFloat4(scr / Scale, OutputDisplayFormat & TEXDISPLAY_TYPEMASK, FlipY == 0, (Scale < 1.0 && MipLevel == 0.0), int(MipLevel), Slice); + col = SampleTextureFloat4(scr / Scale, OutputDisplayFormat & TEXDISPLAY_TYPEMASK, FlipY == 0, (Scale < 1.0 && MipLevel == 0.0 && !depthTex), int(MipLevel), Slice); } if(RawOutput != 0) diff --git a/renderdoc/driver/gl/gl_debug.cpp b/renderdoc/driver/gl/gl_debug.cpp index ea89f91f1..52728432f 100644 --- a/renderdoc/driver/gl/gl_debug.cpp +++ b/renderdoc/driver/gl/gl_debug.cpp @@ -388,6 +388,9 @@ bool GLReplay::RenderTexture(TextureDisplay cfg) ubo->OutputDisplayFormat = resType; + if(dsTexMode != eGL_NONE) + ubo->OutputDisplayFormat |= TEXDISPLAY_DEPTH_TEX; + ubo->RawOutput = cfg.rawoutput ? 1 : 0; ubo->TextureResolutionPS.x = float(tex_x);