diff options
| author | 2021-04-03 05:19:13 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:26 -0400 | |
| commit | 6ff2e9ba097f3619c21d2e547570e1fbaae8d6ee (patch) | |
| tree | 985d61c5679d7c03d80d808e7d72cfacfdfd4e8b | |
| parent | shader: Rework global memory tracking to use breadth-first search (diff) | |
| download | yuzu-6ff2e9ba097f3619c21d2e547570e1fbaae8d6ee.tar.gz yuzu-6ff2e9ba097f3619c21d2e547570e1fbaae8d6ee.tar.xz yuzu-6ff2e9ba097f3619c21d2e547570e1fbaae8d6ee.zip | |
vk_pipeline_cache: Remove unnecesary scope in pipeline cache locking
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_pipeline_cache.cpp | 27 |
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{}, |