mesa: Changes to 'master'
Jesse Barnes
jbarnes at kemper.freedesktop.org
Mon Oct 29 19:11:47 UTC 2007
include/GL/internal/dri_interface.h | 14 +++
src/glx/x11/glxcmds.c | 43 ++++++-----
src/mesa/drivers/dri/common/dri_util.c | 14 +++
src/mesa/drivers/dri/common/dri_util.h | 34 +++++++++
src/mesa/drivers/dri/common/vblank.c | 94 ++++++++++++++++++++-----
src/mesa/drivers/dri/common/vblank.h | 6 +
src/mesa/drivers/dri/ffb/ffb_xmesa.c | 1
src/mesa/drivers/dri/i810/i810screen.c | 1
src/mesa/drivers/dri/i915/intel_buffers.c | 55 +++++++++-----
src/mesa/drivers/dri/i915/intel_context.c | 16 ++--
src/mesa/drivers/dri/i915/intel_fbo.h | 2
src/mesa/drivers/dri/i915/intel_screen.c | 1
src/mesa/drivers/dri/i965/intel_blit.c | 3
src/mesa/drivers/dri/i965/intel_buffers.c | 46 ++++++++++++
src/mesa/drivers/dri/i965/intel_context.c | 17 ++--
src/mesa/drivers/dri/i965/intel_context.h | 5 -
src/mesa/drivers/dri/i965/intel_screen.c | 1
src/mesa/drivers/dri/mach64/mach64_context.c | 6 -
src/mesa/drivers/dri/mach64/mach64_context.h | 2
src/mesa/drivers/dri/mach64/mach64_ioctl.c | 4 -
src/mesa/drivers/dri/mach64/mach64_ioctl.h | 2
src/mesa/drivers/dri/mach64/mach64_screen.c | 1
src/mesa/drivers/dri/mga/mga_xmesa.c | 8 +-
src/mesa/drivers/dri/mga/mgacontext.h | 5 -
src/mesa/drivers/dri/mga/mgaioctl.c | 3
src/mesa/drivers/dri/nouveau/nouveau_context.c | 2
src/mesa/drivers/dri/nouveau/nouveau_context.h | 4 -
src/mesa/drivers/dri/nouveau/nouveau_screen.c | 1
src/mesa/drivers/dri/r128/r128_context.c | 6 -
src/mesa/drivers/dri/r128/r128_context.h | 5 -
src/mesa/drivers/dri/r128/r128_ioctl.c | 8 +-
src/mesa/drivers/dri/r128/r128_ioctl.h | 4 -
src/mesa/drivers/dri/r128/r128_screen.c | 1
src/mesa/drivers/dri/r200/r200_context.c | 6 -
src/mesa/drivers/dri/r200/r200_context.h | 5 -
src/mesa/drivers/dri/r200/r200_ioctl.c | 8 +-
src/mesa/drivers/dri/r200/r200_ioctl.h | 4 -
src/mesa/drivers/dri/r300/radeon_context.c | 7 -
src/mesa/drivers/dri/r300/radeon_context.h | 5 -
src/mesa/drivers/dri/r300/radeon_ioctl.c | 8 +-
src/mesa/drivers/dri/r300/radeon_ioctl.h | 4 -
src/mesa/drivers/dri/radeon/radeon_context.c | 3
src/mesa/drivers/dri/radeon/radeon_screen.c | 2
src/mesa/drivers/dri/sis/sis_screen.c | 1
src/mesa/drivers/dri/tdfx/tdfx_screen.c | 1
src/mesa/drivers/dri/unichrome/via_context.c | 6 -
src/mesa/drivers/dri/unichrome/via_context.h | 3
src/mesa/drivers/dri/unichrome/via_ioctl.c | 14 +--
src/mesa/drivers/dri/unichrome/via_ioctl.h | 4 -
src/mesa/drivers/dri/unichrome/via_screen.c | 1
50 files changed, 332 insertions(+), 165 deletions(-)
commit diffs at http://gitweb.freedesktop.org/?p=mesa/mesa.git;a=summary
New commits:
commit ad8ee7db3b406b23136873fc8c87a22e4d8b94de
Merge: 38fdb47d26055e19d50cd407266b56ed4317ae0a 06ca14543ee3dc4ed35a98db71b0d4a7aa7d9371
Author: Jesse Barnes <jesse.barnes at intel.com>
Date: Mon Oct 29 12:06:36 2007 -0700
Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa
commit 38fdb47d26055e19d50cd407266b56ed4317ae0a
Author: Jesse Barnes <jesse.barnes at intel.com>
Date: Mon Oct 29 11:56:31 2007 -0700
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.
More information about the mesa-commit
mailing list