diff --git a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
index faed626baeae8bbbee0445f76501154347fc20dc..1a885f40a668992650740b7d792f1fbdf90cc5ff 100644
--- a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
@@ -6,6 +6,8 @@
 #include "common/logging/log.h"
 #include "core/hle/service/nvdrv/devices/nvdisp_disp0.h"
 #include "core/hle/service/nvdrv/devices/nvmap.h"
+#include "video_core/renderer_base.h"
+#include "video_core/video_core.h"
 
 namespace Service {
 namespace NVDRV {
@@ -22,6 +24,11 @@ void nvdisp_disp0::flip(u32 buffer_handle, u32 offset, u32 format, u32 width, u3
     LOG_WARNING(Service,
                 "Drawing from address %llx offset %08X Width %u Height %u Stride %u Format %u",
                 addr, offset, width, height, stride, format);
+
+    using PixelFormat = RendererBase::FramebufferInfo::PixelFormat;
+    const RendererBase::FramebufferInfo framebuffer_info{
+        addr, offset, width, height, stride, static_cast<PixelFormat>(format)};
+    VideoCore::g_renderer->SwapBuffers(framebuffer_info);
 }
 
 } // namespace Devices