From 9d5f25f82826accd849149a7a434706a6d684e42 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 30 Nov 2025 23:18:38 -0600 Subject: [PATCH] Don't use separate threads for querying SDL video info This is no longer necessary now that we force Qt and SDL to use EGL. --- app/backend/systemproperties.cpp | 61 +------------------------------- app/backend/systemproperties.h | 2 -- 2 files changed, 1 insertion(+), 62 deletions(-) diff --git a/app/backend/systemproperties.cpp b/app/backend/systemproperties.cpp index 554f4334..73e67c11 100644 --- a/app/backend/systemproperties.cpp +++ b/app/backend/systemproperties.cpp @@ -95,36 +95,7 @@ int SystemProperties::getRefreshRate(int displayIndex) return monitorRefreshRates.value(displayIndex); } -class QuerySdlVideoThread : public QThread -{ -public: - QuerySdlVideoThread(SystemProperties* me) : - QThread(nullptr), - m_Me(me) {} - - void run() override - { - m_Me->querySdlVideoInfoInternal(); - } - - SystemProperties* m_Me; -}; - void SystemProperties::querySdlVideoInfo() -{ - if (WMUtils::isRunningX11() || WMUtils::isRunningWayland()) { - // Use a separate thread to temporarily initialize SDL - // video to avoid stomping on Qt's X11 and OGL state. - QuerySdlVideoThread thread(this); - thread.start(); - thread.wait(); - } - else { - querySdlVideoInfoInternal(); - } -} - -void SystemProperties::querySdlVideoInfoInternal() { hasHardwareAcceleration = false; @@ -136,8 +107,7 @@ void SystemProperties::querySdlVideoInfoInternal() } // Update display related attributes (max FPS, native resolution, etc). - // We call the internal variant because we're already in a safe thread context. - refreshDisplaysInternal(); + refreshDisplays(); SDL_Window* testWindow = SDL_CreateWindow("", 0, 0, 1280, 720, SDL_WINDOW_HIDDEN | StreamUtils::getPlatformWindowFlags()); @@ -163,36 +133,7 @@ void SystemProperties::querySdlVideoInfoInternal() SDL_QuitSubSystem(SDL_INIT_VIDEO); } -class RefreshDisplaysThread : public QThread -{ -public: - RefreshDisplaysThread(SystemProperties* me) : - QThread(nullptr), - m_Me(me) {} - - void run() override - { - m_Me->refreshDisplaysInternal(); - } - - SystemProperties* m_Me; -}; - void SystemProperties::refreshDisplays() -{ - if (WMUtils::isRunningX11() || WMUtils::isRunningWayland()) { - // Use a separate thread to temporarily initialize SDL - // video to avoid stomping on Qt's X11 and OGL state. - RefreshDisplaysThread thread(this); - thread.start(); - thread.wait(); - } - else { - refreshDisplaysInternal(); - } -} - -void SystemProperties::refreshDisplaysInternal() { if (SDL_InitSubSystem(SDL_INIT_VIDEO) != 0) { SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, diff --git a/app/backend/systemproperties.h b/app/backend/systemproperties.h index dd4ec6ce..fd2029c3 100644 --- a/app/backend/systemproperties.h +++ b/app/backend/systemproperties.h @@ -38,8 +38,6 @@ signals: private: void querySdlVideoInfo(); - void querySdlVideoInfoInternal(); - void refreshDisplaysInternal(); bool hasHardwareAcceleration; bool rendererAlwaysFullScreen;