+
+ // Qt has a bug (QTBUG-76299) where, when using EGL, the surface ignores
+ // the requested OpenGL context version and just becomes 2.0. Mesa honors
+ // this and gives us a 3.0 compatibility context, but then has a bug related
+ // to its shader cache (Mesa bug #110872) that causes spurious linker failures
+ // when we need to re-link a Movit shader in the same context. However,
+ // the surface itself doesn't use the OpenGL version in its format for anything,
+ // so we can just override it and get a proper context.
+ QSurfaceFormat fmt = surface->format();
+ fmt.setProfile(QSurfaceFormat::CoreProfile);
+ fmt.setMajorVersion(4);
+ fmt.setMinorVersion(5);
+ context->setFormat(fmt);
+