summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2020-03-30 17:03:07 -0400
committerGravatar GitHub2020-03-30 17:03:07 -0400
commit4c72190a062e8df53f4602986ca1139deb9669a7 (patch)
tree1920ef4fb161d5e306d12fe6aa962d965d2a1649
parentMerge pull request #3568 from bunnei/time-calcspan (diff)
parentgl_rasterizer: Update stencil test regardless of it being disabled (diff)
downloadyuzu-4c72190a062e8df53f4602986ca1139deb9669a7.tar.gz
yuzu-4c72190a062e8df53f4602986ca1139deb9669a7.tar.xz
yuzu-4c72190a062e8df53f4602986ca1139deb9669a7.zip
Merge pull request #3560 from ReinUsesLisp/fix-stencil
gl_rasterizer: Synchronize stencil testing on clears
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 826eee7df..31add708f 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -444,6 +444,7 @@ void RasterizerOpenGL::Clear() {
444 } 444 }
445 445
446 SyncRasterizeEnable(); 446 SyncRasterizeEnable();
447 SyncStencilTestState();
447 448
448 if (regs.clear_flags.scissor) { 449 if (regs.clear_flags.scissor) {
449 SyncScissorTest(); 450 SyncScissorTest();
@@ -1052,12 +1053,8 @@ void RasterizerOpenGL::SyncStencilTestState() {
1052 flags[Dirty::StencilTest] = false; 1053 flags[Dirty::StencilTest] = false;
1053 1054
1054 const auto& regs = gpu.regs; 1055 const auto& regs = gpu.regs;
1055 if (!regs.stencil_enable) { 1056 oglEnable(GL_STENCIL_TEST, regs.stencil_enable);
1056 glDisable(GL_STENCIL_TEST);
1057 return;
1058 }
1059 1057
1060 glEnable(GL_STENCIL_TEST);
1061 glStencilFuncSeparate(GL_FRONT, MaxwellToGL::ComparisonOp(regs.stencil_front_func_func), 1058 glStencilFuncSeparate(GL_FRONT, MaxwellToGL::ComparisonOp(regs.stencil_front_func_func),
1062 regs.stencil_front_func_ref, regs.stencil_front_func_mask); 1059 regs.stencil_front_func_ref, regs.stencil_front_func_mask);
1063 glStencilOpSeparate(GL_FRONT, MaxwellToGL::StencilOp(regs.stencil_front_op_fail), 1060 glStencilOpSeparate(GL_FRONT, MaxwellToGL::StencilOp(regs.stencil_front_op_fail),