summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2014-08-26 17:25:26 +0200
committerYoann Lopes <yoann.lopes@digia.com>2014-08-27 15:15:55 +0200
commit4dc751360a605f010fd5031e95302bed3317d5e6 (patch)
tree638ba248c37e25387a8b8ba2b6ac4f19dcb46346
parent4c6ebe5f9e4ddc0d799a0f2bf4aef9f7e48e0dfb (diff)
Android: added more devices to the FBO readback workaround check.
Task-number: QTBUG-40483 Change-Id: I7f3d375934a57fe3ac58ae35cb00d394349cb33f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
-rw-r--r--src/plugins/platforms/android/qandroidplatformopenglcontext.cpp11
-rw-r--r--src/plugins/platforms/android/qandroidplatformopenglcontext.h2
2 files changed, 9 insertions, 4 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformopenglcontext.cpp b/src/plugins/platforms/android/qandroidplatformopenglcontext.cpp
index f27bea8863..a352d3ebb8 100644
--- a/src/plugins/platforms/android/qandroidplatformopenglcontext.cpp
+++ b/src/plugins/platforms/android/qandroidplatformopenglcontext.cpp
@@ -64,7 +64,7 @@ void QAndroidPlatformOpenGLContext::swapBuffers(QPlatformSurface *surface)
static_cast<QAndroidPlatformOpenGLWindow *>(surface)->checkNativeSurface(eglConfig());
}
-bool QAndroidPlatformOpenGLContext::needsFBOReadBackWorkaroud()
+bool QAndroidPlatformOpenGLContext::needsFBOReadBackWorkaround()
{
static bool set = false;
static bool needsWorkaround = false;
@@ -74,7 +74,12 @@ bool QAndroidPlatformOpenGLContext::needsFBOReadBackWorkaroud()
needsWorkaround =
qstrncmp(rendererString, "Mali-4xx", 6) == 0 // Mali-400, Mali-450
|| qstrncmp(rendererString, "Adreno (TM) 2xx", 13) == 0 // Adreno 200, 203, 205
- || qstrcmp(rendererString, "GC1000 core") == 0;
+ || qstrncmp(rendererString, "Adreno 2xx", 8) == 0 // Same as above but without the '(TM)'
+ || qstrncmp(rendererString, "Adreno (TM) 30x", 14) == 0 // Adreno 302, 305
+ || qstrncmp(rendererString, "Adreno 30x", 9) == 0 // Same as above but without the '(TM)'
+ || qstrcmp(rendererString, "GC800 core") == 0
+ || qstrcmp(rendererString, "GC1000 core") == 0
+ || qstrcmp(rendererString, "Immersion.16") == 0;
set = true;
}
@@ -90,7 +95,7 @@ bool QAndroidPlatformOpenGLContext::makeCurrent(QPlatformSurface *surface)
if (rendererString != 0 && qstrncmp(rendererString, "Android Emulator", 16) == 0)
ctx_d->workaround_missingPrecisionQualifiers = true;
- if (!ctx_d->workaround_brokenFBOReadBack && needsFBOReadBackWorkaroud())
+ if (!ctx_d->workaround_brokenFBOReadBack && needsFBOReadBackWorkaround())
ctx_d->workaround_brokenFBOReadBack = true;
return ret;
diff --git a/src/plugins/platforms/android/qandroidplatformopenglcontext.h b/src/plugins/platforms/android/qandroidplatformopenglcontext.h
index 10a89d541b..b734cb4db9 100644
--- a/src/plugins/platforms/android/qandroidplatformopenglcontext.h
+++ b/src/plugins/platforms/android/qandroidplatformopenglcontext.h
@@ -57,7 +57,7 @@ public:
private:
virtual EGLSurface eglSurfaceForPlatformSurface(QPlatformSurface *surface);
- static bool needsFBOReadBackWorkaroud();
+ static bool needsFBOReadBackWorkaround();
};
QT_END_NAMESPACE