From 797d0b7b1b1862d2fa2d57b7aa66cb06abf348a2 Mon Sep 17 00:00:00 2001 From: Techjar Date: Tue, 3 Aug 2021 18:55:38 -0400 Subject: VI: Implement post-scanout XFB output This adds about a frame of latency, and since most games don't change VI registers during scanout, we can get away with outputting the XFB at the start of scanout. WWE Crush Hour is the (only currently known) exception, which has flickering problems when doing it this way. This adds a path to perform the output at the end of scanout, and gates it behind an option which defaults to using the latency-reducing pre-scanout path. --- Source/Core/VideoCommon/VideoBackendBase.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Source/Core/VideoCommon/VideoBackendBase.cpp') diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp index cadbd08024..66c638cd02 100644 --- a/Source/Core/VideoCommon/VideoBackendBase.cpp +++ b/Source/Core/VideoCommon/VideoBackendBase.cpp @@ -83,8 +83,8 @@ void VideoBackendBase::Video_ExitLoop() } // Run from the CPU thread (from VideoInterface.cpp) -void VideoBackendBase::Video_BeginField(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_height, - u64 ticks) +void VideoBackendBase::Video_OutputXFB(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_height, + u64 ticks) { if (m_initialized && g_renderer && !g_ActiveConfig.bImmediateXFB) { -- cgit v1.2.3