summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2020-02-21 03:29:24 -0300
committerGravatar ReinUsesLisp2020-02-28 17:56:43 -0300
commitef7f6eb67de9d05522b05ac520ef3184250fcbd4 (patch)
tree55b1ac585eeb9c97b9d33d8c3d774bba491e2483 /src
parentgl_texture_cache: Remove blending disable on blits (diff)
downloadyuzu-ef7f6eb67de9d05522b05ac520ef3184250fcbd4.tar.gz
yuzu-ef7f6eb67de9d05522b05ac520ef3184250fcbd4.tar.xz
yuzu-ef7f6eb67de9d05522b05ac520ef3184250fcbd4.zip
renderer_opengl: Fix edge-case where alpha testing might cull presentation
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_opengl/gl_state_tracker.h5
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.cpp2
2 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_state_tracker.h b/src/video_core/renderer_opengl/gl_state_tracker.h
index 38b38c4a7..e08482911 100644
--- a/src/video_core/renderer_opengl/gl_state_tracker.h
+++ b/src/video_core/renderer_opengl/gl_state_tracker.h
@@ -190,6 +190,11 @@ public:
190 flags[OpenGL::Dirty::ClipControl] = true; 190 flags[OpenGL::Dirty::ClipControl] = true;
191 } 191 }
192 192
193 void NotifyAlphaTest() {
194 auto& flags = system.GPU().Maxwell3D().dirty.flags;
195 flags[OpenGL::Dirty::AlphaTest] = true;
196 }
197
193private: 198private:
194 Core::System& system; 199 Core::System& system;
195 200
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index 7b4c2b80c..a51410660 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -591,6 +591,7 @@ void RendererOpenGL::DrawScreen(const Layout::FramebufferLayout& layout) {
591 state_tracker.NotifyFramebufferSRGB(); 591 state_tracker.NotifyFramebufferSRGB();
592 state_tracker.NotifyLogicOp(); 592 state_tracker.NotifyLogicOp();
593 state_tracker.NotifyClipControl(); 593 state_tracker.NotifyClipControl();
594 state_tracker.NotifyAlphaTest();
594 595
595 program_manager.UseVertexShader(vertex_program.handle); 596 program_manager.UseVertexShader(vertex_program.handle);
596 program_manager.UseGeometryShader(0); 597 program_manager.UseGeometryShader(0);
@@ -608,6 +609,7 @@ void RendererOpenGL::DrawScreen(const Layout::FramebufferLayout& layout) {
608 glDisable(GL_STENCIL_TEST); 609 glDisable(GL_STENCIL_TEST);
609 glDisable(GL_POLYGON_OFFSET_FILL); 610 glDisable(GL_POLYGON_OFFSET_FILL);
610 glDisable(GL_RASTERIZER_DISCARD); 611 glDisable(GL_RASTERIZER_DISCARD);
612 glDisable(GL_ALPHA_TEST);
611 glDisablei(GL_BLEND, 0); 613 glDisablei(GL_BLEND, 0);
612 glDisablei(GL_SCISSOR_TEST, 0); 614 glDisablei(GL_SCISSOR_TEST, 0);
613 glCullFace(GL_BACK); 615 glCullFace(GL_BACK);