From ae58e46036944ebadfed611b657911720383d60f Mon Sep 17 00:00:00 2001 From: Subv Date: Sat, 14 Apr 2018 11:42:07 -0500 Subject: GPU: Added a function to determine whether a shader stage is enabled or not. --- src/video_core/renderer_opengl/gl_rasterizer.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/video_core/renderer_opengl') diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index f75d4c658..adc684f9e 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -191,8 +191,9 @@ void RasterizerOpenGL::SetupShaders(u8* buffer_ptr, GLintptr buffer_offset, size auto& shader_config = gpu.regs.shader_config[index]; const Maxwell::ShaderProgram program{static_cast(index)}; - // VertexB program is always enabled, despite bit setting - const bool is_enabled{shader_config.enable || program == Maxwell::ShaderProgram::VertexB}; + const auto& stage = index - 1; // Stage indices are 0 - 5 + + const bool is_enabled = gpu.IsShaderStageEnabled(static_cast(stage)); // Skip stages that are not enabled if (!is_enabled) { @@ -200,7 +201,6 @@ void RasterizerOpenGL::SetupShaders(u8* buffer_ptr, GLintptr buffer_offset, size } // Upload uniform data as one UBO per stage - const auto& stage = index - 1; // Stage indices are 0 - 5 const GLintptr ubo_offset = buffer_offset + static_cast(ptr_pos); copy_buffer(uniform_buffers[stage].handle, ubo_offset, sizeof(GLShader::MaxwellUniformData)); -- cgit v1.2.3