i915: Attempt to schedule buffer swap on target vertical blank when possible.
authorMichel Dänzer <michel@daenzer.net>
Thu, 28 Sep 2006 14:07:12 +0000 (14:07 +0000)
committerMichel Dänzer <michel@daenzer.net>
Thu, 28 Sep 2006 14:07:12 +0000 (14:07 +0000)
commitc2f1a1857e553f4d11fc0715bb586f69ac147df0
treef5f5df3cba64993e27dba88a48c48021f8d7eb25
parent7585fc989de1eabe7b978226b8750f912f06778c
i915: Attempt to schedule buffer swap on target vertical blank when possible.

This has some advantages over the traditional way of first waiting for the
target vertical blank and then emitting the buffer swap, e.g.

* glXSwapBuffers returns immediately, only the next time the driver needs the
  hardware lock will it block until the target vertical blank. This should
  allow applications that don't intermix rendering and other processing to
  start processing for the next frame right away.
* It's less likely to produce tearing.
src/mesa/drivers/dri/i915/intel_batchbuffer.c
src/mesa/drivers/dri/i915/intel_context.h