From 1d34edf525bf5a186e13b103b6a52a201ac67198 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Mon, 19 Jan 2026 09:43:54 +0200 Subject: [PATCH] Process system events during boot splash wait time. --- main/main.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/main/main.cpp b/main/main.cpp index 064c20dab4..687fd828e8 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -4724,11 +4724,18 @@ int Main::start() { GDExtensionManager::get_singleton()->startup(); if (minimum_time_msec) { - uint64_t minimum_time = 1000 * minimum_time_msec; - uint64_t elapsed_time = OS::get_singleton()->get_ticks_usec(); - if (elapsed_time < minimum_time) { - OS::get_singleton()->delay_usec(minimum_time - elapsed_time); + int64_t minimum_time = 1000 * minimum_time_msec; + uint64_t prev_time = OS::get_singleton()->get_ticks_usec(); + while (minimum_time > 0) { + DisplayServer::get_singleton()->process_events(); + OS::get_singleton()->delay_usec(100); + + uint64_t next_time = OS::get_singleton()->get_ticks_usec(); + minimum_time -= (next_time - prev_time); + prev_time = next_time; } + } else { + DisplayServer::get_singleton()->process_events(); } OS::get_singleton()->benchmark_end_measure("Startup", "Main::Start");