diff --git a/app/main.cpp b/app/main.cpp index 5bf3a1b1..42a9a345 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -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