From: Jesse B. <jes...@in...> - 2007-09-26 18:43:32
|
Per the discussion in the other vblank thread, this patch does several things: - adds a new getMSC hook to __DRIdrawableRec - updates glXGetVideoSyncSGI to use the new hook if present - adds new vblank fields to __DRIdrawablePrivateRec - adds a new driDrawableGetMSC32 vblank.c routine this new function takes a drawable private so it can set pipe flags for example when it calls into the DRM - adds a wrapper for the new vblank.c routine in dri_util.c for symmetry - updates driCreateNewDrawable to init the new vblank fields and set the callback for the new per-drawable getMSC routine - adds a __DriverAPI hook for GetDrawableMSC - updates the drivers to use driDrawableGetMSC32 in their DriverAPI initialization I'm not sure about the compatibility implications of these changes, it seems like touching __DRIdrawableRec and __DriverAPIRec may affect binary compatibility with existing drivers, is there anything else? If compatibility isn't a concern, I can go ahead and remove the per-screen getMSC altogether, along with its associated __DriverAPI function pointers and remove some code. Also, I decided against cleaning up the screen and drawable callback wrappers in dri_util.c. It seems they'll be needed if we ever add full OML extension support. I made the new stuff fit in with that scheme. Any thoughts? Thanks, Jesse include/GL/internal/dri_interface.h | 11 ++++++ src/glx/x11/glxcmds.c | 34 +++++++++++++++----- src/mesa/drivers/dri/common/dri_util.c | 12 +++++++ src/mesa/drivers/dri/common/dri_util.h | 17 ++++++++++ src/mesa/drivers/dri/common/vblank.c | 39 +++++++++++++++++++++-- src/mesa/drivers/dri/common/vblank.h | 3 + src/mesa/drivers/dri/ffb/ffb_xmesa.c | 1 src/mesa/drivers/dri/i810/i810screen.c | 1 src/mesa/drivers/dri/i915/intel_screen.c | 1 src/mesa/drivers/dri/i915tex/intel_screen.c | 1 src/mesa/drivers/dri/i965/intel_blit.c | 3 + src/mesa/drivers/dri/i965/intel_buffers.c | 41 +++++++++++++++++++++++++ src/mesa/drivers/dri/i965/intel_context.c | 14 ++++---- src/mesa/drivers/dri/i965/intel_context.h | 7 ---- src/mesa/drivers/dri/i965/intel_screen.c | 1 src/mesa/drivers/dri/i965/server/i830_common.h | 9 +++++ src/mesa/drivers/dri/mach64/mach64_screen.c | 1 src/mesa/drivers/dri/mga/mga_xmesa.c | 1 src/mesa/drivers/dri/nouveau/nouveau_screen.c | 2 - src/mesa/drivers/dri/r128/r128_screen.c | 1 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_screen.c | 1 24 files changed, 180 insertions(+), 25 deletions(-) |