|
@@ -539,13 +539,11 @@ void PipelineCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading
|
|
|
ShaderPools pools;
|
|
ShaderPools pools;
|
|
|
auto pipeline{CreateComputePipeline(pools, key, envs.front(), false)};
|
|
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 {
|
|
} else {
|
|
@@ -560,13 +558,11 @@ void PipelineCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading
|
|
|
}
|
|
}
|
|
|
auto pipeline{CreateGraphicsPipeline(pools, key, MakeSpan(env_ptrs), false)};
|
|
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);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -635,7 +631,8 @@ PipelineCache::PipelineCache(RasterizerVulkan& rasterizer_, Tegra::GPU& gpu_,
|
|
|
float_control.shaderSignedZeroInfNanPreserveFloat64 != VK_FALSE,
|
|
float_control.shaderSignedZeroInfNanPreserveFloat64 != VK_FALSE,
|
|
|
.support_explicit_workgroup_layout = device.IsKhrWorkgroupMemoryExplicitLayoutSupported(),
|
|
.support_explicit_workgroup_layout = device.IsKhrWorkgroupMemoryExplicitLayoutSupported(),
|
|
|
.support_vote = true,
|
|
.support_vote = true,
|
|
|
- .support_viewport_index_layer_non_geometry = device.IsExtShaderViewportIndexLayerSupported(),
|
|
|
|
|
|
|
+ .support_viewport_index_layer_non_geometry =
|
|
|
|
|
+ device.IsExtShaderViewportIndexLayerSupported(),
|
|
|
.warp_size_potentially_larger_than_guest = device.IsWarpSizePotentiallyBiggerThanGuest(),
|
|
.warp_size_potentially_larger_than_guest = device.IsWarpSizePotentiallyBiggerThanGuest(),
|
|
|
.has_broken_spirv_clamp = driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR,
|
|
.has_broken_spirv_clamp = driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR,
|
|
|
.generic_input_types{},
|
|
.generic_input_types{},
|