diff --git a/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramBuilder.cpp b/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramBuilder.cpp index b9779fa3..22e7c5f3 100644 --- a/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramBuilder.cpp +++ b/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramBuilder.cpp @@ -1245,7 +1245,8 @@ public: ShaderWriteDepth(const opengl::GLInfo & _glinfo) { if (!_glinfo.isGLES2) { - if (config.generalEmulation.enableFragmentDepthWrite == 0) { + if (config.generalEmulation.enableFragmentDepthWrite == 0 && + config.frameBufferEmulation.N64DepthCompare == 0) { // Dummy write depth m_part = "void writeDepth() \n" diff --git a/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactory.cpp b/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactory.cpp index fca302a7..29256245 100644 --- a/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactory.cpp +++ b/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactory.cpp @@ -823,7 +823,8 @@ void CombinerProgramUniformFactory::buildUniforms(GLuint _program, if (config.frameBufferEmulation.N64DepthCompare != 0) _uniforms.emplace_back(new UDepthInfo(_program)); - if (config.generalEmulation.enableFragmentDepthWrite != 0) + if (config.generalEmulation.enableFragmentDepthWrite != 0 || + config.frameBufferEmulation.N64DepthCompare != 0) _uniforms.emplace_back(new URenderTarget(_program)); _uniforms.emplace_back(new UScreenCoordsScale(_program));