Skip to content

Commit

Permalink
Rename SyncGPUAtIdleOnly -> DeterministicGPUSync.
Browse files Browse the repository at this point in the history
The idea was that it got feedback from the GPU thread only during Idle
and on special occasions rather than constantly, but the special
occasions belied the name, and it was too similar to SyncGPU, which
does something entirely orthogonal (and is not yet compatible).  This
name is more descriptive.
  • Loading branch information
comex committed Sep 18, 2013
1 parent a94a421 commit bb33273
Show file tree
Hide file tree
Showing 11 changed files with 53 additions and 53 deletions.
10 changes: 5 additions & 5 deletions Source/Core/Core/Src/BootManager.cpp
Expand Up @@ -46,7 +46,7 @@ struct ConfigCache
{
bool valid, bCPUThread, bSkipIdle, bEnableFPRF, bMMU, bDCBZOFF, m_EnableJIT, bDSPThread,
bVBeamSpeedHack, bSyncGPU, bFastDiscSpeed, bMergeBlocks, bDSPHLE, bHLE_BS2;
int iTLBHack, iCPUCore, iSyncGPUAtIdleOnly;
int iTLBHack, iCPUCore, iDeterministicGPUSync;
TEXIDevices m_EXIDevice[2];
std::string strBackend;
};
Expand Down Expand Up @@ -94,7 +94,7 @@ bool BootCore(const std::string& _rFilename)
config_cache.iTLBHack = StartUp.iTLBHack;
config_cache.bVBeamSpeedHack = StartUp.bVBeamSpeedHack;
config_cache.bSyncGPU = StartUp.bSyncGPU;
config_cache.iSyncGPUAtIdleOnly = StartUp.iSyncGPUAtIdleOnly;
config_cache.iDeterministicGPUSync = StartUp.iDeterministicGPUSync;
config_cache.bFastDiscSpeed = StartUp.bFastDiscSpeed;
config_cache.bMergeBlocks = StartUp.bMergeBlocks;
config_cache.bDSPHLE = StartUp.bDSPHLE;
Expand All @@ -114,7 +114,7 @@ bool BootCore(const std::string& _rFilename)
game_ini.Get("Core", "DCBZ", &StartUp.bDCBZOFF, StartUp.bDCBZOFF);
game_ini.Get("Core", "VBeam", &StartUp.bVBeamSpeedHack, StartUp.bVBeamSpeedHack);
game_ini.Get("Core", "SyncGPU", &StartUp.bSyncGPU, StartUp.bSyncGPU);
game_ini.Get("Core", "SyncGPUAtIdleOnly", &StartUp.iSyncGPUAtIdleOnly, StartUp.iSyncGPUAtIdleOnly);
game_ini.Get("Core", "DeterministicGPUSync",&StartUp.iDeterministicGPUSync, StartUp.iDeterministicGPUSync);
game_ini.Get("Core", "FastDiscSpeed", &StartUp.bFastDiscSpeed, StartUp.bFastDiscSpeed);
game_ini.Get("Core", "BlockMerging", &StartUp.bMergeBlocks, StartUp.bMergeBlocks);
game_ini.Get("Core", "DSPHLE", &StartUp.bDSPHLE, StartUp.bDSPHLE);
Expand Down Expand Up @@ -142,7 +142,7 @@ bool BootCore(const std::string& _rFilename)
StartUp.bFastDiscSpeed = Movie::IsFastDiscSpeed();
StartUp.iCPUCore = Movie::GetCPUMode();
StartUp.bSyncGPU = Movie::IsSyncGPU();
StartUp.iSyncGPUAtIdleOnly = Movie::IsSyncGPUAtIdleOnly();
StartUp.iDeterministicGPUSync = Movie::IsDeterministicGPUSync();
if (Movie::IsUsingMemcard() && Movie::IsStartingFromClearSave() && !StartUp.bWii)
{
if (File::Exists(File::GetUserPath(D_GCUSER_IDX) + "Movie.raw"))
Expand Down Expand Up @@ -190,7 +190,7 @@ void Stop()
StartUp.iTLBHack = config_cache.iTLBHack;
StartUp.bVBeamSpeedHack = config_cache.bVBeamSpeedHack;
StartUp.bSyncGPU = config_cache.bSyncGPU;
StartUp.iSyncGPUAtIdleOnly = config_cache.iSyncGPUAtIdleOnly;
StartUp.iDeterministicGPUSync = config_cache.iDeterministicGPUSync;
StartUp.bFastDiscSpeed = config_cache.bFastDiscSpeed;
StartUp.bMergeBlocks = config_cache.bMergeBlocks;
StartUp.bDSPHLE = config_cache.bDSPHLE;
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/Core/Src/ConfigManager.cpp
Expand Up @@ -430,7 +430,7 @@ void SConfig::LoadSettings()
ini.Get("Core", "BBDumpPort", &m_LocalCoreStartupParameter.iBBDumpPort, -1);
ini.Get("Core", "VBeam", &m_LocalCoreStartupParameter.bVBeamSpeedHack, false);
ini.Get("Core", "SyncGPU", &m_LocalCoreStartupParameter.bSyncGPU, false);
ini.Get("Core", "SyncGPUAtIdleOnly",&m_LocalCoreStartupParameter.iSyncGPUAtIdleOnly,2);
ini.Get("Core", "DeterministicGPUSync", &m_LocalCoreStartupParameter.iDeterministicGPUSync, 2);
ini.Get("Core", "FastDiscSpeed", &m_LocalCoreStartupParameter.bFastDiscSpeed, false);
ini.Get("Core", "DCBZ", &m_LocalCoreStartupParameter.bDCBZOFF, false);
ini.Get("Core", "FrameLimit", &m_Framelimit, 1); // auto frame limit by default
Expand Down
4 changes: 2 additions & 2 deletions Source/Core/Core/Src/CoreParameter.cpp
Expand Up @@ -38,7 +38,7 @@ SCoreStartupParameter::SCoreStartupParameter()
bDPL2Decoder(false), iLatency(14),
bRunCompareServer(false), bRunCompareClient(false),
bMMU(false), bDCBZOFF(false), iTLBHack(0), iBBDumpPort(0), bVBeamSpeedHack(false),
bSyncGPU(false), iSyncGPUAtIdleOnly(2), bFastDiscSpeed(false),
bSyncGPU(false), iDeterministicGPUSync(2), bFastDiscSpeed(false),
SelectedLanguage(0), bWii(false),
bConfirmStop(false), bHideCursor(false),
bAutoHideCursor(false), bUsePanicHandlers(true), bOnScreenDisplayMessages(true),
Expand Down Expand Up @@ -77,7 +77,7 @@ void SCoreStartupParameter::LoadDefaults()
iBBDumpPort = -1;
bVBeamSpeedHack = false;
bSyncGPU = false;
iSyncGPUAtIdleOnly = 2;
iDeterministicGPUSync = 2;
bFastDiscSpeed = false;
bMergeBlocks = false;
bEnableMemcardSaving = true;
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/Core/Src/CoreParameter.h
Expand Up @@ -142,7 +142,7 @@ struct SCoreStartupParameter
bool bVBeamSpeedHack;
bool bSyncGPU;
// 0 - force off. 1 - force on. 2 - only in netplay/recording
int iSyncGPUAtIdleOnly;
int iDeterministicGPUSync;
bool bFastDiscSpeed;

int SelectedLanguage;
Expand Down
12 changes: 6 additions & 6 deletions Source/Core/Core/Src/Movie.cpp
Expand Up @@ -52,7 +52,7 @@ u64 g_currentLagCount = 0, g_totalLagCount = 0; // just stats
u64 g_currentInputCount = 0, g_totalInputCount = 0; // just stats
u64 g_recordingStartTime; // seconds since 1970 that recording started
bool bSaveConfig = false, bSkipIdle = false, bDualCore = false, bProgressive = false, bDSPHLE = false, bFastDiscSpeed = false;
bool bMemcard = false, g_bClearSave = false, bSyncGPU = false, bSyncGPUAtIdleOnly = false, bNetPlay = false;
bool bMemcard = false, g_bClearSave = false, bSyncGPU = false, bDeterministicGPUSync = false, bNetPlay = false;
std::string videoBackend = "unknown";
int iCPUCore = 1;
bool g_bDiscChange = false;
Expand Down Expand Up @@ -360,9 +360,9 @@ bool IsSyncGPU()
{
return bSyncGPU;
}
bool IsSyncGPUAtIdleOnly()
bool IsDeterministicGPUSync()
{
return bSyncGPUAtIdleOnly;
return bDeterministicGPUSync;
}

bool IsNetPlayRecording()
Expand Down Expand Up @@ -702,7 +702,7 @@ void ReadHeader()
bongos = tmpHeader.bongos;
bSyncGPU = tmpHeader.bSyncGPU;
bNetPlay = tmpHeader.bNetPlay;
bSyncGPUAtIdleOnly = tmpHeader.bSyncGPUAtIdleOnly;
bDeterministicGPUSync = tmpHeader.bDeterministicGPUSync;
memcpy(revision, tmpHeader.revision, ArraySize(revision));
}
else
Expand Down Expand Up @@ -1133,7 +1133,7 @@ void SaveRecording(const char *filename)
header.bMemcard = bMemcard;
header.bClearSave = g_bClearSave;
header.bSyncGPU = bSyncGPU;
header.bSyncGPUAtIdleOnly = bSyncGPUAtIdleOnly;
header.bDeterministicGPUSync = bDeterministicGPUSync;
header.bNetPlay = bNetPlay;
strncpy((char *)header.discChange, g_discChange.c_str(),ArraySize(header.discChange));
strncpy((char *)header.author, author.c_str(),ArraySize(header.author));
Expand Down Expand Up @@ -1194,7 +1194,7 @@ void GetSettings()
bFastDiscSpeed = SConfig::GetInstance().m_LocalCoreStartupParameter.bFastDiscSpeed;
videoBackend = g_video_backend->GetName();
bSyncGPU = SConfig::GetInstance().m_LocalCoreStartupParameter.bSyncGPU;
bSyncGPUAtIdleOnly = SConfig::GetInstance().m_LocalCoreStartupParameter.iSyncGPUAtIdleOnly != 0;
bDeterministicGPUSync = SConfig::GetInstance().m_LocalCoreStartupParameter.iDeterministicGPUSync != 0;
iCPUCore = SConfig::GetInstance().m_LocalCoreStartupParameter.iCPUCore;
bNetPlay = NetPlay::IsNetPlayRunning();
if (!Core::g_CoreStartupParameter.bWii)
Expand Down
4 changes: 2 additions & 2 deletions Source/Core/Core/Src/Movie.h
Expand Up @@ -108,7 +108,7 @@ struct DTMHeader {
u8 bongos;
bool bSyncGPU;
bool bNetPlay;
bool bSyncGPUAtIdleOnly;
bool bDeterministicGPUSync;
u8 reserved[12]; // Padding for any new config options
u8 discChange[40]; // Name of iso file to switch to, for two disc games.
u8 revision[20]; // Git hash
Expand Down Expand Up @@ -142,7 +142,7 @@ int GetCPUMode();
bool IsStartingFromClearSave();
bool IsUsingMemcard();
bool IsSyncGPU();
bool IsSyncGPUAtIdleOnly();
bool IsDeterministicGPUSync();
void SetGraphicsConfig();
void GetSettings();
bool IsNetPlayRecording();
Expand Down
54 changes: 27 additions & 27 deletions Source/Core/VideoCommon/Src/CommandProcessor.cpp
Expand Up @@ -30,7 +30,7 @@ int et_UpdateInterrupts;
// TODO(ector): Warn on bbox read/write

// STATE_TO_SAVE
// Note that gpuFifo == &cpuFifo except when bSyncGPUAtIdleOnly is on.
// Note that gpuFifo == &cpuFifo except when bDeterministicGPUSync is on.
SCPFifoStruct cpuFifo, _gpuFifo;
SCPFifoStruct *gpuFifo;
UCPStatusReg m_CPStatusReg;
Expand All @@ -48,7 +48,7 @@ volatile bool interruptWaiting= false;
volatile bool interruptTokenWaiting = false;
u32 interruptTokenData;
volatile bool interruptFinishWaiting = false;
bool syncGPUAtIdleOnly = false;
bool deterministicGPUSync = false;

volatile u32 VITicks = CommandProcessor::m_cpClockOrigin;

Expand Down Expand Up @@ -110,9 +110,9 @@ void Init()
cpuFifo.bFF_LoWatermark = 0;
cpuFifo.bFF_LoWatermarkInt = 0;

syncGPUAtIdleOnly = false;
deterministicGPUSync = false;
gpuFifo = &cpuFifo;
UpdateSyncGPUAtIdleOnly();
UpdateDeterministicGPUSync();

interruptSet = false;
interruptWaiting = false;
Expand All @@ -124,7 +124,7 @@ void Init()

bool GPUHasWork()
{
// In bSyncGPUAtIdleOnly mode, this is safe to call from SyncGPU, because:
// In bDeterministicGPUSync mode, this is safe to call from SyncGPU, because:
// - gpuFifo->bFF_GPReadEnable/CPWritePointer/CPBreakpoint only change later in SyncGPU.
// - interruptWaiting *never* becomes true.
// - No work is done between setting the read pointer and comparing it
Expand All @@ -142,7 +142,7 @@ static void SyncGPU()
while (GPUHasWork())
Common::YieldCPU();
}
if (syncGPUAtIdleOnly)
if (deterministicGPUSync)
{
// need a barrier here for ARM
if (interruptTokenWaiting)
Expand All @@ -161,18 +161,18 @@ static void SyncGPU()
}
}

void SyncGPUIfIdleOnly()
void SyncGPUIfDeterministic()
{
if (syncGPUAtIdleOnly)
if (deterministicGPUSync)
{
SyncGPU();
}
}

void UpdateSyncGPUAtIdleOnly()
void UpdateDeterministicGPUSync()
{
// This can change when we start and stop recording.
int setting = Core::g_CoreStartupParameter.iSyncGPUAtIdleOnly;
int setting = Core::g_CoreStartupParameter.iDeterministicGPUSync;
bool on;
if (setting == 2)
{
Expand All @@ -183,7 +183,7 @@ void UpdateSyncGPUAtIdleOnly()
on = setting;
}
on = on && IsOnThread() && SConfig::GetInstance().m_LocalCoreStartupParameter.bSkipIdle;
if (on != syncGPUAtIdleOnly)
if (on != deterministicGPUSync)
{
SyncGPU();
if (on)
Expand All @@ -198,15 +198,15 @@ void UpdateSyncGPUAtIdleOnly()
{
gpuFifo = &cpuFifo;
}
syncGPUAtIdleOnly = on;
deterministicGPUSync = on;
}
}


bool IsPossibleWaitingSetDrawDone()
{
// This is called from Idle.
if (syncGPUAtIdleOnly)
if (deterministicGPUSync)
{
// Time to sync.
SyncGPU();
Expand All @@ -226,7 +226,7 @@ static u32 GetReadWriteDistance()
if (writePointer < readPointer)
result += cpuFifo.CPEnd - cpuFifo.CPBase;

if (syncGPUAtIdleOnly)
if (deterministicGPUSync)
{
// Pretend we've advanced further.
result = std::min(result, (u32) 32);
Expand All @@ -237,7 +237,7 @@ static u32 GetReadWriteDistance()

static u32 GetReadPointer()
{
if (syncGPUAtIdleOnly)
if (deterministicGPUSync)
{
u32 result = cpuFifo.CPWritePointer - GetReadWriteDistance();
if (result < cpuFifo.CPBase)
Expand Down Expand Up @@ -428,45 +428,45 @@ void Write16(const u16 _Value, const u32 _Address)
break;
case FIFO_BASE_LO:
WriteLow ((u32 &)cpuFifo.CPBase, _Value & 0xFFE0);
SyncGPUIfIdleOnly();
SyncGPUIfDeterministic();
DEBUG_LOG(COMMANDPROCESSOR,"\t Write to FIFO_BASE_LO : %04x", _Value);
break;
case FIFO_BASE_HI:
WriteHigh((u32 &)cpuFifo.CPBase, _Value);
SyncGPUIfIdleOnly();
SyncGPUIfDeterministic();
DEBUG_LOG(COMMANDPROCESSOR,"\t Write to FIFO_BASE_HI : %04x", _Value);
break;

case FIFO_END_LO:
WriteLow ((u32 &)cpuFifo.CPEnd, _Value & 0xFFE0);
SyncGPUIfIdleOnly();
SyncGPUIfDeterministic();
DEBUG_LOG(COMMANDPROCESSOR,"\t Write to FIFO_END_LO : %04x", _Value);
break;
case FIFO_END_HI:
WriteHigh((u32 &)cpuFifo.CPEnd, _Value);
SyncGPUIfIdleOnly();
SyncGPUIfDeterministic();
DEBUG_LOG(COMMANDPROCESSOR,"\t Write to FIFO_END_HI : %04x", _Value);
break;

case FIFO_WRITE_POINTER_LO:
WriteLow ((u32 &)cpuFifo.CPWritePointer, _Value & 0xFFE0);
SyncGPUIfIdleOnly();
SyncGPUIfDeterministic();
DEBUG_LOG(COMMANDPROCESSOR,"\t Write to FIFO_WRITE_POINTER_LO : %04x", _Value);
break;
case FIFO_WRITE_POINTER_HI:
WriteHigh((u32 &)cpuFifo.CPWritePointer, _Value);
SyncGPUIfIdleOnly();
SyncGPUIfDeterministic();
DEBUG_LOG(COMMANDPROCESSOR,"\t Write to FIFO_WRITE_POINTER_HI : %04x", _Value);
break;

case FIFO_READ_POINTER_LO:
SyncGPUIfIdleOnly();
SyncGPUIfDeterministic();
WriteLow ((u32 &)cpuFifo.CPReadPointer, _Value & 0xFFE0);
gpuFifo->CPReadPointer = cpuFifo.CPReadPointer;
DEBUG_LOG(COMMANDPROCESSOR,"\t Write to FIFO_READ_POINTER_LO : %04x", _Value);
break;
case FIFO_READ_POINTER_HI:
SyncGPUIfIdleOnly();
SyncGPUIfDeterministic();
WriteHigh((u32 &)cpuFifo.CPReadPointer, _Value);
cpuFifo.SafeCPReadPointer = cpuFifo.CPReadPointer;
gpuFifo->CPReadPointer = cpuFifo.CPReadPointer;
Expand Down Expand Up @@ -494,12 +494,12 @@ void Write16(const u16 _Value, const u32 _Address)

case FIFO_BP_LO:
WriteLow ((u32 &)cpuFifo.CPBreakpoint, _Value & 0xFFE0);
SyncGPUIfIdleOnly();
SyncGPUIfDeterministic();
DEBUG_LOG(COMMANDPROCESSOR,"Write to FIFO_BP_LO : %04x", _Value);
break;
case FIFO_BP_HI:
WriteHigh((u32 &)cpuFifo.CPBreakpoint, _Value);
SyncGPUIfIdleOnly();
SyncGPUIfDeterministic();
DEBUG_LOG(COMMANDPROCESSOR,"Write to FIFO_BP_HI : %04x", _Value);
break;

Expand Down Expand Up @@ -617,7 +617,7 @@ void AbortFrame()

void SetCpStatus(bool isCPUThread)
{
if (syncGPUAtIdleOnly)
if (deterministicGPUSync)
{
// We don't care.
cpuFifo.bFF_HiWatermark = 0;
Expand Down Expand Up @@ -673,7 +673,7 @@ void SetCpStatus(bool isCPUThread)

void ProcessFifoEvents()
{
if (IsOnThread() && !syncGPUAtIdleOnly &&
if (IsOnThread() && !deterministicGPUSync &&
(interruptWaiting || interruptFinishWaiting || interruptTokenWaiting))
CoreTiming::ProcessFifoWaitEvents();
}
Expand Down
6 changes: 3 additions & 3 deletions Source/Core/VideoCommon/Src/CommandProcessor.h
Expand Up @@ -23,7 +23,7 @@ extern volatile bool interruptWaiting;
extern volatile bool interruptTokenWaiting;
extern u32 interruptTokenData;
extern volatile bool interruptFinishWaiting;
extern bool syncGPUAtIdleOnly;
extern bool deterministicGPUSync;

// internal hardware addresses
enum
Expand Down Expand Up @@ -137,8 +137,8 @@ void Shutdown();
void DoState(PointerWrap &p);

bool GPUHasWork();
void SyncGPUIfIdleOnly();
void UpdateSyncGPUAtIdleOnly();
void SyncGPUIfDeterministic();
void UpdateDeterministicGPUSync();
bool IsPossibleWaitingSetDrawDone();

// Read
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/VideoCommon/Src/Fifo.cpp
Expand Up @@ -167,7 +167,7 @@ void RunGpuLoop()
Common::AtomicStore(fifo.CPReadPointer, readPtr);
}

if (!CommandProcessor::syncGPUAtIdleOnly)
if (!CommandProcessor::deterministicGPUSync)
{
CommandProcessor::SetCpStatus(false);
}
Expand Down

0 comments on commit bb33273

Please sign in to comment.