diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp index 9166183fab..0ec6a39980 100644 --- a/src/Gui/Application.cpp +++ b/src/Gui/Application.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -2383,6 +2384,12 @@ void Application::runApplication() { StartupProcess::setupApplication(); + QSurfaceFormat fmt; + fmt.setRenderableType(QSurfaceFormat::OpenGL); + fmt.setProfile(QSurfaceFormat::CompatibilityProfile); + fmt.setOption(QSurfaceFormat::DeprecatedFunctions, true); + QSurfaceFormat::setDefaultFormat(fmt); + // A new QApplication Base::Console().log("Init: Creating Gui::Application and QApplication\n"); diff --git a/src/Gui/Quarter/QuarterWidget.cpp b/src/Gui/Quarter/QuarterWidget.cpp index b69b87ca5d..eb48673618 100644 --- a/src/Gui/Quarter/QuarterWidget.cpp +++ b/src/Gui/Quarter/QuarterWidget.cpp @@ -160,6 +160,15 @@ public: //surfaceFormat.setMajorVersion(3); //surfaceFormat.setMinorVersion(2); //surfaceFormat.setProfile(QSurfaceFormat::CoreProfile); + + // On Wayland, we typically get a core profile unless we explicitly + // request a compatibility profile. On llvmpipe, this still seems to + // "just work" even if out of spec; on proprietary Nvidia drivers, it + // does not. + surfaceFormat.setRenderableType(QSurfaceFormat::OpenGL); + surfaceFormat.setProfile(QSurfaceFormat::CompatibilityProfile); + surfaceFormat.setOption(QSurfaceFormat::DeprecatedFunctions, true); + #if defined (_DEBUG) && 0 surfaceFormat.setOption(QSurfaceFormat::DebugContext); #endif