summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Sebastian Valle2017-07-22 23:02:59 -0500
committerGravatar GitHub2017-07-22 23:02:59 -0500
commite646bd902d85e4da3c160dd19014c780b2335f36 (patch)
treecca8511cf28e3dd48957a7f9596e3851333b60dc /src
parentMerge pull request #2799 from yuriks/virtual-cached-range-flush (diff)
parentgl_rasterizer_cache: depth write is disabled if allow_depth_stencil_write is ... (diff)
downloadyuzu-e646bd902d85e4da3c160dd19014c780b2335f36.tar.gz
yuzu-e646bd902d85e4da3c160dd19014c780b2335f36.tar.xz
yuzu-e646bd902d85e4da3c160dd19014c780b2335f36.zip
Merge pull request #2834 from wwylele/depth-enable-fix
gl_rasterizer_cache: fix using_depth_fb
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.cpp9
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(
542 config.GetDepthBufferPhysicalAddress(), 542 config.GetDepthBufferPhysicalAddress(),
543 fb_area * Pica::FramebufferRegs::BytesPerDepthPixel(config.depth_format)); 543 fb_area * Pica::FramebufferRegs::BytesPerDepthPixel(config.depth_format));
544 bool using_color_fb = config.GetColorBufferPhysicalAddress() != 0; 544 bool using_color_fb = config.GetColorBufferPhysicalAddress() != 0;
545 bool using_depth_fb = 545 bool depth_write_enable = regs.framebuffer.output_merger.depth_write_enable &&
546 config.GetDepthBufferPhysicalAddress() != 0 && 546 regs.framebuffer.framebuffer.allow_depth_stencil_write;
547 (regs.framebuffer.output_merger.depth_test_enable || 547 bool using_depth_fb = config.GetDepthBufferPhysicalAddress() != 0 &&
548 regs.framebuffer.output_merger.depth_write_enable || !framebuffers_overlap); 548 (regs.framebuffer.output_merger.depth_test_enable || depth_write_enable ||
549 !framebuffers_overlap);
549 550
550 if (framebuffers_overlap && using_color_fb && using_depth_fb) { 551 if (framebuffers_overlap && using_color_fb && using_depth_fb) {
551 LOG_CRITICAL(Render_OpenGL, "Color and depth framebuffer memory regions overlap; " 552 LOG_CRITICAL(Render_OpenGL, "Color and depth framebuffer memory regions overlap; "