OpenGL 4.6 unable to set surfaceformat
- 
wrote on 23 Jul 2020, 11:13 last edited by
This morning Ubuntu updated Mesa to version 20.0.8. Since this update Qt is unable to set the correct surfaceformat and it will always default to OpenGL 4.6. This leads to a segfault when trying to access any OpenGL function. I have confirmed that OpenGL runs correctly and I am able to select core profile 4.1 on other applications using GLFW.
I set the core format in my Qt application using:
QSurfaceFormat glFormat; glFormat.setProfile(QSurfaceFormat::CoreProfile); glFormat.setVersion(4, 1); glFormat.setOption(QSurfaceFormat::DebugContext); glFormat.setSamples(4); glFormat.setSwapInterval(0); QSurfaceFormat::setDefaultFormat(glFormat);and use a pointer to the QOpenGLFunctions_4_1_core object to handle calls to openGL
When printing the version string using:
QString glVersion; glVersion = reinterpret_cast<const char*>(glGetString(GL_VERSION)); qDebug() << "Using" << qPrintable(glVersion);It will consistently print out:
"Using 4.6 (Core Profile) Mesa 20.0.8"No, matter what major or minor version I set in the surface format. There is also no QOpenGLFunctions_4_6_core available to use instead. Is this a bug in Qt or am I missing a setting somewhere?
 - 
wrote on 27 Jul 2020, 15:44 last edited by
I forgot to mention that this was on Qt 5.10. Upgrading to 5.15 did not solve anything.
 
1/2