summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThaddeus Crews <repiteo@outlook.com>2024-11-25 13:22:24 -0600
committerThaddeus Crews <repiteo@outlook.com>2024-11-25 13:22:24 -0600
commitfc6c8bb98205e433b27b7ab10e871e4b21000e1d (patch)
treefc193df88f5f99cd23f7eaaaa6a81959b9c21d4b
parent7c9d0300b7e19b53ccf8953f2873a6c416f6c4a6 (diff)
parent8e1a6ea4319e6f38cecc36a06e2e5384678ecf83 (diff)
downloadredot-engine-fc6c8bb98205e433b27b7ab10e871e4b21000e1d.tar.gz
Merge pull request #99688 from akien-mga/revert-99178
Revert "Make `delay_usec` more precise on Windows to fix framepacing"
-rw-r--r--platform/windows/os_windows.cpp20
1 files changed, 4 insertions, 16 deletions
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index a25b7ea4ca..416016b112 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -817,22 +817,10 @@ double OS_Windows::get_unix_time() const {
}
void OS_Windows::delay_usec(uint32_t p_usec) const {
- constexpr uint32_t tolerance = 1000 + 20;
-
- uint64_t t0 = get_ticks_usec();
- uint64_t target_time = t0 + p_usec;
-
- // Calculate sleep duration with a tolerance for fine-tuning.
- if (p_usec > tolerance) {
- uint32_t coarse_sleep_usec = p_usec - tolerance;
- if (coarse_sleep_usec >= 1000) {
- Sleep(coarse_sleep_usec / 1000);
- }
- }
-
- // Spin-wait until we reach the precise target time.
- while (get_ticks_usec() < target_time) {
- YieldProcessor();
+ if (p_usec < 1000) {
+ Sleep(1);
+ } else {
+ Sleep(p_usec / 1000);
}
}