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
Ok, here comes my analysis:
QSGRenderer::draw contains code like
if (g->indexDataPa ttern() != QSGGeometry: :AlwaysUploadPa ttern && g->indexCount() > 512) { nts(g-> drawingMode( ), g->indexCount(), g->indexType(), indexData);
// Base pointer for a VBO is 0
indexData = 0;
...
} else {
...
}
....
// draw the stuff...
...
glDrawEleme
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