GPUThread: Fix starting big picture mode

This commit is contained in:
Stenzek 2025-01-23 12:37:26 +10:00
parent 4da1f613b6
commit 13c7b8542d
No known key found for this signature in database
1 changed files with 7 additions and 4 deletions

View File

@ -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);