diff options
author | ExMix <rahuba.youri@mapswithme.com> | 2013-06-11 13:52:50 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:56:33 +0300 |
commit | 73db2991b6639631c542ef1bfc51beacd905c79f (patch) | |
tree | 8b60a18b7d4daac54b8f843c866fcebf020140b4 /graphics | |
parent | 0717b9bd85edad4f7008f9ba491acb1742ff4056 (diff) |
Stronger matching of OpenGL driver. Increase speed for Nexus S
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/resource_manager.cpp | 15 | ||||
-rw-r--r-- | graphics/resource_manager.hpp | 2 |
2 files changed, 14 insertions, 3 deletions
diff --git a/graphics/resource_manager.cpp b/graphics/resource_manager.cpp index 769c6fa3aa..f197fba3b7 100644 --- a/graphics/resource_manager.cpp +++ b/graphics/resource_manager.cpp @@ -217,6 +217,7 @@ namespace GetGLStringSafe(GL_VENDOR, m_vendorName); GetGLStringSafe(GL_RENDERER, m_rendererName); + GetGLStringSafe(GL_VERSION, m_versionName); } bool ResourceManager::Params::isGPU(char const * vendorName, char const * rendererName, bool strictMatch) const @@ -231,6 +232,14 @@ namespace && (m_rendererName.find(rendererName) != string::npos); } + bool ResourceManager::Params::isGPUVersion(char const * vendorName, char const * rendererName, char const * version) + { + LOG(LINFO, ("Version name =", m_versionName)); + return (m_vendorName == string(vendorName)) + && (m_rendererName == string(rendererName)) + && (m_versionName == string(version)); + } + void ResourceManager::Params::checkDeviceCaps() { /// general case @@ -261,12 +270,12 @@ namespace m_texRtFormat = graphics::Data8Bpp; } -#ifdef OMIM_OS_ANDROID +//#ifdef OMIM_OS_ANDROID // on PowerVR chips on Android glFinish doesn't work, so we should use // glReadPixels instead of glFinish to synchronize. - if (isGPU("Imagination Technologies", "PowerVR SGX 540", false)) + if (isGPUVersion("Imagination Technologies", "PowerVR SGX 540", "OpenGL ES 2.0")) m_useReadPixelsToSynchronize = true; -#endif +//#endif LOG(LINFO, ("selected", graphics::formatName(m_texRtFormat), "format for tile textures")); diff --git a/graphics/resource_manager.hpp b/graphics/resource_manager.hpp index 6046ec9b8a..75eda9b086 100644 --- a/graphics/resource_manager.hpp +++ b/graphics/resource_manager.hpp @@ -175,9 +175,11 @@ namespace graphics string m_vendorName; string m_rendererName; + string m_versionName; /// check non-strict matching upon vendorName and rendererName bool isGPU(char const * vendorName, char const * rendererName, bool strictMatch) const; + bool isGPUVersion(char const * vendorName, char const * rendererName, char const * version); public: |