diff options
| author | 2019-01-14 02:14:27 -0300 | |
|---|---|---|
| committer | 2019-02-06 22:20:57 -0300 | |
| commit | e78da8dc1f8b6fbb6e9c1aeff9e54fe7f879d3b1 (patch) | |
| tree | 6f58b2cc9761c54cfcaf2d80918faf7525b8a2ca /src/video_core | |
| parent | gl_shader_disk_cache: Invalidate shader cache changes with CMake hash (diff) | |
| download | yuzu-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.cpp | 21 |
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 | ||
| 79 | bool ShaderDiskCacheOpenGL::LoadTransferable(std::vector<ShaderDiskCacheRaw>& raws, | 80 | bool 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 | ||
| 131 | std::vector<ShaderDiskCachePrecompiledEntry> ShaderDiskCacheOpenGL::LoadPrecompiled() { | 136 | std::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 | ||
| 175 | void ShaderDiskCacheOpenGL::SaveRaw(const ShaderDiskCacheRaw& entry) { | 184 | void 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 | ||
| 192 | void ShaderDiskCacheOpenGL::SaveUsage(const ShaderDiskCacheUsage& usage) { | 205 | void 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 | ||
| 210 | void ShaderDiskCacheOpenGL::SavePrecompiled(const ShaderDiskCacheUsage& usage, GLuint program) { | 227 | void 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; |