Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorExMix <rahuba.youri@mapswithme.com>2013-06-11 13:52:50 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:56:33 +0300
commit73db2991b6639631c542ef1bfc51beacd905c79f (patch)
tree8b60a18b7d4daac54b8f843c866fcebf020140b4 /graphics
parent0717b9bd85edad4f7008f9ba491acb1742ff4056 (diff)
Stronger matching of OpenGL driver. Increase speed for Nexus S
Diffstat (limited to 'graphics')
-rw-r--r--graphics/resource_manager.cpp15
-rw-r--r--graphics/resource_manager.hpp2
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: