diff options
| author | 2017-07-22 23:02:59 -0500 | |
|---|---|---|
| committer | 2017-07-22 23:02:59 -0500 | |
| commit | e646bd902d85e4da3c160dd19014c780b2335f36 (patch) | |
| tree | cca8511cf28e3dd48957a7f9596e3851333b60dc /src | |
| parent | Merge pull request #2799 from yuriks/virtual-cached-range-flush (diff) | |
| parent | gl_rasterizer_cache: depth write is disabled if allow_depth_stencil_write is ... (diff) | |
| download | yuzu-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.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( | |||
| 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; " |