mesa/include/GL
Jesse Barnes 38fdb47d26 Refactor and fix core vblank support
Consolidate support for synchronizing to and retrieving vblank counters.  Also
fix the core vblank code to return monotonic MSC counters, which are required
by some GLX extensions.  Adding support for multiple pipes to a low level
driver is fairly easy, the Intel 965 driver provides simple example code (see
intel_buffers.c:intelWindowMoved()).

The new code bumps the media stream counter extension version to 2 and adds a
new getDrawableMSC callback.  This callback takes a drawablePrivate pointer,
which is used to calculate the MSC value seen by clients based on the actual
vblank counter(s) returned from the kernel.  The new drawable private fields
are as follows:
  - vblSeq - used for tracking vblank counts for buffer swapping
  - vblFlags - flags (e.g. current pipe), updated by low level driver
  - msc_base - MSC counter from the last time the current pipe changed
  - vblank_base - kernel DRM vblank counter from the last time the pipe changed

Using the above variables, the core vblank code (in vblank.c) can calculate a
monotonic MSC value.  The low level DRI drivers are responsible for updating
the current pipe (by setting VBLANK_FLAG_SECONDARY for example in vblFlags)
along with msc_base and vblank_base whenever the pipe associated with a given
drawable changes (again, see intelWindowMoved for an example of this).

Drivers should fill in the GetDrawableMSC DriverAPIRec field to point to
driDrawableGetMSC32 and add code for pipe switching as outlined above to fully
support the new scheme.
2007-10-29 12:06:00 -07:00
..
internal Refactor and fix core vblank support 2007-10-29 12:06:00 -07:00
amesa.h Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything. 2003-06-05 00:50:18 +00:00
directfbgl.h DirectFB driver (Claudio Ciccani) 2005-01-03 15:35:00 +00:00
dmesa.h DMesa now uses OSMesa as a back-end. 2006-03-31 20:53:12 +00:00
foomesa.h Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything. 2003-06-05 00:50:18 +00:00
fxmesa.h bump version numbers to their real values 2004-10-12 06:43:57 +00:00
ggimesa.h Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything. 2003-06-05 00:50:18 +00:00
gl.h more Mingw32 fixes 2007-07-27 11:19:35 -06:00
gl_mangle.h regenerated 2007-06-29 07:53:11 -06:00
glext.h updated version with new Khronos license/copyright 2007-02-26 09:19:32 -07:00
glfbdev.h Added initial multisampling support to glfbdev driver. 2006-08-10 10:21:17 +00:00
glu.h Unbreak Linux builds with -fvisibility=hidden. 2007-08-23 18:38:02 -04:00
glu_mangle.h Add missing entry points. (Warren Cashen) 2003-10-10 22:09:05 +00:00
glut.h more Mingw32 fixes 2007-07-27 11:19:35 -06:00
glut_h.dja Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything. 2003-06-05 00:50:18 +00:00
glutf90.h Add glut_fcb.c to the build and update to fix warnings (see bug 12405) 2007-09-12 13:40:15 -06:00
glx.h updated GLX_EXT_texture_from_pixmap tokens (Dave Reveman) 2006-05-05 18:19:54 +00:00
glx_mangle.h added 1.3/1.4 function mangling 2006-11-03 18:29:39 +00:00
glxext.h import glxext.h version 19 2007-04-22 15:32:10 -06:00
Makefile.am * common_rules.make: Created to hold the conditional build rule 2001-03-20 00:33:18 +00:00
mesa_wgl.h more Mingw32 fixes 2007-07-27 11:19:35 -06:00
mglmesa.h Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything. 2003-06-05 00:50:18 +00:00
miniglx.h add more functionality to miniglx for glitz 2005-02-20 10:46:34 +00:00
osmesa.h bump version number 2005-12-08 14:51:36 +00:00
svgamesa.h Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything. 2003-06-05 00:50:18 +00:00
uglglutshapes.h WindML driver (Stephane Raimbault) 2001-08-20 16:07:10 +00:00
uglmesa.h bump versions to 4.0 2001-09-23 16:06:13 +00:00
vms_x_fix.h OpenVMS compile support update 2006-09-04 06:26:08 +00:00
wmesa.h Fixes from Brian 2006-03-30 07:53:15 +00:00
xmesa.h Fix xserver build after recent XMesa changes. 2007-05-22 13:56:30 +02:00
xmesa_x.h Fix xserver build after recent XMesa changes. 2007-05-22 13:56:30 +02:00
xmesa_xf86.h add glxtokens.h to xmesa_xf86.h as discussed on mailing list 2007-05-26 15:58:56 +10:00