Disable usage of glTexStorage on Mali ES 3.0
Even though immutable storage is available and the glTexStorage2D seems to succeed, the subsequent glTexSubImage2D calls always fail with GL_INVALID_OPERATION. Falling back to mutable storage works just fine. This makes QOpenGLTexture and examples like qtbase's textures functional on Mali T628 (tested with Odroid XU-3). Task-number: QTBUG-45106 Change-Id: If1b4fe6673ba924cfa7cfd7af7d4f0bc3b6a0fe8 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This commit is contained in:
parent
ba287c55ef
commit
7715ce9fab
@ -3278,10 +3278,11 @@ bool QOpenGLTexture::hasFeature(Feature feature)
|
|||||||
if (ctx->isOpenGLES())
|
if (ctx->isOpenGLES())
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
const char *renderer = reinterpret_cast<const char *>(ctx->functions()->glGetString(GL_RENDERER));
|
||||||
switch (feature) {
|
switch (feature) {
|
||||||
case ImmutableStorage:
|
case ImmutableStorage:
|
||||||
supported = f.version() >= qMakePair(3, 0)
|
supported = (f.version() >= qMakePair(3, 0) || ctx->hasExtension(QByteArrayLiteral("EXT_texture_storage")))
|
||||||
|| ctx->hasExtension(QByteArrayLiteral("EXT_texture_storage"));
|
&& !(renderer && strstr(renderer, "Mali")); // do not use on Mali: QTBUG-45106
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ImmutableMultisampleStorage:
|
case ImmutableMultisampleStorage:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user