diff options
author | Subv <subv2112@gmail.com> | 2018-07-04 17:26:46 +0200 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2018-07-04 17:26:46 +0200 |
commit | c1bebdef5e11558d27dd9aa60525b47c20598491 (patch) | |
tree | 1c5e8b100f41d3362de6e8b8f0d5db2f4aa7fd8d /src/video_core/renderer_opengl/gl_rasterizer.cpp | |
parent | Merge pull request #618 from Subv/clear_used_buffers (diff) | |
download | yuzu-c1bebdef5e11558d27dd9aa60525b47c20598491.tar yuzu-c1bebdef5e11558d27dd9aa60525b47c20598491.tar.gz yuzu-c1bebdef5e11558d27dd9aa60525b47c20598491.tar.bz2 yuzu-c1bebdef5e11558d27dd9aa60525b47c20598491.tar.lz yuzu-c1bebdef5e11558d27dd9aa60525b47c20598491.tar.xz yuzu-c1bebdef5e11558d27dd9aa60525b47c20598491.tar.zst yuzu-c1bebdef5e11558d27dd9aa60525b47c20598491.zip |
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index e516eb1ad..3c3657d9d 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -771,6 +771,16 @@ void RasterizerOpenGL::SyncCullMode() { if (state.cull.enabled) { state.cull.front_face = MaxwellToGL::FrontFace(regs.cull.front_face); state.cull.mode = MaxwellToGL::CullFace(regs.cull.cull_face); + + // If the GPU is configured to flip the rasterized triangles, then we need to flip the + // notion of front and back. Note: We flip the triangles when the value of the register is 0 + // because OpenGL already does it for us. + if (regs.screen_y_control.triangle_rast_flip == 0) { + if (state.cull.front_face == GL_CCW) + state.cull.front_face = GL_CW; + else if (state.cull.front_face == GL_CW) + state.cull.front_face = GL_CCW; + } } } |