Просмотр исходного кода

vk_pipeline_cache: Small fixes to the pipeline cache

FernandoS27 5 лет назад
Родитель
Сommit
480dc0d5e6
1 измененных файлов с 14 добавлено и 10 удалено
  1. 14 10
      src/video_core/renderer_vulkan/vk_pipeline_cache.cpp

+ 14 - 10
src/video_core/renderer_vulkan/vk_pipeline_cache.cpp

@@ -539,11 +539,13 @@ void PipelineCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading
                 ShaderPools pools;
                 auto pipeline{CreateComputePipeline(pools, key, envs.front(), false)};
 
-                std::lock_guard lock{state.mutex};
-                compute_cache.emplace(key, std::move(pipeline));
-                ++state.built;
-                if (state.has_loaded) {
-                    callback(VideoCore::LoadCallbackStage::Build, state.built, state.total);
+                {
+                    std::lock_guard lock{state.mutex};
+                    compute_cache.emplace(key, std::move(pipeline));
+                    ++state.built;
+                    if (state.has_loaded) {
+                        callback(VideoCore::LoadCallbackStage::Build, state.built, state.total);
+                    }
                 }
             });
         } else {
@@ -558,11 +560,13 @@ void PipelineCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading
                 }
                 auto pipeline{CreateGraphicsPipeline(pools, key, MakeSpan(env_ptrs), false)};
 
-                std::lock_guard lock{state.mutex};
-                graphics_cache.emplace(key, std::move(pipeline));
-                ++state.built;
-                if (state.has_loaded) {
-                    callback(VideoCore::LoadCallbackStage::Build, state.built, state.total);
+                {
+                    std::lock_guard lock{state.mutex};
+                    graphics_cache.emplace(key, std::move(pipeline));
+                    ++state.built;
+                    if (state.has_loaded) {
+                        callback(VideoCore::LoadCallbackStage::Build, state.built, state.total);
+                    }
                 }
             });
         }