Add FDFromFence request

This lets DRI clients convert a fence back into a local object.

Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Keith Packard 2013-10-08 16:16:21 -07:00
parent a5392ea74a
commit b79a809d29
2 changed files with 61 additions and 1 deletions

View file

@ -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

View file

@ -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.