diff --git a/app/backend/systemproperties.cpp b/app/backend/systemproperties.cpp index 1140c93e..7dd54e26 100644 --- a/app/backend/systemproperties.cpp +++ b/app/backend/systemproperties.cpp @@ -184,9 +184,6 @@ void SystemProperties::startAsyncLoad() return; } - // Update display related attributes (max FPS, native resolution, etc). - refreshDisplays(); - testWindow = SDL_CreateWindow("", 0, 0, 1280, 720, SDL_WINDOW_HIDDEN | StreamUtils::getPlatformWindowFlags()); if (!testWindow) { @@ -204,6 +201,13 @@ void SystemProperties::startAsyncLoad() } } + // Update display related attributes (max FPS, native resolution, etc). + // + // NB: SDL3 will forcefully refresh displays when a window is created, + // so we place this after the window creation to ensure we don't pay + // the penalty for mode enumeration twice. + refreshDisplays(); + systemPropertyQueryThread = new SystemPropertyQueryThread(this); systemPropertyQueryThread->start(); }