From 35e075e9796342ff80ccbd36dce6298e86a41d83 Mon Sep 17 00:00:00 2001 From: kappa1 Date: Wed, 21 Mar 2012 19:34:51 +0000 Subject: [PATCH] Display.sync() fix excessive CPU using on windows --- src/java/org/lwjgl/opengl/Display.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/java/org/lwjgl/opengl/Display.java b/src/java/org/lwjgl/opengl/Display.java index 522f5290..c0591d94 100644 --- a/src/java/org/lwjgl/opengl/Display.java +++ b/src/java/org/lwjgl/opengl/Display.java @@ -451,8 +451,12 @@ public final class Display { // increase by 200 microseconds (1/5 a ms) adaptiveYieldTime = Math.min(adaptiveYieldTime + 200*1000, sleepTime); } + else if (overSleep < adaptiveYieldTime - 2*1000*1000) { + // fast decrease by 50 microseconds for large under sleeps + adaptiveYieldTime = Math.max(adaptiveYieldTime - 50*1000, 0); + } else if (overSleep < adaptiveYieldTime - 200*1000) { - // decrease by 5 microseconds + // slower but finer decrease by 2 microseconds adaptiveYieldTime = Math.max(adaptiveYieldTime - 2*1000, 0); } }