diff --git a/renderdoc/driver/gl/gl_debug.cpp b/renderdoc/driver/gl/gl_debug.cpp index 38bc102f0..b839fe4c2 100644 --- a/renderdoc/driver/gl/gl_debug.cpp +++ b/renderdoc/driver/gl/gl_debug.cpp @@ -1168,6 +1168,11 @@ GLReplay::TextureSamplerState GLReplay::SetSamplerParams(GLenum target, GLuint t GL.glGetTextureParameterivEXT(texname, target, eGL_TEXTURE_MAG_FILTER, (GLint *)&ret.magFilter); GL.glGetTextureParameterivEXT(texname, target, eGL_TEXTURE_WRAP_S, (GLint *)&ret.wrapS); GL.glGetTextureParameterivEXT(texname, target, eGL_TEXTURE_WRAP_T, (GLint *)&ret.wrapT); + GL.glGetTextureParameterivEXT(texname, target, eGL_TEXTURE_COMPARE_MODE, (GLint *)&ret.compareMode); + + // disable depth comparison + GLenum compareMode = eGL_NONE; + GL.glTextureParameterivEXT(texname, target, eGL_TEXTURE_COMPARE_MODE, (GLint *)&compareMode); // always want to clamp GLenum param = eGL_CLAMP_TO_EDGE; @@ -1210,6 +1215,7 @@ void GLReplay::RestoreSamplerParams(GLenum target, GLuint texname, TextureSample GL.glTextureParameterivEXT(texname, target, eGL_TEXTURE_WRAP_T, (GLint *)&state.wrapT); GL.glTextureParameterivEXT(texname, target, eGL_TEXTURE_MIN_FILTER, (GLint *)&state.minFilter); GL.glTextureParameterivEXT(texname, target, eGL_TEXTURE_MAG_FILTER, (GLint *)&state.magFilter); + GL.glTextureParameterivEXT(texname, target, eGL_TEXTURE_COMPARE_MODE, (GLint *)&state.compareMode); } bool GLReplay::GetMinMax(ResourceId texid, uint32_t sliceFace, uint32_t mip, uint32_t sample, diff --git a/renderdoc/driver/gl/gl_replay.h b/renderdoc/driver/gl/gl_replay.h index 49d1b626b..914531099 100644 --- a/renderdoc/driver/gl/gl_replay.h +++ b/renderdoc/driver/gl/gl_replay.h @@ -295,6 +295,7 @@ private: GLenum magFilter = eGL_NEAREST; GLenum wrapS = eGL_CLAMP_TO_EDGE; GLenum wrapT = eGL_CLAMP_TO_EDGE; + GLenum compareMode = eGL_NONE; }; // sets the desired parameters, and returns the previous ones ready to restore