diff options
-rw-r--r-- | dri3proto.pc.in | 2 | ||||
-rw-r--r-- | dri3proto.txt | 52 | ||||
-rw-r--r-- | include/X11/extensions/dri3proto.h | 28 |
3 files changed, 77 insertions, 5 deletions
diff --git a/dri3proto.pc.in b/dri3proto.pc.in index 7725bc5..be6ccb9 100644 --- a/dri3proto.pc.in +++ b/dri3proto.pc.in @@ -3,5 +3,5 @@ includedir=@includedir@ Name: DRI3Proto Description: DRI3 extension headers -Version: 1.3 +Version: 1.4 Cflags: -I${includedir} diff --git a/dri3proto.txt b/dri3proto.txt index 3f92756..f1f74c4 100644 --- a/dri3proto.txt +++ b/dri3proto.txt @@ -1,5 +1,5 @@ The DRI3 Extension - Version 1.3 + Version 1.4 2021-11-30 Keith Packard @@ -60,7 +60,7 @@ DRI3 defines no events. 6. Protocol Types -DRI3 defines no new protocol types. +SYNCOBJ { XID } ❄ ❄ ❄ ❄ ❄ ❄ ❄ @@ -395,6 +395,36 @@ The name of this extension is "DRI3" If the window specified was not found, a Window error will be returned. + +┌─── + DRI3ImportSyncobj + syncobj: SYNCOBJ + drawable: DRAWABLE + fd: FD +└─── + Errors: IDchoice, Drawable + + Imports the DRM synchronization object bound to the given 'fd'. This + may then be used to enable explicit synchronization with the + server-side direct rendering device associated with 'drawable'. + + The provided syncobj must be a timeline syncobj. + + If 'drawable' is not found, a Drawable error will be returned. + + +┌─── + DRI3FreeSyncobj + syncobj: SYNCOBJ +└─── + Errors: Value + + Indicates that any resources associated with the given 'syncobj' should + be released by the server. The actual release may be deferred until any + pending operations that depend on the object have completed. + + If 'syncobj' is not found, a Value error will be returned. + ❄ ❄ ❄ ❄ ❄ ❄ ❄ 9. Extension Events @@ -703,6 +733,24 @@ A.2 Protocol Requests 4 CARD32 drmMinor └─── +┌─── + DRI3ImportSyncobj + 1 CARD8 major opcode + 1 11 DRI3 opcode + 2 3 length + 4 SYNCOBJ syncobj + 4 Drawable drawable + 0 FD syncobj fd +└─── + +┌─── + DRI3FreeSyncobj + 1 CARD8 major opcode + 1 12 DRI3 opcode + 2 2 length + 4 SYNCOBJ syncobj +└─── + A.3 Protocol Events The DRI3 extension defines no events. diff --git a/include/X11/extensions/dri3proto.h b/include/X11/extensions/dri3proto.h index 9cba105..a1fbed5 100644 --- a/include/X11/extensions/dri3proto.h +++ b/include/X11/extensions/dri3proto.h @@ -25,7 +25,7 @@ #define DRI3_NAME "DRI3" #define DRI3_MAJOR 1 -#define DRI3_MINOR 3 +#define DRI3_MINOR 4 #define DRI3NumberErrors 0 #define DRI3NumberEvents 0 @@ -45,7 +45,13 @@ /* v1.3 */ #define xDRI3SetDRMDeviceInUse 9 -#define DRI3NumberRequests 10 +/* v1.4 */ +#define xDRI3ImportSyncobj 10 +#define xDRI3FreeSyncobj 11 + +#define DRI3NumberRequests 12 + +#define DRI3Syncobj CARD32 typedef struct { CARD8 reqType; @@ -261,4 +267,22 @@ typedef struct { } xDRI3SetDRMDeviceInUseReq; #define sz_xDRI3SetDRMDeviceInUseReq 16 +/* v1.4 */ +typedef struct { + CARD8 reqType; + CARD8 dri3ReqType; + CARD16 length; + DRI3Syncobj syncobj; + CARD32 drawable; +} xDRI3ImportSyncobjReq; +#define sz_xDRI3ImportSyncobjReq 12 + +typedef struct { + CARD8 reqType; + CARD8 dri3ReqType; + CARD16 length; + DRI3Syncobj syncobj; +} xDRI3FreeSyncobjReq; +#define sz_xDRI3FreeSyncobjReq 8 + #endif |