videosoftware: Added hack to bypass xfb just so fifoplayer works.
Fifoplayer depends on the old behaviour of videosoftware (and the other hardware backends in non virtual/real xfb modes) where the framebuffer gets rendered directly to the screen. Really fifoplayer should call BeginFrame/EndFrame when it finished rendering a frame, but adding this hack back in is simpler.
This commit is contained in:
parent
0942bdae1c
commit
17231418ef
|
@ -45,6 +45,10 @@ namespace EfbCopy
|
||||||
EfbInterface::BypassXFB(colorTexture, fbWidth, fbHeight, sourceRc, Gamma);
|
EfbInterface::BypassXFB(colorTexture, fbWidth, fbHeight, sourceRc, Gamma);
|
||||||
|
|
||||||
SWRenderer::swapColorTexture(); // Tell SWRenderer we are now finished with it.
|
SWRenderer::swapColorTexture(); // Tell SWRenderer we are now finished with it.
|
||||||
|
|
||||||
|
// And since fifo player is broken and never calls BeginFrame/EndFrame
|
||||||
|
// We will do this swap now.
|
||||||
|
SWRenderer::Swap(fbWidth, fbHeight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -231,11 +231,13 @@ void VideoSoftware::Video_EndField()
|
||||||
// messy when the Hardware Rasterizer is enabled.
|
// messy when the Hardware Rasterizer is enabled.
|
||||||
// And Neobrain loves his Hardware Rasterizer
|
// And Neobrain loves his Hardware Rasterizer
|
||||||
|
|
||||||
// If we are runing dual core, Signal the GPU thread about the new colour texture.
|
if (!g_SWVideoConfig.bBypassXFB) { // BypassXFB has already done a swap, so skip this.
|
||||||
if (SConfig::GetInstance().m_LocalCoreStartupParameter.bCPUThread)
|
// If we are runing dual core, Signal the GPU thread about the new colour texture.
|
||||||
Common::AtomicStoreRelease(s_swapRequested, true);
|
if (SConfig::GetInstance().m_LocalCoreStartupParameter.bCPUThread)
|
||||||
else
|
Common::AtomicStoreRelease(s_swapRequested, true);
|
||||||
SWRenderer::Swap(s_beginFieldArgs.fbWidth, s_beginFieldArgs.fbHeight);
|
else
|
||||||
|
SWRenderer::Swap(s_beginFieldArgs.fbWidth, s_beginFieldArgs.fbHeight);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 VideoSoftware::Video_AccessEFB(EFBAccessType type, u32 x, u32 y, u32 InputData)
|
u32 VideoSoftware::Video_AccessEFB(EFBAccessType type, u32 x, u32 y, u32 InputData)
|
||||||
|
|
Loading…
Reference in New Issue