summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_manager.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2018-10-07 04:17:31 +0200
committerReinUsesLisp <reinuseslisp@airmail.cc>2018-10-07 22:36:00 +0200
commitee4d53885099fee4290626b8940fcc3abbbb5e12 (patch)
tree07ed08b2ef168a1b13f6eca3f176f4ec651a9d82 /src/video_core/renderer_opengl/gl_shader_manager.cpp
parentvideo_core: Allow LabelGLObject to use extra info on any object (diff)
downloadyuzu-ee4d53885099fee4290626b8940fcc3abbbb5e12.tar
yuzu-ee4d53885099fee4290626b8940fcc3abbbb5e12.tar.gz
yuzu-ee4d53885099fee4290626b8940fcc3abbbb5e12.tar.bz2
yuzu-ee4d53885099fee4290626b8940fcc3abbbb5e12.tar.lz
yuzu-ee4d53885099fee4290626b8940fcc3abbbb5e12.tar.xz
yuzu-ee4d53885099fee4290626b8940fcc3abbbb5e12.tar.zst
yuzu-ee4d53885099fee4290626b8940fcc3abbbb5e12.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_manager.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_manager.cpp b/src/video_core/renderer_opengl/gl_shader_manager.cpp
index 022d32a86..010857ec6 100644
--- a/src/video_core/renderer_opengl/gl_shader_manager.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_manager.cpp
@@ -18,6 +18,14 @@ void MaxwellUniformData::SetFromRegs(const Maxwell3D::State::ShaderStageInfo& sh
// We only assign the instance to the first component of the vector, the rest is just padding.
instance_id[0] = state.current_instance;
+
+ // Assign in which stage the position has to be flipped
+ // (the last stage before the fragment shader).
+ if (gpu.regs.shader_config[static_cast<u32>(Maxwell3D::Regs::ShaderProgram::Geometry)].enable) {
+ flip_stage[0] = static_cast<u32>(Maxwell3D::Regs::ShaderProgram::Geometry);
+ } else {
+ flip_stage[0] = static_cast<u32>(Maxwell3D::Regs::ShaderProgram::VertexB);
+ }
}
} // namespace OpenGL::GLShader