Disable CPU swaps, it was causing all kinds of problems.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3940 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
486c9e1a6b
commit
d7cc049921
|
@ -791,11 +791,24 @@ void Renderer::ClearScreen(const EFBRectangle& rc, bool colorEnable, bool alphaE
|
||||||
|
|
||||||
void Renderer::RenderToXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& sourceRc)
|
void Renderer::RenderToXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& sourceRc)
|
||||||
{
|
{
|
||||||
|
g_VideoInitialize.pCopiedToXFB(false);
|
||||||
|
|
||||||
|
#ifdef XXX_ENABLE_CPU_CONTROLLED_SWAPPING
|
||||||
// If we're about to write to a requested XFB, make sure the previous
|
// If we're about to write to a requested XFB, make sure the previous
|
||||||
// contents make it to the screen first.
|
// contents make it to the screen first.
|
||||||
VideoFifo_CheckSwapRequestAt(xfbAddr, fbWidth, fbHeight);
|
VideoFifo_CheckSwapRequestAt(xfbAddr, fbWidth, fbHeight);
|
||||||
|
|
||||||
s_framebufferManager.CopyToXFB(xfbAddr, fbWidth, fbHeight, sourceRc);
|
s_framebufferManager.CopyToXFB(xfbAddr, fbWidth, fbHeight, sourceRc);
|
||||||
|
#else
|
||||||
|
s_framebufferManager.CopyToXFB(xfbAddr, fbWidth, fbHeight, sourceRc);
|
||||||
|
|
||||||
|
// XXX: Without the VI, how would we know what kind of field this is? So
|
||||||
|
// just use progressive.
|
||||||
|
Renderer::Swap(xfbAddr, FIELD_PROGRESSIVE, fbWidth, fbHeight);
|
||||||
|
|
||||||
|
// TODO: Find better name for this because I don't know if it means what it says.
|
||||||
|
g_VideoInitialize.pCopiedToXFB(true);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// This function has the final picture. We adjust the aspect ratio here.
|
// This function has the final picture. We adjust the aspect ratio here.
|
||||||
|
|
|
@ -461,10 +461,12 @@ void VideoFifo_CheckSwapRequest()
|
||||||
{
|
{
|
||||||
if (Common::AtomicLoadAcquire(s_swapRequested))
|
if (Common::AtomicLoadAcquire(s_swapRequested))
|
||||||
{
|
{
|
||||||
|
#ifdef XXX_ENABLE_CPU_CONTROLLED_SWAPPING
|
||||||
Renderer::Swap(s_beginFieldArgs.xfbAddr, s_beginFieldArgs.field, s_beginFieldArgs.fbWidth, s_beginFieldArgs.fbHeight);
|
Renderer::Swap(s_beginFieldArgs.xfbAddr, s_beginFieldArgs.field, s_beginFieldArgs.fbWidth, s_beginFieldArgs.fbHeight);
|
||||||
|
|
||||||
// TODO: Find better name for this because I don't know if it means what it says.
|
// TODO: Find better name for this because I don't know if it means what it says.
|
||||||
g_VideoInitialize.pCopiedToXFB(true);
|
g_VideoInitialize.pCopiedToXFB(true);
|
||||||
|
#endif
|
||||||
|
|
||||||
Common::AtomicStoreRelease(s_swapRequested, FALSE);
|
Common::AtomicStoreRelease(s_swapRequested, FALSE);
|
||||||
}
|
}
|
||||||
|
@ -478,8 +480,6 @@ inline bool addrRangesOverlap(u32 aLower, u32 aUpper, u32 bLower, u32 bUpper)
|
||||||
// Run from the graphics thread (from Fifo.cpp)
|
// Run from the graphics thread (from Fifo.cpp)
|
||||||
void VideoFifo_CheckSwapRequestAt(u32 xfbAddr, u32 fbWidth, u32 fbHeight)
|
void VideoFifo_CheckSwapRequestAt(u32 xfbAddr, u32 fbWidth, u32 fbHeight)
|
||||||
{
|
{
|
||||||
g_VideoInitialize.pCopiedToXFB(false);
|
|
||||||
|
|
||||||
if (Common::AtomicLoadAcquire(s_swapRequested))
|
if (Common::AtomicLoadAcquire(s_swapRequested))
|
||||||
{
|
{
|
||||||
u32 aLower = xfbAddr;
|
u32 aLower = xfbAddr;
|
||||||
|
|
Loading…
Reference in New Issue