mirror of
https://gitlab.freedesktop.org/xorg/proto/xorgproto.git
synced 2026-05-05 18:08:05 +02:00
DRI3: Add DRI3SetDRMDeviceInUse
DRI3SetDRMDeviceInUse is a hint that lets a client tell the server what DRM device it is currently using. This lets the server make more informed decisions for what modifiers to return to the client. This is needed for proper linux dmabuf feedback with Xwayland
This commit is contained in:
parent
8c8bbb9034
commit
74255ccfd8
3 changed files with 55 additions and 5 deletions
|
|
@ -3,5 +3,5 @@ includedir=@includedir@
|
|||
|
||||
Name: DRI3Proto
|
||||
Description: DRI3 extension headers
|
||||
Version: 1.2
|
||||
Version: 1.3
|
||||
Cflags: -I${includedir}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
The DRI3 Extension
|
||||
Version 1.2
|
||||
2018-02-28
|
||||
Version 1.3
|
||||
2021-11-30
|
||||
|
||||
Keith Packard
|
||||
keithp@keithp.com
|
||||
|
|
@ -34,6 +34,7 @@ Kristian Høgsberg <krh@bitplanet.net>
|
|||
James Jones <jajones@nvidia.com>
|
||||
Arthur Huillet <arthur.huillet@free.fr>
|
||||
Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
|
||||
Austin Shafer <ashafer@nvidia.com>
|
||||
|
||||
❄ ❄ ❄ ❄ ❄ ❄ ❄
|
||||
|
||||
|
|
@ -371,6 +372,28 @@ The name of this extension is "DRI3"
|
|||
For information on synchronization of buffer access between
|
||||
the client and the X server, please see section 12.
|
||||
|
||||
┌───
|
||||
DRI3SetDRMDeviceInUse
|
||||
window: WINDOW
|
||||
drmMajor: CARD32
|
||||
drmMinor: CARD32
|
||||
└───
|
||||
Errors: Window
|
||||
|
||||
This request provides a hint to the server about the device
|
||||
in use by this window. This is used to provide
|
||||
DRI3GetSupportedModifiers with a hint of what device to
|
||||
return modifiers for in the window_modifiers return value.
|
||||
Using this hint allows for device-specific modifiers to
|
||||
be returned by DRI3GetSupportedModifiers, for example
|
||||
when an application is renderoffloaded and eligible for
|
||||
direct scanout.
|
||||
|
||||
This is only a hint, and may or may not be reflected in
|
||||
the modifier list returned.
|
||||
|
||||
If the window specified was not found, a Window error will
|
||||
be returned.
|
||||
|
||||
❄ ❄ ❄ ❄ ❄ ❄ ❄
|
||||
|
||||
|
|
@ -391,6 +414,8 @@ The DRI3 extension is adapted from the DRI2 extension.
|
|||
1.2: Add GetSupportedModifiers,
|
||||
PixmapFromBuffers, and BuffersFromPixmap requests.
|
||||
|
||||
1.3: Add SetDRMDeviceInUse
|
||||
|
||||
❄ ❄ ❄ ❄ ❄ ❄ ❄
|
||||
|
||||
|
||||
|
|
@ -668,6 +693,16 @@ A.2 Protocol Requests
|
|||
4 ListOfCARD32 offsets[nfd]
|
||||
└───
|
||||
|
||||
┌───
|
||||
DRI3SetDRMDeviceInUse
|
||||
1 CARD8 major opcode
|
||||
1 10 DRI3 opcode
|
||||
2 4 length
|
||||
4 Window window
|
||||
4 CARD32 drmMajor
|
||||
4 CARD32 drmMinor
|
||||
└───
|
||||
|
||||
A.3 Protocol Events
|
||||
|
||||
The DRI3 extension defines no events.
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
#define DRI3_NAME "DRI3"
|
||||
#define DRI3_MAJOR 1
|
||||
#define DRI3_MINOR 2
|
||||
#define DRI3_MINOR 3
|
||||
|
||||
#define DRI3NumberErrors 0
|
||||
#define DRI3NumberEvents 0
|
||||
|
|
@ -42,7 +42,10 @@
|
|||
#define xDRI3PixmapFromBuffers 7
|
||||
#define xDRI3BuffersFromPixmap 8
|
||||
|
||||
#define DRI3NumberRequests 9
|
||||
/* v1.3 */
|
||||
#define xDRI3SetDRMDeviceInUse 9
|
||||
|
||||
#define DRI3NumberRequests 10
|
||||
|
||||
typedef struct {
|
||||
CARD8 reqType;
|
||||
|
|
@ -246,4 +249,16 @@ typedef struct {
|
|||
} xDRI3BuffersFromPixmapReply;
|
||||
#define sz_xDRI3BuffersFromPixmapReply 32
|
||||
|
||||
/* v1.3 */
|
||||
|
||||
typedef struct {
|
||||
CARD8 reqType;
|
||||
CARD8 dri3ReqType;
|
||||
CARD16 length;
|
||||
CARD32 window;
|
||||
CARD32 drmMajor;
|
||||
CARD32 drmMinor;
|
||||
} xDRI3SetDRMDeviceInUseReq;
|
||||
#define sz_xDRI3SetDRMDeviceInUseReq 16
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue