diff --git a/src/core/video_presenter.cpp b/src/core/video_presenter.cpp index 184a552ad..cfe84c25b 100644 --- a/src/core/video_presenter.cpp +++ b/src/core/video_presenter.cpp @@ -1439,6 +1439,8 @@ bool VideoPresenter::PresentFrame(GPUBackend* backend, u64 present_time) } GPUSwapChain* const swap_chain = g_gpu_device->GetMainSwapChain(); + DebugAssert(swap_chain); + const GPUDevice::PresentResult pres = ((backend && !FullscreenUI::IsTransitionActive()) ? RenderDisplay(nullptr, swap_chain->GetSizeVec(), true, true) : g_gpu_device->BeginPresent(swap_chain)); diff --git a/src/core/video_thread.cpp b/src/core/video_thread.cpp index 94c6f37cd..c2504a38a 100644 --- a/src/core/video_thread.cpp +++ b/src/core/video_thread.cpp @@ -1014,11 +1014,14 @@ bool VideoThread::Internal::PresentFrameAndRestoreContext() if (s_state.gpu_backend) s_state.gpu_backend->FlushRender(); - if (!VideoPresenter::PresentFrame(s_state.gpu_backend.get(), 0)) - return false; + if (g_gpu_device->HasMainSwapChain()) + { + if (!VideoPresenter::PresentFrame(s_state.gpu_backend.get(), 0)) + return false; - if (s_state.gpu_backend) - s_state.gpu_backend->RestoreDeviceContext(); + if (s_state.gpu_backend) + s_state.gpu_backend->RestoreDeviceContext(); + } return true; }