diff options
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index 8b717e43d..f37894e7a 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp @@ -542,10 +542,11 @@ RasterizerCacheOpenGL::GetFramebufferSurfaces(              config.GetDepthBufferPhysicalAddress(),              fb_area * Pica::FramebufferRegs::BytesPerDepthPixel(config.depth_format));      bool using_color_fb = config.GetColorBufferPhysicalAddress() != 0; -    bool using_depth_fb = -        config.GetDepthBufferPhysicalAddress() != 0 && -        (regs.framebuffer.output_merger.depth_test_enable || -         regs.framebuffer.output_merger.depth_write_enable || !framebuffers_overlap); +    bool depth_write_enable = regs.framebuffer.output_merger.depth_write_enable && +                              regs.framebuffer.framebuffer.allow_depth_stencil_write; +    bool using_depth_fb = config.GetDepthBufferPhysicalAddress() != 0 && +                          (regs.framebuffer.output_merger.depth_test_enable || depth_write_enable || +                           !framebuffers_overlap);      if (framebuffers_overlap && using_color_fb && using_depth_fb) {          LOG_CRITICAL(Render_OpenGL, "Color and depth framebuffer memory regions overlap; " | 
