mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 06:39:46 -06:00
Fix an issue with BPMEM_LOADTLUT, thanks to revned @ issue 1831, also fix a speed issue int the FIFO loop introduced recently (ZWW was ~20% slower)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4739 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -55,7 +55,7 @@ void BPWritten(const BPCmd& bp)
|
||||
some bp cases check the changes variable, because they might not have to be updated all the time
|
||||
NOTE: it seems not all bp cases like checking changes, so calling if (bp.changes == 0 ? false : true)
|
||||
had to be ditched and the games seem to work fine with out it.
|
||||
NOTE2: Yet Another Gamecube Documentation calls them Bypass Registers but possibly completely wrong
|
||||
NOTE2: Yet Another Gamecube Documentation calls them Bypass Raster State Registers but possibly completely wrong
|
||||
NOTE3: This controls the register groups: RAS1/2, SU, TF, TEV, C/Z, PEC
|
||||
TODO: Turn into function table. The (future) DisplayList (DL) jit can then call the functions directly,
|
||||
getting rid of dynamic dispatch. Unfortunately, few games use DLs properly - most\
|
||||
@ -247,8 +247,9 @@ void BPWritten(const BPCmd& bp)
|
||||
|
||||
break;
|
||||
}
|
||||
case BPMEM_LOADTLUT0: // Load a Texture Look Up Table
|
||||
case BPMEM_LOADTLUT1:
|
||||
case BPMEM_LOADTLUT0: // This one updates bpmem.tlutXferSrc, no need to do anything here.
|
||||
break;
|
||||
case BPMEM_LOADTLUT1: // Load a Texture Look Up Table
|
||||
{
|
||||
DVSTARTSUBPROFILE("LoadBPReg:GXLoadTlut");
|
||||
|
||||
|
@ -133,8 +133,8 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize)
|
||||
while (fifoStateRun)
|
||||
{
|
||||
video_initialize.pPeekMessages();
|
||||
if (g_ActiveConfig.bEFBAccessEnable)
|
||||
VideoFifo_CheckEFBAccess();
|
||||
|
||||
VideoFifo_CheckEFBAccess();
|
||||
VideoFifo_CheckSwapRequest();
|
||||
|
||||
// check if we are able to run this buffer
|
||||
@ -197,12 +197,11 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize)
|
||||
|
||||
CommandProcessor::FifoCriticalLeave();
|
||||
|
||||
/*
|
||||
video_initialize.pPeekMessages();
|
||||
if (g_ActiveConfig.bEFBAccessEnable)
|
||||
VideoFifo_CheckEFBAccess();
|
||||
// Those two are pretty important and must be called in the FIFO Loop.
|
||||
// If we don't, s_swapRequested (OGL only) or s_efbAccessRequested won't be set to false
|
||||
// leading the CPU thread to wait in Video_BeginField or Video_AccessEFB thus slowing things down.
|
||||
VideoFifo_CheckEFBAccess();
|
||||
VideoFifo_CheckSwapRequest();
|
||||
*/
|
||||
}
|
||||
Common::AtomicStore(_fifo.CPReadIdle, 1);
|
||||
CommandProcessor::SetFifoIdleFromVideoPlugin();
|
||||
@ -211,7 +210,7 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize)
|
||||
{
|
||||
Common::YieldCPU();
|
||||
}
|
||||
}
|
||||
}
|
||||
fifo_exit_event.Set();
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Version="9,00"
|
||||
Name="VideoCommon"
|
||||
ProjectGUID="{E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA}"
|
||||
RootNamespace="VideoCommon"
|
||||
|
Reference in New Issue
Block a user