summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2022-04-04 10:04:10 -0400
committerLiam <byteslice@airmail.cc>2022-04-04 10:19:40 -0400
commitcb913e5c02ab1ae004062308ef7ecf97419ad19a (patch)
tree74819d25401d7d6b22c5e8c46b340a6d03dd63ef
parente9cf2d43f1fb62dd06f9e8ef2e51cb43147ad808 (diff)
OpenGL: flip front faces if Z scale is inverted
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index e6f9ece8b..216139173 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -561,8 +561,9 @@ void RasterizerOpenGL::SyncViewport() {
flags[Dirty::FrontFace] = false;
GLenum mode = MaxwellToGL::FrontFace(regs.front_face);
- if (regs.screen_y_control.triangle_rast_flip != 0 &&
- regs.viewport_transform[0].scale_y < 0.0f) {
+ if ((regs.screen_y_control.triangle_rast_flip != 0 &&
+ regs.viewport_transform[0].scale_y < 0.0f) ||
+ regs.viewport_transform[0].scale_z < 0.0f) {
switch (mode) {
case GL_CW:
mode = GL_CCW;