diff options
Diffstat (limited to 'src/video_core/renderer_opengl/gl_state_tracker.cpp')
-rw-r--r-- | src/video_core/renderer_opengl/gl_state_tracker.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_state_tracker.cpp b/src/video_core/renderer_opengl/gl_state_tracker.cpp index 7150b9247..bc5942a7f 100644 --- a/src/video_core/renderer_opengl/gl_state_tracker.cpp +++ b/src/video_core/renderer_opengl/gl_state_tracker.cpp @@ -124,6 +124,15 @@ void SetupDirtyScissors(Tables& tables) { FillBlock(tables[1], OFF(scissor_test), NUM(scissor_test), Scissors); } +void SetupDirtyShaders(Tables& tables) { + FillBlock(tables[0], OFF(shader_config[0]), NUM(shader_config[0]) * Regs::MaxShaderProgram, + Shaders); +} + +void SetupDirtyMisc(Tables& tables) { + tables[0][OFF(clip_distance_enabled)] = ClipDistances; +} + } // Anonymous namespace StateTracker::StateTracker(Core::System& system) : system{system} {} @@ -137,6 +146,8 @@ void StateTracker::Initialize() { SetupDirtyScissors(tables); SetupDirtyVertexArrays(tables); SetupDirtyVertexFormat(tables); + SetupDirtyShaders(tables); + SetupDirtyMisc(tables); auto& store = dirty.on_write_stores; store[RenderTargets] = true; |