diff --git a/src/frontend/qt_sdl/main.cpp b/src/frontend/qt_sdl/main.cpp
index b88e7e2f..cb7249f2 100644
--- a/src/frontend/qt_sdl/main.cpp
+++ b/src/frontend/qt_sdl/main.cpp
@@ -379,6 +379,14 @@ void EmuThread::updateScreenSettings(bool filter, const WindowInfo& windowInfo,
 {
     screenSettingsLock.lock();
 
+    if (lastScreenWidth != windowInfo.surface_width || lastScreenHeight != windowInfo.surface_height)
+    {
+        if (oglContext)
+            oglContext->ResizeSurface(windowInfo.surface_width, windowInfo.surface_height);
+        lastScreenWidth = windowInfo.surface_width;
+        lastScreenHeight = windowInfo.surface_height;
+    }
+
     this->filter = filter;
     this->windowInfo = windowInfo;
     this->numScreens = numScreens;
@@ -553,16 +561,6 @@ void EmuThread::run()
             }
         }
 
-        screenSettingsLock.lock();
-        if (lastScreenWidth != windowInfo.surface_width || lastScreenHeight != windowInfo.surface_height)
-        {
-            if (oglContext)
-                oglContext->ResizeSurface(windowInfo.surface_width, windowInfo.surface_height);
-            lastScreenWidth = windowInfo.surface_width;
-            lastScreenHeight = windowInfo.surface_height;
-        }
-        screenSettingsLock.unlock();
-
         if (EmuRunning == 1 || EmuRunning == 3)
         {
             EmuStatus = 1;
diff --git a/src/frontend/qt_sdl/main.h b/src/frontend/qt_sdl/main.h
index 51b07fc7..9ec5c04f 100644
--- a/src/frontend/qt_sdl/main.h
+++ b/src/frontend/qt_sdl/main.h
@@ -112,8 +112,7 @@ private:
     int numScreens;
     bool filter;
 
-    int lastScreenWidth = -1;
-    int lastScreenHeight = -1;
+    int lastScreenWidth = -1, lastScreenHeight = -1;
 };