Config: Port SyncOnSkipIdle setting to new config system.

This commit is contained in:
Admiral H. Curtiss 2022-01-06 01:42:31 +01:00
parent e613cbf395
commit 88d725c918
No known key found for this signature in database
GPG key ID: F051B4C4044F33FB
5 changed files with 4 additions and 12 deletions

View file

@ -72,7 +72,6 @@ public:
private:
bool valid = false;
bool bCPUThread = false;
bool bSyncGPUOnSkipIdleHack = false;
bool bMMU = false;
bool bSyncGPU = false;
int iSyncGpuMaxDistance = 0;
@ -88,7 +87,6 @@ void ConfigCache::SaveConfig(const SConfig& config)
valid = true;
bCPUThread = config.bCPUThread;
bSyncGPUOnSkipIdleHack = config.bSyncGPUOnSkipIdleHack;
bMMU = config.bMMU;
bSyncGPU = config.bSyncGPU;
iSyncGpuMaxDistance = config.iSyncGpuMaxDistance;
@ -115,7 +113,6 @@ void ConfigCache::RestoreConfig(SConfig* config)
valid = false;
config->bCPUThread = bCPUThread;
config->bSyncGPUOnSkipIdleHack = bSyncGPUOnSkipIdleHack;
config->bMMU = bMMU;
config->bSyncGPU = bSyncGPU;
config->iSyncGpuMaxDistance = iSyncGpuMaxDistance;
@ -171,8 +168,6 @@ bool BootCore(std::unique_ptr<BootParameters> boot, const WindowSystemInfo& wsi)
IniFile::Section* controls_section = game_ini.GetOrCreateSection("Controls");
core_section->Get("CPUThread", &StartUp.bCPUThread, StartUp.bCPUThread);
core_section->Get("SyncOnSkipIdle", &StartUp.bSyncGPUOnSkipIdleHack,
StartUp.bSyncGPUOnSkipIdleHack);
core_section->Get("MMU", &StartUp.bMMU, StartUp.bMMU);
core_section->Get("SyncGPU", &StartUp.bSyncGPU, StartUp.bSyncGPU);
@ -248,7 +243,6 @@ bool BootCore(std::unique_ptr<BootParameters> boot, const WindowSystemInfo& wsi)
config_cache.bSetEXIDevice[0] = true;
config_cache.bSetEXIDevice[1] = true;
config_cache.bSetEXIDevice[2] = true;
StartUp.bSyncGPUOnSkipIdleHack = netplay_settings.m_SyncOnSkipIdle;
StartUp.bSyncGPU = netplay_settings.m_SyncGPU;
StartUp.iSyncGpuMaxDistance = netplay_settings.m_SyncGpuMaxDistance;
StartUp.iSyncGpuMinDistance = netplay_settings.m_SyncGpuMinDistance;

View file

@ -102,6 +102,7 @@ bool IsSettingSaveable(const Config::Location& config_location)
&Config::MAIN_GPU_DETERMINISM_MODE.GetLocation(),
&Config::MAIN_DISABLE_ICACHE.GetLocation(),
&Config::MAIN_FAST_DISC_SPEED.GetLocation(),
&Config::MAIN_SYNC_ON_SKIP_IDLE.GetLocation(),
// UI.General

View file

@ -102,7 +102,6 @@ void SConfig::SaveCoreSettings(IniFile& ini)
core->Set("TimingVariance", iTimingVariance);
core->Set("Fastmem", bFastmem);
core->Set("CPUThread", bCPUThread);
core->Set("SyncOnSkipIdle", bSyncGPUOnSkipIdleHack);
core->Set("SyncGPU", bSyncGPU);
core->Set("SyncGpuMaxDistance", iSyncGpuMaxDistance);
core->Set("SyncGpuMinDistance", iSyncGpuMinDistance);
@ -140,7 +139,6 @@ void SConfig::LoadCoreSettings(IniFile& ini)
core->Get("Fastmem", &bFastmem, true);
core->Get("TimingVariance", &iTimingVariance, 40);
core->Get("CPUThread", &bCPUThread, true);
core->Get("SyncOnSkipIdle", &bSyncGPUOnSkipIdleHack, true);
core->Get("SlotA", (int*)&m_EXIDevice[0], ExpansionInterface::EXIDEVICE_MEMORYCARDFOLDER);
core->Get("SlotB", (int*)&m_EXIDevice[1], ExpansionInterface::EXIDEVICE_NONE);
core->Get("SerialPort1", (int*)&m_EXIDevice[2], ExpansionInterface::EXIDEVICE_NONE);
@ -277,7 +275,6 @@ void SConfig::LoadDefaults()
iTimingVariance = 40;
bCPUThread = false;
bSyncGPUOnSkipIdleHack = true;
bFastmem = true;
bMMU = false;
iBBDumpPort = -1;

View file

@ -67,7 +67,6 @@ struct SConfig
int iTimingVariance = 40; // in milli secounds
bool bCPUThread = true;
bool bSyncGPUOnSkipIdleHack = true;
bool bCopyWiiSaveNetplay = true;
bool bMMU = false;

View file

@ -17,7 +17,6 @@
#include "Common/SPSCQueue.h"
#include "Core/Config/MainSettings.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h"
#include "Core/PowerPC/PowerPC.h"
@ -81,6 +80,7 @@ static EventType* s_ev_lost = nullptr;
static size_t s_registered_config_callback_id;
static float s_config_OC_factor;
static float s_config_OC_inv_factor;
static bool s_config_sync_on_skip_idle;
static void EmptyTimedCallback(u64 userdata, s64 cyclesLate)
{
@ -161,6 +161,7 @@ void RefreshConfig()
s_config_OC_factor =
Config::Get(Config::MAIN_OVERCLOCK_ENABLE) ? Config::Get(Config::MAIN_OVERCLOCK) : 1.0f;
s_config_OC_inv_factor = 1.0f / s_config_OC_factor;
s_config_sync_on_skip_idle = Config::Get(Config::MAIN_SYNC_ON_SKIP_IDLE);
}
void DoState(PointerWrap& p)
@ -388,7 +389,7 @@ void AdjustEventQueueTimes(u32 new_ppc_clock, u32 old_ppc_clock)
void Idle()
{
if (SConfig::GetInstance().bSyncGPUOnSkipIdleHack)
if (s_config_sync_on_skip_idle)
{
// When the FIFO is processing data we must not advance because in this way
// the VI will be desynchronized. So, We are waiting until the FIFO finish and