diff --git a/CMakeLists.txt b/CMakeLists.txt index 3d96a73acb..7ce043f0a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -560,6 +560,8 @@ add_library(native STATIC native/gfx_es2/fbo.h native/gfx_es2/gl_state.cpp native/gfx_es2/gl_state.h + native/gfx_es2/gpu_features.cpp + native/gfx_es2/gpu_features.h native/gfx_es2/glsl_program.cpp native/gfx_es2/glsl_program.h native/gfx_es2/vertex_format.cpp diff --git a/Core/Config.cpp b/Core/Config.cpp index 57f110af6d..d666a32f8b 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -23,6 +23,7 @@ #include "Config.h" #include "file/ini_file.h" #include "i18n/i18n.h" +#include "gfx_es2/gpu_features.h" #include "HLE/sceUtility.h" #include "Common/CPUDetect.h" @@ -35,8 +36,7 @@ extern bool isJailed; Config::Config() { } Config::~Config() { } -void Config::Load(const char *iniFileName, const char *controllerIniFilename) -{ +void Config::Load(const char *iniFileName, const char *controllerIniFilename) { iniFilename_ = FindConfigFile(iniFileName != NULL ? iniFileName : "ppsspp.ini"); controllerIniFilename_ = FindConfigFile(controllerIniFilename != NULL ? controllerIniFilename : "controls.ini"); @@ -91,7 +91,7 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) IniFile::Section *recent = iniFile.GetOrCreateSection("Recent"); recent->Get("MaxRecent", &iMaxRecent, 30); - + // Fix issue from switching from uint (hex in .ini) to int (dec) if (iMaxRecent == 0) iMaxRecent = 30; @@ -119,7 +119,7 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) #endif cpu->Get("SeparateCPUThread", &bSeparateCPUThread, false); cpu->Get("AtomicAudioLocks", &bAtomicAudioLocks, false); - + #ifdef __SYMBIAN32__ cpu->Get("SeparateIOThread", &bSeparateIOThread, false); #else @@ -130,14 +130,13 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) IniFile::Section *graphics = iniFile.GetOrCreateSection("Graphics"); graphics->Get("ShowFPSCounter", &iShowFPSCounter, false); - graphics->Get("RenderingMode", &iRenderingMode, - // Many ARMv6 devices have serious problems with buffered rendering. -#if defined(ARM) && !defined(ARMV7) - 0 -#else - 1 -#endif - ); // default is buffered rendering mode + + int renderingModeDefault = 1; // Buffered + if (System_GetProperty(SYSPROP_NAME) == "samsung:GT-S5360") { + renderingModeDefault = 0; // Non-buffered + } + + graphics->Get("RenderingMode", &iRenderingMode, renderingModeDefault); graphics->Get("SoftwareRendering", &bSoftwareRendering, false); graphics->Get("HardwareTransform", &bHardwareTransform, true); graphics->Get("TextureFiltering", &iTexFiltering, 1); diff --git a/headless/Headless.cpp b/headless/Headless.cpp index 11d547d0fb..ab15b27a40 100644 --- a/headless/Headless.cpp +++ b/headless/Headless.cpp @@ -326,7 +326,10 @@ int main(int argc, const char* argv[]) g_Config.iInternalResolution = 1; g_Config.bFrameSkipUnthrottle = false; +#ifdef _WIN32 InitSysDirectories(); +#endif + #if defined(ANDROID) #elif defined(BLACKBERRY) || defined(__SYMBIAN32__) #elif !defined(_WIN32) diff --git a/native b/native index 26946b52e7..4c676c3904 160000 --- a/native +++ b/native @@ -1 +1 @@ -Subproject commit 26946b52e774b0853c10074ed078abf4b11cab36 +Subproject commit 4c676c390448de2236c05df7648e9fc175f18896