XFB: Send image to screen at start of field.

This is much more accurate to the hardware, and saves around 16ms
of latency.
This commit is contained in:
Scott Mansell
2016-06-28 15:12:43 +12:00
parent 93a5efa347
commit 35566316ed
3 changed files with 8 additions and 18 deletions

View File

@ -48,18 +48,6 @@ void VideoBackendBase::Video_ExitLoop()
// Run from the CPU thread (from VideoInterface.cpp)
void VideoBackendBase::Video_BeginField(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight)
{
if (m_initialized && g_ActiveConfig.bUseXFB)
{
s_beginFieldArgs.xfbAddr = xfbAddr;
s_beginFieldArgs.fbWidth = fbWidth;
s_beginFieldArgs.fbStride = fbStride;
s_beginFieldArgs.fbHeight = fbHeight;
}
}
// Run from the CPU thread (from VideoInterface.cpp)
void VideoBackendBase::Video_EndField()
{
if (m_initialized && g_ActiveConfig.bUseXFB && g_renderer)
{
@ -69,10 +57,10 @@ void VideoBackendBase::Video_EndField()
e.time = 0;
e.type = AsyncRequests::Event::SWAP_EVENT;
e.swap_event.xfbAddr = s_beginFieldArgs.xfbAddr;
e.swap_event.fbWidth = s_beginFieldArgs.fbWidth;
e.swap_event.fbStride = s_beginFieldArgs.fbStride;
e.swap_event.fbHeight = s_beginFieldArgs.fbHeight;
e.swap_event.xfbAddr = xfbAddr;
e.swap_event.fbWidth = fbWidth;
e.swap_event.fbStride = fbStride;
e.swap_event.fbHeight = fbHeight;
AsyncRequests::GetInstance()->PushEvent(e, false);
}
}