summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-10-08 16:16:21 -0700
committerKeith Packard <keithp@keithp.com>2013-10-08 16:16:21 -0700
commitb79a809d29cf9a5cf0715e59e5f0ce0a2dcc410b (patch)
tree07d297e333c0b7100076869aac98f0c4806859d8
parenta5392ea74a9b9e39de7b5c8107e68d0bb3724d77 (diff)
downloadxorg-proto-dri3proto-b79a809d29cf9a5cf0715e59e5f0ce0a2dcc410b.tar.gz
Add FDFromFence requestdri3proto-1.0
This lets DRI clients convert a fence back into a local object. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--dri3proto.h28
-rw-r--r--dri3proto.txt34
2 files changed, 61 insertions, 1 deletions
diff --git a/dri3proto.h b/dri3proto.h
index 02ea929..ceddee8 100644
--- a/dri3proto.h
+++ b/dri3proto.h
@@ -35,8 +35,9 @@
#define X_DRI3PixmapFromBuffer 2
#define X_DRI3BufferFromPixmap 3
#define X_DRI3FenceFromFD 4
+#define X_DRI3FDFromFence 5
-#define DRI3NumberRequests 5
+#define DRI3NumberRequests 6
typedef struct {
CARD8 reqType;
@@ -138,4 +139,29 @@ typedef struct {
#define sz_xDRI3FenceFromFDReq 16
+typedef struct {
+ CARD8 reqType;
+ CARD8 dri3ReqType;
+ CARD16 length B16;
+ CARD32 drawable B32;
+ CARD32 fence B32;
+} xDRI3FDFromFenceReq;
+
+#define sz_xDRI3FDFromFenceReq 12
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 nfd; /* Number of file descriptors returned (1) */
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 pad08 B32;
+ CARD32 pad12 B32;
+ CARD32 pad16 B32;
+ CARD32 pad20 B32;
+ CARD32 pad24 B32;
+ CARD32 pad28 B32;
+} xDRI3FDFromFenceReply;
+
+#define sz_xDRI3FDFromFenceReply 32
+
#endif
diff --git a/dri3proto.txt b/dri3proto.txt
index fbc0fed..3f516f7 100644
--- a/dri3proto.txt
+++ b/dri3proto.txt
@@ -182,6 +182,23 @@ The name of this extension is "DRI3"
Details about the mechanism used with this file descriptor are
outside the scope of the DRI3 extension.
+┌───
+ DRI3FDFromFence
+ drawable: DRAWABLE
+ fence: FENCE
+ ▶
+ fd: FD
+└───
+ Errors: IDchoice, Drawable, Match
+
+ Given a Sync extension Fence that provides the regular Sync
+ extension semantics, returns a file descriptor that provides a
+ device-specific mechanism to manipulate the fence directly.
+ Details about the mechanism used with this file descriptor are
+ outside the scope of the DRI3 extension. 'drawable' must be
+ associated with a direct rendering device that 'fence' can
+ work with, otherwise a Match error results.
+
❄ ❄ ❄ ❄ ❄ ❄ ❄
@@ -337,6 +354,23 @@ A.2 Protocol Requests
0 FD fence fd
└───
+┌───
+ DRI3FDFromFence
+ 1 CARD8 major opcode
+ 1 5 DRI3 opcode
+ 2 3 length
+ 4 Drawable drawable
+ 4 Fence fence
+ ▶
+ 1 1 Reply
+ 1 1 nfd
+ 2 CARD16 sequence number
+ 4 0 reply length
+ 24 unused
+
+ 0 FD fence fd
+└───
+
A.3 Protocol Events
The DRI3 extension defines no events.