The existing swap complete event is too large to fit in an XEvent, so use a generic event instead. New servers and clients can use this structure to fully pass the swap count along with the media stamp counter, swap complete type, and timestamp. Signed-off-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> --- configure.ac | 2 +- dri2proto.h | 22 ++++++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 5b78d6b..9505f56 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.60]) -AC_INIT([DRI2Proto], [2.3], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) +AC_INIT([DRI2Proto], [2.4], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE diff --git a/dri2proto.h b/dri2proto.h index 9708a4a..5a7d3e1 100644 --- a/dri2proto.h +++ b/dri2proto.h @@ -35,7 +35,7 @@ #define DRI2_NAME "DRI2" #define DRI2_MAJOR 1 -#define DRI2_MINOR 3 +#define DRI2_MINOR 4 #define DRI2NumberErrors 0 #define DRI2NumberEvents 2 @@ -298,7 +298,25 @@ typedef struct { CARD32 sbc_hi B32; CARD32 sbc_lo B32; } xDRI2BufferSwapComplete; -#define sz_xDRI2BufferSwapComplete 32 +#define sz_xDRI2BufferSwapComplete 32 /* This should have been 36 */ + +/* Use a generic event so we can transmit the sbc_lo value as well */ +typedef struct { + BYTE type; + CARD8 extension; + CARD16 sequenceNumber B16; + CARD32 length B32; /* should always be 8 for this event */ + CARD16 evtype B16; + CARD16 swap_event_type B16; + CARD32 drawable B32; + CARD32 ust_hi B32; + CARD32 ust_lo B32; + CARD32 msc_hi B32; + CARD32 msc_lo B32; + CARD32 sbc_hi B32; + CARD32 sbc_lo B32; +} xDRI2BufferSwapComplete2; +#define sz_xDRI2BufferSwapComplete2 38 typedef struct { CARD8 type; -- 1.7.4.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel