Comment 2 for bug 1176199

Revision history for this message
Albert Astals Cid (aacid) wrote :

Ok, here comes my analysis:

 QSGRenderer::draw contains code like

    if (g->indexDataPattern() != QSGGeometry::AlwaysUploadPattern && g->indexCount() > 512) {
        // Base pointer for a VBO is 0
        indexData = 0;
        ...
    } else {
       ...
    }
    ....
    // draw the stuff...
    ...
    glDrawElements(g->drawingMode(), g->indexCount(), g->indexType(), indexData);

So in some cases uses a VBO passing indexData as 0

Without having libgl1-mesa-dri installed that crashes, with it installed it does not. My guess is that libgl1-mesa-dri adds VBO support and thus can interpret the 0 in indexData as a VBO instead of simply trying to access a NULL pointer