summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_cache.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_shader_cache.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 'src/video_core/renderer_opengl/gl_shader_cache.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index bef141f63..4cb89db8c 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -22,6 +22,7 @@
#include "video_core/renderer_opengl/gl_shader_cache.h"
#include "video_core/renderer_opengl/gl_shader_decompiler.h"
#include "video_core/renderer_opengl/gl_shader_disk_cache.h"
+#include "video_core/renderer_opengl/gl_state_tracker.h"
#include "video_core/renderer_opengl/utils.h"
#include "video_core/shader/shader_ir.h"
@@ -623,6 +624,10 @@ bool ShaderCacheOpenGL::GenerateUnspecializedShaders(
}
Shader ShaderCacheOpenGL::GetStageProgram(Maxwell::ShaderProgram program) {
+ if (!system.GPU().Maxwell3D().dirty.flags[Dirty::Shaders]) {
+ return last_shaders[static_cast<std::size_t>(program)];
+ }
+
auto& memory_manager{system.GPU().MemoryManager()};
const GPUVAddr address{GetShaderAddress(system, program)};