From 13c7b8542d4e4bb6010b38d3cafdae26520887cf Mon Sep 17 00:00:00 2001 From: Stenzek Date: Thu, 23 Jan 2025 12:37:26 +1000 Subject: [PATCH] GPUThread: Fix starting big picture mode --- src/core/gpu_thread.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/core/gpu_thread.cpp b/src/core/gpu_thread.cpp index 3afb80303..008e6bc10 100644 --- a/src/core/gpu_thread.cpp +++ b/src/core/gpu_thread.cpp @@ -814,19 +814,22 @@ bool GPUThread::CreateGPUBackendOnThread(GPURenderer renderer, bool upload_vram, void GPUThread::ReconfigureOnThread(GPUThreadReconfigureCommand* cmd) { + // Store state. + s_state.requested_vsync = cmd->vsync_mode; + s_state.requested_allow_present_throttle = cmd->allow_present_throttle; + s_state.requested_fullscreen_ui = cmd->start_fullscreen_ui.value_or(s_state.requested_fullscreen_ui); + // Are we shutting down everything? if (!cmd->renderer.has_value() && !s_state.requested_fullscreen_ui) { DestroyGPUBackendOnThread(); DestroyGPUPresenterOnThread(); DestroyDeviceOnThread(true); + s_state.game_serial = {}; return; } - // Store state. - s_state.requested_vsync = cmd->vsync_mode; - s_state.requested_allow_present_throttle = cmd->allow_present_throttle; - s_state.requested_fullscreen_ui = cmd->start_fullscreen_ui.value_or(s_state.requested_fullscreen_ui); + // Serial clear must be after backend destroy, otherwise textures won't dump. s_state.game_serial = std::move(cmd->game_serial); g_gpu_settings = std::move(cmd->settings);