diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 5d493a2b2f45d0108fc6135fa3ab505c10360605..6e89fa6e3162c3975a620e12b427d75c54db48b5 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -237,6 +237,8 @@ void RasterizerOpenGL::SetupShaders() {
         }
     }
 
+    state.Apply();
+
     shader_program_manager->UseTrivialGeometryShader();
 }
 
@@ -666,8 +668,6 @@ u32 RasterizerOpenGL::SetupConstBuffers(Maxwell::ShaderStage stage, Shader& shad
                               current_bindpoint + bindpoint);
     }
 
-    state.Apply();
-
     return current_bindpoint + static_cast<u32>(entries.size());
 }
 
@@ -714,8 +714,6 @@ u32 RasterizerOpenGL::SetupTextures(Maxwell::ShaderStage stage, Shader& shader,
         }
     }
 
-    state.Apply();
-
     return current_unit + static_cast<u32>(entries.size());
 }