From 9d50b6d0f785bcd06de24cea051a1188e70aad72 Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Sun, 31 Jul 2022 13:59:25 +0100 Subject: [PATCH] Avoid locking presentation mutex in GetTransformHint This caused slowdown in Pokemon as it was being called every frame --- app/src/main/cpp/skyline/gpu/presentation_engine.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/cpp/skyline/gpu/presentation_engine.cpp b/app/src/main/cpp/skyline/gpu/presentation_engine.cpp index 1337e6e5..13750485 100644 --- a/app/src/main/cpp/skyline/gpu/presentation_engine.cpp +++ b/app/src/main/cpp/skyline/gpu/presentation_engine.cpp @@ -401,7 +401,11 @@ namespace skyline::gpu { } NativeWindowTransform PresentationEngine::GetTransformHint() { - std::unique_lock lock{mutex}; + if (!vkSurface.has_value()) { + std::unique_lock lock{mutex}; + surfaceCondition.wait(lock, [this]() { return vkSurface.has_value(); }); + } + return GetAndroidTransform(vkSurfaceCapabilities.currentTransform); } }