Always use a non-threaded renderer

This ensures we can block Qt's rendering as needed to synchronize with SDL
This commit is contained in:
Cameron Gutman 2021-02-06 14:58:30 -06:00
parent 75b19a60c1
commit 90f7d35150

View File

@ -350,14 +350,15 @@ int main(int argc, char *argv[])
}
#endif
#if defined(Q_OS_DARWIN) && QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
if (!qEnvironmentVariableIsSet("QSG_RHI_BACKEND")) {
// The Metal backend in Qt 6.0.0 causes really strange issues transitioning to
// full-screen in our SDL window (hangs in SDL's Cocoa_SetWindowFullscreenSpace())
// and breaks drawing our status updates in the StreamSegue, so use OpenGL like
// Qt 5 does until we figure out the cause of these issues.
qputenv("QSG_RHI_BACKEND", "opengl");
}
#ifndef Q_OS_WIN32
// Moonlight requires the non-threaded renderer because we depend
// on being able to control the render thread by blocking in the
// main thread (and pumping events from the main thread when needed).
// That doesn't work with the threaded renderer which causes all
// sorts of odd behavior depending on the platform.
//
// NB: Windows uses the special "windows" render loop.
qputenv("QSG_RENDER_LOOP", "basic");
#endif
// We don't want system proxies to apply to us