diff options
author | bunnei <bunneidev@gmail.com> | 2018-07-09 23:32:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-09 23:32:35 +0200 |
commit | 51a3e93f8e0e6541210649aa9f4af86e61c0381b (patch) | |
tree | be9e27aef2a4bd25a891a8fdfff23f379f6a3712 /src | |
parent | Merge pull request #641 from bunnei/nvhost-ctrl-fix (diff) | |
parent | gl_rasterizer: Flip triangles when regs.viewport_transform[0].scale_y is negative. (diff) | |
download | yuzu-51a3e93f8e0e6541210649aa9f4af86e61c0381b.tar yuzu-51a3e93f8e0e6541210649aa9f4af86e61c0381b.tar.gz yuzu-51a3e93f8e0e6541210649aa9f4af86e61c0381b.tar.bz2 yuzu-51a3e93f8e0e6541210649aa9f4af86e61c0381b.tar.lz yuzu-51a3e93f8e0e6541210649aa9f4af86e61c0381b.tar.xz yuzu-51a3e93f8e0e6541210649aa9f4af86e61c0381b.tar.zst yuzu-51a3e93f8e0e6541210649aa9f4af86e61c0381b.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index bacb389e1..ea138d402 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -775,10 +775,13 @@ void RasterizerOpenGL::SyncCullMode() { state.cull.front_face = MaxwellToGL::FrontFace(regs.cull.front_face); state.cull.mode = MaxwellToGL::CullFace(regs.cull.cull_face); + const bool flip_triangles{regs.screen_y_control.triangle_rast_flip == 0 || + regs.viewport_transform[0].scale_y < 0.0f}; + // 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 (flip_triangles) { if (state.cull.front_face == GL_CCW) state.cull.front_face = GL_CW; else if (state.cull.front_face == GL_CW) |