intel: Use the new DRI2 flush invalidate entrypoint to signal frame done.
authorEric Anholt <eric@anholt.net>
Tue, 19 Jan 2010 18:55:21 +0000 (10:55 -0800)
committerEric Anholt <eric@anholt.net>
Tue, 19 Jan 2010 19:07:51 +0000 (11:07 -0800)
commit7d4e674b212c9dc6408c13913a399bd4a2b9a1e3
tree168659378328406f262d4a7011bb04ac517294c9
parenta7aaf052f935cb51b7b616a7a764c57fc01b2821
intel: Use the new DRI2 flush invalidate entrypoint to signal frame done.

Previously for frame throttling we would wait on the first batch after
a swap before emitting another swap, because we had no hook after a
swap was emitted.  This meant that if an app managed to squeeze
everything it for a frame had into one batch, it would lock-step with
the GPU.  With the swapbuffers changes, we now have the entrypoint we
want.

This takes the WoW intro screen from 25% GPU idle and visibly jerky to
4-5% GPU idle and rather smooth.  Other apps such as OpenArena have
run into this problem as well.
src/mesa/drivers/dri/intel/intel_context.c
src/mesa/drivers/dri/intel/intel_screen.c