summaryrefslogtreecommitdiff
path: root/src/video_core
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2019-01-14 02:14:27 -0300
committerGravatar ReinUsesLisp2019-02-06 22:20:57 -0300
commite78da8dc1f8b6fbb6e9c1aeff9e54fe7f879d3b1 (patch)
tree6f58b2cc9761c54cfcaf2d80918faf7525b8a2ca /src/video_core
parentgl_shader_disk_cache: Invalidate shader cache changes with CMake hash (diff)
downloadyuzu-e78da8dc1f8b6fbb6e9c1aeff9e54fe7f879d3b1.tar.gz
yuzu-e78da8dc1f8b6fbb6e9c1aeff9e54fe7f879d3b1.tar.xz
yuzu-e78da8dc1f8b6fbb6e9c1aeff9e54fe7f879d3b1.zip
settings: Hide shader cache behind a setting
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_disk_cache.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp b/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp
index 4b0e50b90..6a23b8fe2 100644
--- a/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp
@@ -17,6 +17,7 @@
17 17
18#include "core/core.h" 18#include "core/core.h"
19#include "core/hle/kernel/process.h" 19#include "core/hle/kernel/process.h"
20#include "core/settings.h"
20 21
21#include "video_core/renderer_opengl/gl_shader_cache.h" 22#include "video_core/renderer_opengl/gl_shader_cache.h"
22#include "video_core/renderer_opengl/gl_shader_disk_cache.h" 23#include "video_core/renderer_opengl/gl_shader_disk_cache.h"
@@ -78,6 +79,10 @@ void ShaderDiskCacheRaw::Save(FileUtil::IOFile& file) const {
78 79
79bool ShaderDiskCacheOpenGL::LoadTransferable(std::vector<ShaderDiskCacheRaw>& raws, 80bool ShaderDiskCacheOpenGL::LoadTransferable(std::vector<ShaderDiskCacheRaw>& raws,
80 std::vector<ShaderDiskCacheUsage>& usages) { 81 std::vector<ShaderDiskCacheUsage>& usages) {
82 if (!Settings::values.use_disk_shader_cache) {
83 return false;
84 }
85
81 FileUtil::IOFile file(GetTransferablePath(), "rb"); 86 FileUtil::IOFile file(GetTransferablePath(), "rb");
82 if (!file.IsOpen()) { 87 if (!file.IsOpen()) {
83 LOG_INFO(Render_OpenGL, "No transferable shader cache found for game with title id={}", 88 LOG_INFO(Render_OpenGL, "No transferable shader cache found for game with title id={}",
@@ -129,6 +134,10 @@ bool ShaderDiskCacheOpenGL::LoadTransferable(std::vector<ShaderDiskCacheRaw>& ra
129} 134}
130 135
131std::vector<ShaderDiskCachePrecompiledEntry> ShaderDiskCacheOpenGL::LoadPrecompiled() { 136std::vector<ShaderDiskCachePrecompiledEntry> ShaderDiskCacheOpenGL::LoadPrecompiled() {
137 if (!Settings::values.use_disk_shader_cache) {
138 return {};
139 }
140
132 FileUtil::IOFile file(GetPrecompiledPath(), "rb"); 141 FileUtil::IOFile file(GetPrecompiledPath(), "rb");
133 if (!file.IsOpen()) { 142 if (!file.IsOpen()) {
134 LOG_INFO(Render_OpenGL, "No precompiled shader cache found for game with title id={}", 143 LOG_INFO(Render_OpenGL, "No precompiled shader cache found for game with title id={}",
@@ -173,6 +182,10 @@ void ShaderDiskCacheOpenGL::InvalidatePrecompiled() const {
173} 182}
174 183
175void ShaderDiskCacheOpenGL::SaveRaw(const ShaderDiskCacheRaw& entry) { 184void ShaderDiskCacheOpenGL::SaveRaw(const ShaderDiskCacheRaw& entry) {
185 if (!Settings::values.use_disk_shader_cache) {
186 return;
187 }
188
176 const u64 id = entry.GetUniqueIdentifier(); 189 const u64 id = entry.GetUniqueIdentifier();
177 if (transferable.find(id) != transferable.end()) { 190 if (transferable.find(id) != transferable.end()) {
178 // The shader already exists 191 // The shader already exists
@@ -190,6 +203,10 @@ void ShaderDiskCacheOpenGL::SaveRaw(const ShaderDiskCacheRaw& entry) {
190} 203}
191 204
192void ShaderDiskCacheOpenGL::SaveUsage(const ShaderDiskCacheUsage& usage) { 205void ShaderDiskCacheOpenGL::SaveUsage(const ShaderDiskCacheUsage& usage) {
206 if (!Settings::values.use_disk_shader_cache) {
207 return;
208 }
209
193 const auto it = transferable.find(usage.unique_identifier); 210 const auto it = transferable.find(usage.unique_identifier);
194 if (it == transferable.end()) { 211 if (it == transferable.end()) {
195 LOG_CRITICAL(Render_OpenGL, "Saving shader usage without storing raw previously"); 212 LOG_CRITICAL(Render_OpenGL, "Saving shader usage without storing raw previously");
@@ -208,6 +225,10 @@ void ShaderDiskCacheOpenGL::SaveUsage(const ShaderDiskCacheUsage& usage) {
208} 225}
209 226
210void ShaderDiskCacheOpenGL::SavePrecompiled(const ShaderDiskCacheUsage& usage, GLuint program) { 227void ShaderDiskCacheOpenGL::SavePrecompiled(const ShaderDiskCacheUsage& usage, GLuint program) {
228 if (!Settings::values.use_disk_shader_cache) {
229 return;
230 }
231
211 FileUtil::IOFile file = AppendPrecompiledFile(); 232 FileUtil::IOFile file = AppendPrecompiledFile();
212 if (!file.IsOpen()) { 233 if (!file.IsOpen()) {
213 return; 234 return;