diff --git a/src/core/gpu_thread.cpp b/src/core/gpu_thread.cpp index 00d8f57c7..7e26c5716 100644 --- a/src/core/gpu_thread.cpp +++ b/src/core/gpu_thread.cpp @@ -537,6 +537,13 @@ void GPUThread::Internal::GPUThreadEntryPoint() void GPUThread::Internal::DoRunIdle() { + if (!g_gpu_device->HasMainSwapChain()) [[unlikely]] + { + // only happens during language switch + Timer::NanoSleep(16 * 1000 * 1000); + return; + } + if (!PresentFrameAndRestoreContext()) return;