Browse Source

Try to fix deadlock

pull/212/head
Gamer64 7 months ago
parent
commit
c1f7532dc9
  1. 10
      src/video_core/renderer_vulkan/renderer_vulkan.cpp

10
src/video_core/renderer_vulkan/renderer_vulkan.cpp

@ -196,16 +196,20 @@ void RendererVulkan::Composite(std::span<const Tegra::FramebufferConfig> framebu
render_window.OnFrameDisplayed(); render_window.OnFrameDisplayed();
}; };
// Frame interpolation logic
// Frameskip logic
if (Settings::values.frame_interpolation.GetValue()) { if (Settings::values.frame_interpolation.GetValue()) {
skip_next_frame = !skip_next_frame; 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); present_manager.Present(last_presented_frame);
gpu.RendererFrameEndNotify(); gpu.RendererFrameEndNotify();
rasterizer.TickFrame(); rasterizer.TickFrame();
return; return;
} }
} else {
// If frameskip is off, always reset skip state
skip_next_frame = false;
last_presented_frame = nullptr;
} }
RenderAppletCaptureLayer(framebuffers); RenderAppletCaptureLayer(framebuffers);

Loading…
Cancel
Save