[i915] Prevent recursive batchbuffer flushing.
authorKristian Høgsberg <krh@temari.boston.redhat.com>
Tue, 15 Jan 2008 15:23:15 +0000 (10:23 -0500)
committerKristian Høgsberg <krh@temari.boston.redhat.com>
Tue, 15 Jan 2008 15:24:04 +0000 (10:24 -0500)
commitbb73cf9ec093d734cbed956d843ef6c2982141ef
tree0c79f8b9c62a0644465d0d90efcdc0a22e139af0
parent3ad9ca8240ffa32a8dfbfffd0cfb1d0384e04a9f
[i915] Prevent recursive batchbuffer flushing.

Workaround for recursive batchbuffer flushing: If the window is
moved, we can get into a case where we try to flush during a
flush.  What happens is that when we try to grab the lock for
the first flush, we detect that the window moved which then
causes another flush (from the intel_draw_buffer() call in
intelUpdatePageFlipping()).  To work around this we reset the
batchbuffer tail pointer before trying to get the lock.  This
prevent the nested buffer flush, but a better fix would be to
avoid that in the first place.
src/mesa/drivers/dri/intel/intel_batchbuffer.c