From c1f7532dc9ca99f1db30c5ae6793ec546a042c94 Mon Sep 17 00:00:00 2001 From: Gamer64 <76565986+Gamer64ytb@users.noreply.github.com> Date: Thu, 7 Aug 2025 19:17:37 +0200 Subject: [PATCH] Try to fix deadlock --- src/video_core/renderer_vulkan/renderer_vulkan.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp index 38e117f7b5..fd20bd5c1c 100644 --- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp +++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp @@ -196,16 +196,20 @@ void RendererVulkan::Composite(std::span framebu render_window.OnFrameDisplayed(); }; - // Frame interpolation logic + // Frameskip logic if (Settings::values.frame_interpolation.GetValue()) { skip_next_frame = !skip_next_frame; - if (skip_next_frame && last_presented_frame) { - // Present the last frame again, skip rendering + // Only skip if we have a valid last frame + if (skip_next_frame && last_presented_frame != nullptr) { present_manager.Present(last_presented_frame); gpu.RendererFrameEndNotify(); rasterizer.TickFrame(); return; } + } else { + // If frameskip is off, always reset skip state + skip_next_frame = false; + last_presented_frame = nullptr; } RenderAppletCaptureLayer(framebuffers);