Add a toggle option for OpenCL in Config (in Advanced Settings). Default is off.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5768 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
xsacha
2010-06-22 13:17:01 +00:00
parent 25aca8cc4a
commit 21fb4cb96c
8 changed files with 37 additions and 5 deletions

View File

@ -30,6 +30,8 @@
#include "Frame.h"
#include "HotkeyDlg.h"
#include "..\..\Common\Src\OpenCL.h"
#ifdef __APPLE__
#include <Cocoa/Cocoa.h>
#endif
@ -62,6 +64,7 @@ EVT_CHOICE(ID_FRAMELIMIT, CConfigMain::CoreSettingsChanged)
EVT_CHECKBOX(ID_FRAMELIMIT_USEFPSFORLIMITING, CConfigMain::CoreSettingsChanged)
EVT_CHECKBOX(ID_ALWAYS_HLE_BS2, CConfigMain::CoreSettingsChanged)
EVT_CHECKBOX(ID_ENABLE_OPENCL, CConfigMain::CoreSettingsChanged)
EVT_RADIOBOX(ID_CPUENGINE, CConfigMain::CoreSettingsChanged)
EVT_CHECKBOX(ID_LOCKTHREADS, CConfigMain::CoreSettingsChanged)
EVT_CHECKBOX(ID_DSPTHREAD, CConfigMain::CoreSettingsChanged)
@ -158,6 +161,7 @@ void CConfigMain::UpdateGUI()
EnableCheats->Disable();
AlwaysHLE_BS2->Disable();
EnableOpenCL->Disable();
CPUEngine->Disable();
LockThreads->Disable();
DSPThread->Disable();
@ -261,6 +265,7 @@ void CConfigMain::InitializeGUIValues()
// General - Advanced
AlwaysHLE_BS2->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bHLE_BS2);
EnableOpenCL->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableOpenCL);
CPUEngine->SetSelection(SConfig::GetInstance().m_LocalCoreStartupParameter.iCPUCore);
LockThreads->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bLockThreads);
DSPThread->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bDSPThread);
@ -328,6 +333,7 @@ void CConfigMain::InitializeGUITooltips()
// General - Advanced
DSPThread->SetToolTip(wxT("Run DSPLLE on a dedicated thread (not recommended)."));
EnableOpenCL->SetToolTip(wxT("Allow videocard to accelerate texture decoding."));
// Display - Display
@ -397,6 +403,10 @@ void CConfigMain::CreateGUIControls()
// Core Settings - Advanced
sbAdvanced = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Advanced Settings"));
AlwaysHLE_BS2 = new wxCheckBox(GeneralPage, ID_ALWAYS_HLE_BS2, wxT("HLE the IPL (recommended)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
EnableOpenCL = new wxCheckBox(GeneralPage, ID_ENABLE_OPENCL, wxT("Enable OpenCL"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
#if !(defined(HAVE_OPENCL) && HAVE_OPENCL)
EnableOpenCL->Enable(false);
#endif
CPUEngine = new wxRadioBox(GeneralPage, ID_CPUENGINE, wxT("CPU Emulator Engine"), wxDefaultPosition, wxDefaultSize, arrayStringFor_CPUEngine, 0, wxRA_SPECIFY_ROWS);
LockThreads = new wxCheckBox(GeneralPage, ID_LOCKTHREADS, wxT("Lock threads to cores"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
DSPThread = new wxCheckBox(GeneralPage, ID_DSPTHREAD, wxT("DSPLLE on thread"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
@ -412,6 +422,7 @@ void CConfigMain::CreateGUIControls()
sbBasic->Add(sFramelimit, 0, wxALL | wxEXPAND, 5);
sbAdvanced->Add(AlwaysHLE_BS2, 0, wxALL, 5);
sbAdvanced->Add(EnableOpenCL, 0, wxALL, 5);
sbAdvanced->Add(CPUEngine, 0, wxALL, 5);
sbAdvanced->Add(LockThreads, 0, wxALL, 5);
sbAdvanced->Add(DSPThread, 0, wxALL, 5);
@ -807,6 +818,9 @@ void CConfigMain::CoreSettingsChanged(wxCommandEvent& event)
case ID_ALWAYS_HLE_BS2:
SConfig::GetInstance().m_LocalCoreStartupParameter.bHLE_BS2 = AlwaysHLE_BS2->IsChecked();
break;
case ID_ENABLE_OPENCL:
SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableOpenCL = EnableOpenCL->IsChecked();
break;
case ID_CPUENGINE:
SConfig::GetInstance().m_LocalCoreStartupParameter.iCPUCore = CPUEngine->GetSelection();
if (main_frame->g_pCodeWindow)