summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/renderer_vulkan.cpp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2023-10-17 16:00:25 +0200
committerLiam <byteslice@airmail.cc>2023-10-17 16:00:25 +0200
commitd9dde7e6f3a90f58d642808900ddd558da21f762 (patch)
treeee63e7760efb66b738ef4981751d6fd9bbbbe9a8 /src/video_core/renderer_vulkan/renderer_vulkan.cpp
parentMerge pull request #11788 from Squall-Leonhart/IFREMOVED (diff)
downloadyuzu-d9dde7e6f3a90f58d642808900ddd558da21f762.tar
yuzu-d9dde7e6f3a90f58d642808900ddd558da21f762.tar.gz
yuzu-d9dde7e6f3a90f58d642808900ddd558da21f762.tar.bz2
yuzu-d9dde7e6f3a90f58d642808900ddd558da21f762.tar.lz
yuzu-d9dde7e6f3a90f58d642808900ddd558da21f762.tar.xz
yuzu-d9dde7e6f3a90f58d642808900ddd558da21f762.tar.zst
yuzu-d9dde7e6f3a90f58d642808900ddd558da21f762.zip
Diffstat (limited to 'src/video_core/renderer_vulkan/renderer_vulkan.cpp')
-rw-r--r--src/video_core/renderer_vulkan/renderer_vulkan.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
index c4c30d807..7e7a80740 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
@@ -132,12 +132,16 @@ void RendererVulkan::SwapBuffers(const Tegra::FramebufferConfig* framebuffer) {
const bool use_accelerated =
rasterizer.AccelerateDisplay(*framebuffer, framebuffer_addr, framebuffer->stride);
const bool is_srgb = use_accelerated && screen_info.is_srgb;
- RenderScreenshot(*framebuffer, use_accelerated);
- Frame* frame = present_manager.GetRenderFrame();
- blit_screen.DrawToSwapchain(frame, *framebuffer, use_accelerated, is_srgb);
- scheduler.Flush(*frame->render_ready);
- present_manager.Present(frame);
+ {
+ std::scoped_lock lock{rasterizer.LockCaches()};
+ RenderScreenshot(*framebuffer, use_accelerated);
+
+ Frame* frame = present_manager.GetRenderFrame();
+ blit_screen.DrawToSwapchain(frame, *framebuffer, use_accelerated, is_srgb);
+ scheduler.Flush(*frame->render_ready);
+ present_manager.Present(frame);
+ }
gpu.RendererFrameEndNotify();
rasterizer.TickFrame();