[PATCH] glxproto: make GLX swap event struct match spec

Jesse Barnes jbarnes at virtuousgeek.org
Tue May 3 14:08:58 PDT 2011


On Tue, 3 May 2011 14:02:31 -0700
Jesse Barnes <jbarnes at virtuousgeek.org> wrote:

> On Tue, 03 May 2011 13:54:38 -0700
> Keith Packard <keithp at keithp.com> wrote:
> 
> > On Tue,  3 May 2011 12:21:24 -0700, Jesse Barnes <jbarnes at virtuousgeek.org> wrote:
> > 
> > > We only spec a 32 bit swap count, so drop the high sbc field.
> > 
> > You're missing the explicit 16-bit padding field after 'event_type'
> > 
> > The documented encoding
> > http://www.opengl.org/registry/specs/INTEL/swap_event.txt needs to be
> > fixed to match this, it has the padding at the end which leaves most of
> > the structure mis-aligned.
> 
> Right, another case where we updated the spec incorrectly then failed
> to make the code match the broken definition (the complete enums also
> need to match the final values, which are correct in the first part of
> the spec).  Yay for divergence.

Fixed version below.

-- 
Jesse Barnes, Intel Open Source Technology Center

From f5403828c68af0f12c79c0504df0a4781ca84b2b Mon Sep 17 00:00:00 2001
From: Jesse Barnes <jbarnes at virtuousgeek.org>
Date: Tue, 3 May 2011 12:14:10 -0700
Subject: [PATCH] glxproto: make GLX swap event struct match spec

We only spec a 32 bit swap count, so drop the high sbc field.  Also make
the padding explicit (most compilers would have already done this since
it's not a packed structure, but making it explicit should prevent
surprises in the future).

Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
---
 configure.ac |    2 +-
 glxproto.h   |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index d88e6df..a3047e4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ([2.60])
-AC_INIT([GLProto], [1.4.12], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([GLProto], [1.4.13], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
 
diff --git a/glxproto.h b/glxproto.h
index 0ff44e3..dfa0647 100644
--- a/glxproto.h
+++ b/glxproto.h
@@ -1375,13 +1375,13 @@ typedef struct {
     BYTE pad;
     CARD16 sequenceNumber B16;
     CARD16 event_type B16;
+    CARD16 pad2;
     CARD32 drawable;
     CARD32 ust_hi B32;
     CARD32 ust_lo B32;
     CARD32 msc_hi B32;
     CARD32 msc_lo B32;
-    CARD32 sbc_hi B32;
-    CARD32 sbc_lo B32;
+    CARD32 sbc B32;
 } xGLXBufferSwapComplete;
 
 /************************************************************************/
-- 
1.7.4.1




More information about the xorg-devel mailing list