[dri2proto patch v3] Define an event to notify clients about the validity of their buffers.

Francisco Jerez currojerez at riseup.net
Fri Jan 22 06:27:32 PST 2010


Bumps the protocol and package versions.

Signed-off-by: Francisco Jerez <currojerez at riseup.net>
---
 configure.ac  |    2 +-
 dri2proto.h   |   19 +++++++++++++++++--
 dri2proto.txt |   31 ++++++++++++++++++++++++-------
 3 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/configure.ac b/configure.ac
index fc96197..c5affe3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ([2.57])
-AC_INIT([DRI2Proto], [2.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([DRI2Proto], [2.3], [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 43152c2..9708a4a 100644
--- a/dri2proto.h
+++ b/dri2proto.h
@@ -35,10 +35,10 @@
 
 #define DRI2_NAME			"DRI2"
 #define DRI2_MAJOR			1
-#define DRI2_MINOR			2
+#define DRI2_MINOR			3
 
 #define DRI2NumberErrors		0
-#define DRI2NumberEvents		1
+#define DRI2NumberEvents		2
 #define DRI2NumberRequests		13
 
 #define X_DRI2QueryVersion		0
@@ -59,6 +59,7 @@
  * Events
  */
 #define DRI2_BufferSwapComplete	0
+#define DRI2_InvalidateBuffers	1
 
 typedef struct {
     CARD32  attachment B32;
@@ -299,4 +300,18 @@ typedef struct {
 } xDRI2BufferSwapComplete;
 #define sz_xDRI2BufferSwapComplete 32
 
+typedef struct {
+    CARD8 type;
+    CARD8 pad;
+    CARD16 sequenceNumber B16;
+    CARD32 drawable B32;
+    CARD32 pad1 B32;
+    CARD32 pad2 B32;
+    CARD32 pad3 B32;
+    CARD32 pad4 B32;
+    CARD32 pad5 B32;
+    CARD32 pad6 B32;
+} xDRI2InvalidateBuffers;
+#define sz_xDRI2InvalidateBuffers 32
+
 #endif
diff --git a/dri2proto.txt b/dri2proto.txt
index de58289..3d3eec4 100644
--- a/dri2proto.txt
+++ b/dri2proto.txt
@@ -125,9 +125,12 @@ or by using the OML swap buffers routine.
 
 2.7 Events
 
-DRI2 provides a single event to indicate when a DRI2SwapBuffers request has
-been completed.  This can be used to throttle drawing on the client side and
-tie into application main loops.
+DRI2 provides an event to indicate when a DRI2SwapBuffers request has
+been completed.  This can be used to throttle drawing on the client
+side and tie into application main loops.
+
+Another event is generated when the validity of the requested buffers
+changes.
 
 			     âš™ âš™ âš™  âš™ âš™ âš™
 
@@ -333,10 +336,6 @@ The name of this extension is "DRI2".
 	Returns the swap count value when the swap will actually occur (e.g.
 	the last queued swap count + (pending swap count * swap interval)).
 
-	The client should invalidate its render buffers after sending this
-	request, causing a subsequent GetBuffers request to get updated buffer
-	info.
-
 	This request is only available with protocol version 1.2 or
 	later.
 
@@ -459,6 +458,22 @@ The name of this extension is "DRI2".
 	the swap was performed with a blit, and DRI2_FLIP_COMPLETE, indicating
 	a full page flip was completed.
 
+┌───
+    DRI2InvalidateBuffers
+      â–¶
+	drawable: CARD32
+└───
+
+	This event is generated when the buffers the client had
+	requested for 'drawable' (with DRI2GetBuffers or
+	DRI2GetBuffersWithFormat) become inappropriate because they
+	don't match the drawable dimensions anymore, or a buffer swap
+	has been performed.
+
+	Note that the server is only required to warn the client once
+	about this condition, until the client takes care of bringing
+	them back up-to-date with another GetBuffers request.
+
 			     âš™ âš™ âš™  âš™ âš™ âš™
 
 10. Extension Versioning
@@ -491,6 +506,8 @@ The DRI2 extension has undergone a number of revisions before
 	2.2: Approaching perfection.  Added requests for swapbuffers,
              MSC and SBC related requests, and events.
 
+	2.3: Added the DRI2InvalidateBuffers event.
+
 Compatibility up to 2.0 is not preserved, but was also never released.
 
 
-- 
1.6.4.4



More information about the xorg-devel mailing list