QQuickWidget operates the following way:
- Create a QQuickView. The underlying platform window is never created.
- Create an offscreen surface. On systems with support for pbuffer surfaces (EGL) this will be backed by a pbuffer surface.
- Create a context.
On systems where the EGL implementation offers both 16 and 24-bit pbuffer surfaces but only 24-bit window surfaces, the context and the pbuffer surface will have incompatible configurations, unless the a 888 format was explicitly requested via QQuickWidget::setFormat().
With the default settings the 16-bit configs are chosen. Which means that the pbuffer will use a 16-bit EGLConfig while the window/context a 24 (or 32) bit one.
Generally this is not an issue since a QOffscreenSurface is usually created after having a context, from which the actual format can be queried (via QOpenGLContext::format()).
For QQuickWidget this is not the case. There is neither a context nor a (platform) window available when creating the QOffscreenSurface. Hence we cannot know what underlying configuration the context and window would use...
|For Gerrit Dashboard: QTBUG-39474|
|86884,2||Fix QQuickWidget offscreen surface format and creation order||stable||qt/qtdeclarative||Status: MERGED||+2||0|