summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_disk_cache.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-04-27 07:37:15 +0200
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-06-21 02:38:33 +0200
commit1bf4154e7d0589dab6922321bf39cf80f22c07d0 (patch)
treefd7a2fa46e99d3126f66bdd1a8b6aa232a65d800 /src/video_core/renderer_opengl/gl_shader_disk_cache.h
parentshader: Implement bindless images (diff)
downloadyuzu-1bf4154e7d0589dab6922321bf39cf80f22c07d0.tar
yuzu-1bf4154e7d0589dab6922321bf39cf80f22c07d0.tar.gz
yuzu-1bf4154e7d0589dab6922321bf39cf80f22c07d0.tar.bz2
yuzu-1bf4154e7d0589dab6922321bf39cf80f22c07d0.tar.lz
yuzu-1bf4154e7d0589dab6922321bf39cf80f22c07d0.tar.xz
yuzu-1bf4154e7d0589dab6922321bf39cf80f22c07d0.tar.zst
yuzu-1bf4154e7d0589dab6922321bf39cf80f22c07d0.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_shader_disk_cache.h')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_disk_cache.h24
1 files changed, 9 insertions, 15 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_disk_cache.h b/src/video_core/renderer_opengl/gl_shader_disk_cache.h
index 7c9f0cc75..aa12ffc71 100644
--- a/src/video_core/renderer_opengl/gl_shader_disk_cache.h
+++ b/src/video_core/renderer_opengl/gl_shader_disk_cache.h
@@ -45,9 +45,11 @@ struct BaseBindings {
u32 cbuf{};
u32 gmem{};
u32 sampler{};
+ u32 image{};
bool operator==(const BaseBindings& rhs) const {
- return std::tie(cbuf, gmem, sampler) == std::tie(rhs.cbuf, rhs.gmem, rhs.sampler);
+ return std::tie(cbuf, gmem, sampler, image) ==
+ std::tie(rhs.cbuf, rhs.gmem, rhs.sampler, rhs.image);
}
bool operator!=(const BaseBindings& rhs) const {
@@ -91,8 +93,11 @@ namespace std {
template <>
struct hash<OpenGL::BaseBindings> {
- std::size_t operator()(const OpenGL::BaseBindings& bindings) const noexcept {
- return bindings.cbuf | bindings.gmem << 8 | bindings.sampler << 16;
+ std::size_t operator()(const OpenGL::BaseBindings& bindings) const {
+ return static_cast<std::size_t>(bindings.cbuf) ^
+ (static_cast<std::size_t>(bindings.gmem) << 8) ^
+ (static_cast<std::size_t>(bindings.sampler) << 16) ^
+ (static_cast<std::size_t>(bindings.image) << 24);
}
};
@@ -300,19 +305,8 @@ private:
return LoadArrayFromPrecompiled(&object, 1);
}
- bool LoadObjectFromPrecompiled(bool& object) {
- u8 value;
- const bool read_ok = LoadArrayFromPrecompiled(&value, 1);
- if (!read_ok) {
- return false;
- }
-
- object = value != 0;
- return true;
- }
-
- // Core system
Core::System& system;
+
// Stores whole precompiled cache which will be read from or saved to the precompiled chache
// file
FileSys::VectorVfsFile precompiled_cache_virtual_file;