Browse Source

video_core/vulkan: Fixed loading of Vulkan driver pipeline cache
The header size of the Vulkan driver pipeline cache files was incorrectly in PipelineCache::LoadVulkanPipelineCache, for which the pipeline cache wasn't read correctly and got invalidated on each load.

Wollnashorn 3 years ago
parent
commit
457826a83b
1 changed files with 2 additions and 1 deletions
  1. 2 1
      src/video_core/renderer_vulkan/vk_pipeline_cache.cpp

+ 2 - 1
src/video_core/renderer_vulkan/vk_pipeline_cache.cpp

@@ -793,7 +793,8 @@ vk::PipelineCache PipelineCache::LoadVulkanPipelineCache(const std::filesystem::
             return create_pipeline_cache(0, nullptr);
         }
 
-        const size_t cache_size = static_cast<size_t>(end) - magic_number.size();
+        static constexpr size_t header_size = magic_number.size() + sizeof(cache_version);
+        const size_t cache_size = static_cast<size_t>(end) - header_size;
         std::vector<char> cache_data(cache_size);
         file.read(cache_data.data(), cache_size);