From f0000349e7ccc2f5393150e6c615043aa6846f9a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 14 Nov 2003 08:29:37 +0000 Subject: Eliminate all delays in updates; let the X server scheduling handle things. --- ChangeLog | 6 ++++++ xcompmgr.c | 14 +++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index dc254bc..c29412a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-11-14 Keith Packard + + * xcompmgr.c: (main): + Eliminate all delays in updates; let the X server scheduling + handle things. + 2003-11-13 Keith Packard * xcompmgr.c: diff --git a/xcompmgr.c b/xcompmgr.c index 20cc534..f8b1f25 100644 --- a/xcompmgr.c +++ b/xcompmgr.c @@ -768,7 +768,7 @@ time_in_millis () return(tp.tv_sec * 1000) + (tp.tv_usec / 1000); } -#define INTERVAL 10 +#define INTERVAL 0 main () { @@ -792,7 +792,9 @@ main () int n; int last_update; int now; +#if INTERVAL int timeout; +#endif dpy = XOpenDisplay (0); if (!dpy) @@ -863,15 +865,21 @@ main () XFree (children); XUngrabServer (dpy); paint_all (dpy, None); +#if INTERVAL last_update = time_in_millis (); +#endif for (;;) { +#if INTERVAL int busy_start = 0; +#endif /* dump_wins (); */ do { XNextEvent (dpy, &ev); +#if INTERVAL if (!busy_start) busy_start = time_in_millis(); +#endif /* printf ("event %d\n", ev.type); */ switch (ev.type) { case CreateNotify: @@ -943,6 +951,7 @@ main () break; } } while (XEventsQueued (dpy, QueuedAfterReading)); +#if INTERVAL now = time_in_millis (); /* printf ("\t\tbusy %d\n", now - busy_start); */ timeout = INTERVAL - (now - last_update); @@ -954,11 +963,14 @@ main () if (n > 0 && (ufd.revents & POLLIN) && XEventsQueued (dpy, QueuedAfterReading)) continue; } +#endif if (allDamage) { +#if INTERVAL int old_update = last_update; last_update = time_in_millis(); /* printf ("delta %d\n", last_update - old_update); */ +#endif paint_all (dpy, allDamage); allDamage = None; } -- cgit v1.2.3