From 9b487453a679be941ca44f3f73efb38a34db7ec5 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Thu, 6 Sep 2018 22:30:43 +0700 Subject: [PATCH] Correct URenderTarget::update() Depth buffer not cleared if SetDepthImage called after Fillrect. Fixed Ocarina of Time Link's portrait missing with N64 deph compare #1850 --- .../OpenGLContext/GLSL/glsl_CombinerProgramUniformFactory.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactory.cpp b/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactory.cpp index 2620e7fc..4e750e0d 100644 --- a/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactory.cpp +++ b/src/Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactory.cpp @@ -671,7 +671,8 @@ public: void update(bool _force) override { int renderTarget = 0; - if (gDP.colorImage.address == gDP.depthImageAddress ) { + if ((gDP.colorImage.address == gDP.depthImageAddress ) || + (gDP.fillColor.color == DepthClearColor && gDP.otherMode.cycleType == G_CYC_FILL)) { renderTarget = gDP.otherMode.depthCompare + 1; } uRenderTarget.set(renderTarget, _force);