Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.3.0
-
None
-
13be09c97fe235ac8f453cbee9c1f794b6815db5
Description
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...