summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-04-03 05:19:13 -0300
committerGravatar ameerj2021-07-22 21:51:26 -0400
commit6ff2e9ba097f3619c21d2e547570e1fbaae8d6ee (patch)
tree985d61c5679d7c03d80d808e7d72cfacfdfd4e8b /src
parentshader: Rework global memory tracking to use breadth-first search (diff)
downloadyuzu-6ff2e9ba097f3619c21d2e547570e1fbaae8d6ee.tar.gz
yuzu-6ff2e9ba097f3619c21d2e547570e1fbaae8d6ee.tar.xz
yuzu-6ff2e9ba097f3619c21d2e547570e1fbaae8d6ee.zip
vk_pipeline_cache: Remove unnecesary scope in pipeline cache locking
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index 3111165fb..f88ab67ae 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -539,13 +539,11 @@ void PipelineCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading
539 ShaderPools pools; 539 ShaderPools pools;
540 auto pipeline{CreateComputePipeline(pools, key, envs.front(), false)}; 540 auto pipeline{CreateComputePipeline(pools, key, envs.front(), false)};
541 541
542 { 542 std::lock_guard lock{state.mutex};
543 std::lock_guard lock{state.mutex}; 543 compute_cache.emplace(key, std::move(pipeline));
544 compute_cache.emplace(key, std::move(pipeline)); 544 ++state.built;
545 ++state.built; 545 if (state.has_loaded) {
546 if (state.has_loaded) { 546 callback(VideoCore::LoadCallbackStage::Build, state.built, state.total);
547 callback(VideoCore::LoadCallbackStage::Build, state.built, state.total);
548 }
549 } 547 }
550 }); 548 });
551 } else { 549 } else {
@@ -560,13 +558,11 @@ void PipelineCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading
560 } 558 }
561 auto pipeline{CreateGraphicsPipeline(pools, key, MakeSpan(env_ptrs), false)}; 559 auto pipeline{CreateGraphicsPipeline(pools, key, MakeSpan(env_ptrs), false)};
562 560
563 { 561 std::lock_guard lock{state.mutex};
564 std::lock_guard lock{state.mutex}; 562 graphics_cache.emplace(key, std::move(pipeline));
565 graphics_cache.emplace(key, std::move(pipeline)); 563 ++state.built;
566 ++state.built; 564 if (state.has_loaded) {
567 if (state.has_loaded) { 565 callback(VideoCore::LoadCallbackStage::Build, state.built, state.total);
568 callback(VideoCore::LoadCallbackStage::Build, state.built, state.total);
569 }
570 } 566 }
571 }); 567 });
572 } 568 }
@@ -635,7 +631,8 @@ PipelineCache::PipelineCache(RasterizerVulkan& rasterizer_, Tegra::GPU& gpu_,
635 float_control.shaderSignedZeroInfNanPreserveFloat64 != VK_FALSE, 631 float_control.shaderSignedZeroInfNanPreserveFloat64 != VK_FALSE,
636 .support_explicit_workgroup_layout = device.IsKhrWorkgroupMemoryExplicitLayoutSupported(), 632 .support_explicit_workgroup_layout = device.IsKhrWorkgroupMemoryExplicitLayoutSupported(),
637 .support_vote = true, 633 .support_vote = true,
638 .support_viewport_index_layer_non_geometry = device.IsExtShaderViewportIndexLayerSupported(), 634 .support_viewport_index_layer_non_geometry =
635 device.IsExtShaderViewportIndexLayerSupported(),
639 .warp_size_potentially_larger_than_guest = device.IsWarpSizePotentiallyBiggerThanGuest(), 636 .warp_size_potentially_larger_than_guest = device.IsWarpSizePotentiallyBiggerThanGuest(),
640 .has_broken_spirv_clamp = driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR, 637 .has_broken_spirv_clamp = driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR,
641 .generic_input_types{}, 638 .generic_input_types{},