Added a toggle switch for the OpenMP texture decoder in the graphics settings.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7375 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
skidau
2011-03-19 01:55:57 +00:00
parent 4079523346
commit 50c5dbdb09
6 changed files with 28 additions and 3 deletions

View File

@ -693,7 +693,7 @@ PC_TexFormat TexDecoder_Decode_real(u8 *dst, const u8 *src, int width, int heigh
{
#ifdef _OPENMP
//Dont use multithreading in small Textures
if(width > 127 && height > 127)
if ((width > 127 && height > 127) && g_ActiveConfig.bOMPDecoder)
{
//don't span to many threads they will kill the rest of the emu :)
omp_set_num_threads((cpu_info.num_cores + 2) / 3);
@ -968,7 +968,7 @@ PC_TexFormat TexDecoder_Decode_real(u8 *dst, const u8 *src, int width, int heigh
PC_TexFormat TexDecoder_Decode_RGBA(u32 * dst, const u8 * src, int width, int height, int texformat, int tlutaddr, int tlutfmt)
{
#ifdef _OPENMP
if(width > 127 && height > 127)
if ((width > 127 && height > 127) && g_ActiveConfig.bOMPDecoder)
{
//don't span to many threads they will kill the rest of the emu :)
omp_set_num_threads((cpu_info.num_cores + 2) / 3);

View File

@ -96,6 +96,9 @@ void VideoConfig::Load(const char *ini_file)
iniFile.Get("Settings", "DisableFog", &bDisableFog, 0);
iniFile.Get("Settings", "EnableOpenCL", &bEnableOpenCL, false);
#ifdef _OPENMP
iniFile.Get("Settings", "OMPDecoder", &bOMPDecoder, false);
#endif
iniFile.Get("Enhancements", "ForceFiltering", &bForceFiltering, 0);
iniFile.Get("Enhancements", "MaxAnisotropy", &iMaxAnisotropy, 0); // NOTE - this is x in (1 << x)
@ -170,6 +173,9 @@ void VideoConfig::GameIniLoad(const char *ini_file)
iniFile.GetIfExists("Video_Settings", "DisableFog", &bDisableFog);
iniFile.GetIfExists("Video_Settings", "EnableOpenCL", &bEnableOpenCL);
#ifdef _OPENMP
iniFile.GetIfExists("Video_Settings", "OMPDecoder", &bOMPDecoder);
#endif
iniFile.GetIfExists("Video_Enhancements", "ForceFiltering", &bForceFiltering);
iniFile.GetIfExists("Video_Enhancements", "MaxAnisotropy", &iMaxAnisotropy); // NOTE - this is x in (1 << x)
@ -272,6 +278,9 @@ void VideoConfig::Save(const char *ini_file)
iniFile.Set("Settings", "DisableFog", bDisableFog);
iniFile.Set("Settings", "EnableOpenCL", bEnableOpenCL);
#ifdef _OPENMP
iniFile.Set("Settings", "OMPDecoder", bOMPDecoder);
#endif
iniFile.Set("Enhancements", "ForceFiltering", bForceFiltering);
iniFile.Set("Enhancements", "MaxAnisotropy", iMaxAnisotropy);
@ -351,6 +360,9 @@ void VideoConfig::GameIniSave(const char* default_ini, const char* game_ini)
SET_IF_DIFFERS("Video_Settings", "DisableFog", bDisableFog);
SET_IF_DIFFERS("Video_Settings", "EnableOpenCL", bEnableOpenCL);
#ifdef _OPENMP
SET_IF_DIFFERS("Video_Settings", "OMPDecoder", bOMPDecoder);
#endif
SET_IF_DIFFERS("Video_Enhancements", "ForceFiltering", bForceFiltering);
SET_IF_DIFFERS("Video_Enhancements", "MaxAnisotropy", iMaxAnisotropy); // NOTE - this is x in (1 << x)

View File

@ -121,6 +121,9 @@ struct VideoConfig
// Hacks
bool bEFBAccessEnable;
bool bDlistCachingEnable;
#ifdef _OPENMP
bool bOMPDecoder;
#endif
bool bEFBCopyEnable;
bool bEFBCopyCacheEnable;
bool bEFBEmulateFormatChanges;