xserver/hw
Mario Kleiner 75beadd766 DRI2/xserver: Don't hang in glXSwapBuffers if drawable moves between crtc's (bug 28383)
Detect if a drawable has been moved from an original crtc to a new crtc
with a lower current vblank count than the original crtc inbetween
glXSwapBuffers() calls. Reinitialize drawable's last_swap_target
before scheduling next swap if such a move has taken place.

last_swap_target defines the baseline for scheduling the next swap.
If a movement between crtc's is not taken into account, the swap may
schedule for a vblank count on the new crtc far in the future, resulting
in a apparent "hang" of the drawable for a long time.

Fixes Bugzilla bug #28383.

Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-06-17 23:54:27 -07:00
..
dmx dmx: Get rid of xstrdup when argument is definitely non-NULL 2010-06-11 19:04:23 +07:00
kdrive Re-enabled Xnest fix for focus in + modifier bug. 2010-06-16 11:16:05 +10:00
vfb Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
xfree86 DRI2/xserver: Don't hang in glXSwapBuffers if drawable moves between crtc's (bug 28383) 2010-06-17 23:54:27 -07:00
xnest Fix a couple more possible errors with input-only windows 2010-06-10 19:15:28 -07:00
xquartz xquartz: Get rid of xstrdup when argument is definitely non-NULL 2010-06-11 19:04:23 +07:00
xwin Remove more superfluous if(p) checks around free(p) 2010-06-11 19:05:46 +07:00
Makefile.am Catch errors in recursive relink targets 2010-03-22 00:45:57 -05:00