Merge pull request #1437 from skidau/Remove-DSP-thread-option
Removed the DSP LLE on separate thread option.
This commit is contained in:
commit
f7a16eca84
|
@ -125,7 +125,6 @@ bool BootCore(const std::string& _rFilename)
|
|||
config_cache.strBackend = StartUp.m_strVideoBackend;
|
||||
config_cache.m_strGPUDeterminismMode = StartUp.m_strGPUDeterminismMode;
|
||||
config_cache.m_EnableJIT = SConfig::GetInstance().m_DSPEnableJIT;
|
||||
config_cache.bDSPThread = StartUp.bDSPThread;
|
||||
config_cache.Volume = SConfig::GetInstance().m_Volume;
|
||||
config_cache.sBackend = SConfig::GetInstance().sBackend;
|
||||
config_cache.framelimit = SConfig::GetInstance().m_Framelimit;
|
||||
|
@ -165,7 +164,6 @@ bool BootCore(const std::string& _rFilename)
|
|||
core_section->Get("FastDiscSpeed", &StartUp.bFastDiscSpeed, StartUp.bFastDiscSpeed);
|
||||
core_section->Get("BlockMerging", &StartUp.bMergeBlocks, StartUp.bMergeBlocks);
|
||||
core_section->Get("DSPHLE", &StartUp.bDSPHLE, StartUp.bDSPHLE);
|
||||
core_section->Get("DSPThread", &StartUp.bDSPThread, StartUp.bDSPThread);
|
||||
core_section->Get("GFXBackend", &StartUp.m_strVideoBackend, StartUp.m_strVideoBackend);
|
||||
core_section->Get("CPUCore", &StartUp.iCPUCore, StartUp.iCPUCore);
|
||||
core_section->Get("HLE_BS2", &StartUp.bHLE_BS2, StartUp.bHLE_BS2);
|
||||
|
@ -293,7 +291,6 @@ void Stop()
|
|||
StartUp.bFastDiscSpeed = config_cache.bFastDiscSpeed;
|
||||
StartUp.bMergeBlocks = config_cache.bMergeBlocks;
|
||||
StartUp.bDSPHLE = config_cache.bDSPHLE;
|
||||
StartUp.bDSPThread = config_cache.bDSPThread;
|
||||
StartUp.m_strVideoBackend = config_cache.strBackend;
|
||||
StartUp.m_strGPUDeterminismMode = config_cache.m_strGPUDeterminismMode;
|
||||
VideoBackend::ActivateBackend(StartUp.m_strVideoBackend);
|
||||
|
|
|
@ -312,7 +312,6 @@ void SConfig::SaveCoreSettings(IniFile& ini)
|
|||
core->Set("CPUCore", m_LocalCoreStartupParameter.iCPUCore);
|
||||
core->Set("Fastmem", m_LocalCoreStartupParameter.bFastmem);
|
||||
core->Set("CPUThread", m_LocalCoreStartupParameter.bCPUThread);
|
||||
core->Set("DSPThread", m_LocalCoreStartupParameter.bDSPThread);
|
||||
core->Set("DSPHLE", m_LocalCoreStartupParameter.bDSPHLE);
|
||||
core->Set("SkipIdle", m_LocalCoreStartupParameter.bSkipIdle);
|
||||
core->Set("DefaultISO", m_LocalCoreStartupParameter.m_strDefaultISO);
|
||||
|
@ -537,7 +536,6 @@ void SConfig::LoadCoreSettings(IniFile& ini)
|
|||
core->Get("CPUCore", &m_LocalCoreStartupParameter.iCPUCore, SCoreStartupParameter::CORE_INTERPRETER);
|
||||
#endif
|
||||
core->Get("Fastmem", &m_LocalCoreStartupParameter.bFastmem, true);
|
||||
core->Get("DSPThread", &m_LocalCoreStartupParameter.bDSPThread, false);
|
||||
core->Get("DSPHLE", &m_LocalCoreStartupParameter.bDSPHLE, true);
|
||||
core->Get("CPUThread", &m_LocalCoreStartupParameter.bCPUThread, true);
|
||||
core->Get("SkipIdle", &m_LocalCoreStartupParameter.bSkipIdle, true);
|
||||
|
|
|
@ -344,6 +344,11 @@ void EmuThread()
|
|||
|
||||
OSD::AddMessage("Dolphin " + g_video_backend->GetName() + " Video Backend.", 5000);
|
||||
|
||||
if (cpu_info.HTT)
|
||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bDSPThread = cpu_info.num_cores > 4;
|
||||
else
|
||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bDSPThread = cpu_info.num_cores > 2;
|
||||
|
||||
if (!DSP::GetDSPEmulator()->Initialize(core_parameter.bWii, core_parameter.bDSPThread))
|
||||
{
|
||||
HW::Shutdown();
|
||||
|
|
|
@ -71,7 +71,6 @@ void SCoreStartupParameter::LoadDefaults()
|
|||
bSkipIdle = false;
|
||||
bRunCompareServer = false;
|
||||
bDSPHLE = true;
|
||||
bDSPThread = true;
|
||||
bFastmem = true;
|
||||
bFPRF = false;
|
||||
bBAT = false;
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
#include "Core/ConfigManager.h"
|
||||
#include "Core/Core.h"
|
||||
#include "Core/Host.h"
|
||||
#include "Core/Movie.h"
|
||||
#include "Core/NetPlayProto.h"
|
||||
#include "Core/DSP/DSPCaptureLogger.h"
|
||||
#include "Core/DSP/DSPCore.h"
|
||||
#include "Core/DSP/DSPDisassembler.h"
|
||||
|
@ -31,7 +33,6 @@
|
|||
#include "Core/HW/DSPLLE/DSPLLEGlobals.h"
|
||||
#include "Core/HW/DSPLLE/DSPSymbols.h"
|
||||
|
||||
|
||||
DSPLLE::DSPLLE()
|
||||
{
|
||||
m_bIsRunning = false;
|
||||
|
@ -40,6 +41,7 @@ DSPLLE::DSPLLE()
|
|||
|
||||
static Common::Event dspEvent;
|
||||
static Common::Event ppcEvent;
|
||||
static bool requestDisableThread;
|
||||
|
||||
void DSPLLE::DoState(PointerWrap &p)
|
||||
{
|
||||
|
@ -160,7 +162,10 @@ static bool FillDSPInitOptions(DSPInitOptions* opts)
|
|||
bool DSPLLE::Initialize(bool bWii, bool bDSPThread)
|
||||
{
|
||||
m_bWii = bWii;
|
||||
m_bDSPThread = bDSPThread;
|
||||
m_bDSPThread = true;
|
||||
if (NetPlay::IsNetPlayRunning() || Movie::IsMovieActive() || Core::g_want_determinism || !bDSPThread)
|
||||
m_bDSPThread = false;
|
||||
requestDisableThread = false;
|
||||
|
||||
DSPInitOptions opts;
|
||||
if (!FillDSPInitOptions(&opts))
|
||||
|
@ -209,6 +214,13 @@ u16 DSPLLE::DSP_WriteControlRegister(u16 _uFlag)
|
|||
// and immediately process it, if it has.
|
||||
if (_uFlag & 2)
|
||||
{
|
||||
if (m_bDSPThread)
|
||||
{
|
||||
// External interrupt pending: this is the zelda ucode.
|
||||
// Disable the DSP thread because there is no performance gain.
|
||||
requestDisableThread = true;
|
||||
}
|
||||
|
||||
if (!m_bDSPThread)
|
||||
{
|
||||
DSPCore_CheckExternalInterrupt();
|
||||
|
@ -305,6 +317,17 @@ void DSPLLE::DSP_Update(int cycles)
|
|||
soundStream->Update();
|
||||
}
|
||||
*/
|
||||
if (m_bDSPThread)
|
||||
{
|
||||
if (requestDisableThread || NetPlay::IsNetPlayRunning() || Movie::IsMovieActive() || Core::g_want_determinism)
|
||||
{
|
||||
DSP_StopSoundStream();
|
||||
m_bDSPThread = false;
|
||||
requestDisableThread = false;
|
||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bDSPThread = false;
|
||||
}
|
||||
}
|
||||
|
||||
// If we're not on a thread, run cycles here.
|
||||
if (!m_bDSPThread)
|
||||
{
|
||||
|
|
|
@ -137,7 +137,6 @@ EVT_CHECKBOX(ID_NTSCJ, CConfigMain::CoreSettingsChanged)
|
|||
|
||||
|
||||
EVT_RADIOBOX(ID_DSPENGINE, CConfigMain::AudioSettingsChanged)
|
||||
EVT_CHECKBOX(ID_DSPTHREAD, CConfigMain::AudioSettingsChanged)
|
||||
EVT_CHECKBOX(ID_ENABLE_THROTTLE, CConfigMain::AudioSettingsChanged)
|
||||
EVT_CHECKBOX(ID_DPL2DECODER, CConfigMain::AudioSettingsChanged)
|
||||
EVT_CHOICE(ID_BACKEND, CConfigMain::AudioSettingsChanged)
|
||||
|
@ -228,7 +227,6 @@ void CConfigMain::UpdateGUI()
|
|||
|
||||
// Disable stuff on AudioPage
|
||||
DSPEngine->Disable();
|
||||
DSPThread->Disable();
|
||||
DPL2Decoder->Disable();
|
||||
Latency->Disable();
|
||||
|
||||
|
@ -361,7 +359,6 @@ void CConfigMain::InitializeGUIValues()
|
|||
VolumeSlider->Enable(SupportsVolumeChanges(SConfig::GetInstance().sBackend));
|
||||
VolumeSlider->SetValue(SConfig::GetInstance().m_Volume);
|
||||
VolumeText->SetLabel(wxString::Format("%d %%", SConfig::GetInstance().m_Volume));
|
||||
DSPThread->SetValue(startup_params.bDSPThread);
|
||||
DPL2Decoder->Enable(std::string(SConfig::GetInstance().sBackend) == BACKEND_OPENAL);
|
||||
DPL2Decoder->SetValue(startup_params.bDPL2Decoder);
|
||||
Latency->Enable(std::string(SConfig::GetInstance().sBackend) == BACKEND_OPENAL);
|
||||
|
@ -471,7 +468,6 @@ void CConfigMain::InitializeGUITooltips()
|
|||
InterfaceLang->SetToolTip(_("Change the language of the user interface.\nRequires restart."));
|
||||
|
||||
// Audio tooltips
|
||||
DSPThread->SetToolTip(_("Run DSP LLE on a dedicated thread (not recommended: might cause freezes)."));
|
||||
BackendSelection->SetToolTip(_("Changing this will have no effect while the emulator is running!"));
|
||||
|
||||
// GameCube - Devices
|
||||
|
@ -602,7 +598,6 @@ void CConfigMain::CreateGUIControls()
|
|||
|
||||
// Audio page
|
||||
DSPEngine = new wxRadioBox(AudioPage, ID_DSPENGINE, _("DSP Emulator Engine"), wxDefaultPosition, wxDefaultSize, arrayStringFor_DSPEngine, 0, wxRA_SPECIFY_ROWS);
|
||||
DSPThread = new wxCheckBox(AudioPage, ID_DSPTHREAD, _("DSPLLE on Separate Thread"));
|
||||
DPL2Decoder = new wxCheckBox(AudioPage, ID_DPL2DECODER, _("Dolby Pro Logic II decoder"));
|
||||
VolumeSlider = new wxSlider(AudioPage, ID_VOLUME, 0, 1, 100, wxDefaultPosition, wxDefaultSize, wxSL_VERTICAL|wxSL_INVERSE);
|
||||
VolumeText = new wxStaticText(AudioPage, wxID_ANY, "");
|
||||
|
@ -621,7 +616,6 @@ void CConfigMain::CreateGUIControls()
|
|||
// Create sizer and add items to dialog
|
||||
wxStaticBoxSizer *sbAudioSettings = new wxStaticBoxSizer(wxVERTICAL, AudioPage, _("Sound Settings"));
|
||||
sbAudioSettings->Add(DSPEngine, 0, wxALL | wxEXPAND, 5);
|
||||
sbAudioSettings->Add(DSPThread, 0, wxALL, 5);
|
||||
sbAudioSettings->Add(DPL2Decoder, 0, wxALL, 5);
|
||||
|
||||
wxStaticBoxSizer *sbVolume = new wxStaticBoxSizer(wxVERTICAL, AudioPage, _("Volume"));
|
||||
|
@ -896,10 +890,6 @@ void CConfigMain::AudioSettingsChanged(wxCommandEvent& event)
|
|||
VolumeText->SetLabel(wxString::Format("%d %%", VolumeSlider->GetValue()));
|
||||
break;
|
||||
|
||||
case ID_DSPTHREAD:
|
||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bDSPThread = DSPThread->IsChecked();
|
||||
break;
|
||||
|
||||
case ID_DPL2DECODER:
|
||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bDPL2Decoder = DPL2Decoder->IsChecked();
|
||||
break;
|
||||
|
|
|
@ -80,7 +80,6 @@ private:
|
|||
ID_FRAMELIMIT,
|
||||
|
||||
ID_CPUENGINE,
|
||||
ID_DSPTHREAD,
|
||||
|
||||
ID_NTSCJ,
|
||||
|
||||
|
@ -144,7 +143,6 @@ private:
|
|||
|
||||
// Advanced
|
||||
wxRadioBox* CPUEngine;
|
||||
wxCheckBox* DSPThread;
|
||||
wxCheckBox* _NTSCJ;
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue