summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_state_tracker.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-12-29 06:03:05 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-02-28 21:56:42 +0100
commitf7ec078592468fa22ff377b996a720c8be82c2dc (patch)
tree9326105d022b9e939f036c46d028f7f7ef8f9e5e /src/video_core/renderer_opengl/gl_state_tracker.cpp
parentgl_state_tracker: Add dirty flags for buffers and divisors (diff)
downloadyuzu-f7ec078592468fa22ff377b996a720c8be82c2dc.tar
yuzu-f7ec078592468fa22ff377b996a720c8be82c2dc.tar.gz
yuzu-f7ec078592468fa22ff377b996a720c8be82c2dc.tar.bz2
yuzu-f7ec078592468fa22ff377b996a720c8be82c2dc.tar.lz
yuzu-f7ec078592468fa22ff377b996a720c8be82c2dc.tar.xz
yuzu-f7ec078592468fa22ff377b996a720c8be82c2dc.tar.zst
yuzu-f7ec078592468fa22ff377b996a720c8be82c2dc.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_opengl/gl_state_tracker.cpp11
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;