diff options
| author | bunnei <bunneidev@gmail.com> | 2020-08-21 23:56:55 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-21 23:56:55 -0400 | 
| commit | baff9ffcac2983dd10ebe6aafcc9461286eb36b8 (patch) | |
| tree | 8e7aff041f5977fdd7d4eb3706898dbe08be2cd2 /src/video_core | |
| parent | 66ac7cf730f72f07b024c61b885a7043f68818dd (diff) | |
| parent | c8135b3c1864726d855beacd97bc2b099d2ceed0 (diff) | |
Merge pull request #4521 from lioncash/optionalcache
gl_shader_disk_cache: Make use of std::nullopt where applicable
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_disk_cache.cpp | 23 | 
1 files changed, 12 insertions, 11 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 52fbab3c1..40c0877c1 100644 --- a/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp +++ b/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp @@ -214,20 +214,20 @@ std::optional<std::vector<ShaderDiskCacheEntry>> ShaderDiskCacheOpenGL::LoadTran      // Skip games without title id      const bool has_title_id = system.CurrentProcess()->GetTitleID() != 0;      if (!Settings::values.use_disk_shader_cache.GetValue() || !has_title_id) { -        return {}; +        return std::nullopt;      }      Common::FS::IOFile file(GetTransferablePath(), "rb");      if (!file.IsOpen()) {          LOG_INFO(Render_OpenGL, "No transferable shader cache found");          is_usable = true; -        return {}; +        return std::nullopt;      }      u32 version{};      if (file.ReadBytes(&version, sizeof(version)) != sizeof(version)) {          LOG_ERROR(Render_OpenGL, "Failed to get transferable cache version, skipping it"); -        return {}; +        return std::nullopt;      }      if (version < NativeVersion) { @@ -235,12 +235,12 @@ std::optional<std::vector<ShaderDiskCacheEntry>> ShaderDiskCacheOpenGL::LoadTran          file.Close();          InvalidateTransferable();          is_usable = true; -        return {}; +        return std::nullopt;      }      if (version > NativeVersion) {          LOG_WARNING(Render_OpenGL, "Transferable shader cache was generated with a newer version "                                     "of the emulator, skipping"); -        return {}; +        return std::nullopt;      }      // Version is valid, load the shaders @@ -249,7 +249,7 @@ std::optional<std::vector<ShaderDiskCacheEntry>> ShaderDiskCacheOpenGL::LoadTran          ShaderDiskCacheEntry& entry = entries.emplace_back();          if (!entry.Load(file)) {              LOG_ERROR(Render_OpenGL, "Failed to load transferable raw entry, skipping"); -            return {}; +            return std::nullopt;          }      } @@ -290,12 +290,12 @@ std::optional<std::vector<ShaderDiskCachePrecompiled>> ShaderDiskCacheOpenGL::Lo      ShaderCacheVersionHash file_hash{};      if (!LoadArrayFromPrecompiled(file_hash.data(), file_hash.size())) {          precompiled_cache_virtual_file_offset = 0; -        return {}; +        return std::nullopt;      }      if (GetShaderCacheVersionHash() != file_hash) {          LOG_INFO(Render_OpenGL, "Precompiled cache is from another version of the emulator");          precompiled_cache_virtual_file_offset = 0; -        return {}; +        return std::nullopt;      }      std::vector<ShaderDiskCachePrecompiled> entries; @@ -305,15 +305,16 @@ std::optional<std::vector<ShaderDiskCachePrecompiled>> ShaderDiskCacheOpenGL::Lo          if (!LoadObjectFromPrecompiled(entry.unique_identifier) ||              !LoadObjectFromPrecompiled(entry.binary_format) ||              !LoadObjectFromPrecompiled(binary_size)) { -            return {}; +            return std::nullopt;          }          entry.binary.resize(binary_size);          if (!LoadArrayFromPrecompiled(entry.binary.data(), entry.binary.size())) { -            return {}; +            return std::nullopt;          }      } -    return entries; + +    return std::move(entries);  }  void ShaderDiskCacheOpenGL::InvalidateTransferable() {  | 
