From 3e971d40438d92520f95fe2c0f0dda6de2fb130b Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Wed, 18 Jan 2023 20:10:06 +0000 Subject: [PATCH] Wait for pipeline compilation to finish before loading the guest The excessive blocking caused by initial compilation happening async to the guest caused issues in some cases, now we have a Vulkan pipeline cache to speed it up we can wait for a full compile before launch without too many issues. --- .../skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp index c3cbb936..56f49c02 100644 --- a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp +++ b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp @@ -933,8 +933,11 @@ namespace skyline::gpu::interconnect::maxwell3d { #endif } + gpu.graphicsPipelineAssembler->WaitIdle(); Logger::Info("Loaded {} graphics pipelines in {}ms", map.size(), (util::GetTimeNs() - startTime) / constant::NsInMillisecond); + gpu.graphicsPipelineAssembler->SavePipelineCache(); + #ifdef PIPELINE_STATS for (auto &[key, list] : sharedPipelines) { sortedSharedPipelines.push_back(&list);