Enable broken IBO fallback for Hisilicon Immersion 16 GPU
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Thu, 28 Nov 2013 14:47:12 +0000 (15:47 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 29 Nov 2013 10:26:52 +0000 (11:26 +0100)
This GPU is on the Huawei Ascend D1 and exhibits crashes
in glDrawElements() when rendering scenegraph when the workaround
is not turned on.

Change-Id: Ic601d34c01e34faaa091a631cfed74c3601c9c43
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
src/quick/scenegraph/qsgcontext.cpp

index afde793..90803db 100644 (file)
@@ -454,6 +454,8 @@ void QSGRenderContext::initialize(QOpenGLContext *context)
     const char *renderer = (const char *) glGetString(GL_RENDERER);
     if (strstr(renderer, "llvmpipe"))
         m_serializedRender = true;
+    if (strstr(vendor, "Hisilicon Technologies") && strstr(renderer, "Immersion.16"))
+        m_brokenIBOs = true;
 #endif
 
     emit initialized();