From: Louis-Francis Ratté-Boulianne
DRI3 version 1.2 adds support for explicit format modifiers,
including multi-planar buffers.
Signed-off-by: Daniel Stone
Signed-off-by: Louis-Francis Ratté-Boulianne
---
dri3proto.pc.in| 2 +-
dri3proto.txt | 319 +++--
include/X11/extensions/dri3proto.h | 86 +-
meson.build| 2 +-
4 files changed, 396 insertions(+), 13 deletions(-)
diff --git a/dri3proto.pc.in b/dri3proto.pc.in
index 6d81d07..e42d60e 100644
--- a/dri3proto.pc.in
+++ b/dri3proto.pc.in
@@ -5,5 +5,5 @@ includedir=@includedir@
Name: DRI3Proto
Description: DRI3 extension headers
-Version: 1.0
+Version: 1.2
Cflags: -I${includedir}
diff --git a/dri3proto.txt b/dri3proto.txt
index dac11d3..94322e7 100644
--- a/dri3proto.txt
+++ b/dri3proto.txt
@@ -1,16 +1,22 @@
The DRI3 Extension
-Version 1.0
- 2013-6-4
-
+Version 1.2
+ 2018-02-28
+
Keith Packard
kei...@keithp.com
Intel Corporation
+ Daniel Stone
+ dani...@collabora.com
+Collabora
+
+
1. Introduction
The DRI3 extension provides mechanisms to translate between direct
rendered buffers and X pixmaps. When combined with the Present extension,
-a complete direct rendering solution for OpenGL is provided.
+a complete direct rendering solution for hardware-accelerated devices
+such as GPUs is provided.
The direct rendered buffers are passed across the protocol via
standard POSIX file descriptor passing mechanisms. On Linux, these
@@ -25,8 +31,9 @@ which can be used to serialize access to shared render
buffers.
Eric Anholt
Dave Airlie
Kristian Høgsberg
-James Jones
+James Jones
Arthur Huillet
+Louis-Francis Ratté-Boulianne
❄ ❄ ❄ ❄ ❄ ❄ ❄
@@ -117,9 +124,10 @@ The name of this extension is "DRI3"
Errors: Alloc, Drawable, IDChoice, Value, Match
Creates a pixmap for the direct rendering object associated
- with 'buffer'. Changes to pixmap will be visible in that
- direct rendered object and changes to the direct rendered
- object will be visible in the pixmap.
+ with 'buffer' and the screen associated with 'drawable'.
+ Changes to pixmap will be visible in that direct rendered
+ object and changes to the direct rendered object will be
+ visible in the pixmap.
'size' specifies the total size of the buffer bytes. 'width',
'height' describe the geometry (in pixels) of the underlying
@@ -137,6 +145,9 @@ The name of this extension is "DRI3"
If depth or bpp are not supported by the screen, a Value error
is returned.
+ For information on synchronization of buffer access between
+ the client and the X server, please see section 12.
+
┌───
DRI3BufferFromPixmap
pixmap: PIXMAP
@@ -167,6 +178,9 @@ The name of this extension is "DRI3"
If buffer cannot be used with the screen associated with
drawable, a Match error is returned.
+ For information on synchronization of buffer access between
+ the client and the X server, please see section 12.
+
┌───
DRI3FenceFromFD
drawable: DRAWABLE
@@ -182,6 +196,9 @@ The name of this extension is "DRI3"
Details about the mechanism used with this file descriptor are
outside the scope of the DRI3 extension.
+ For information on synchronization of buffer access between
+ the client and the X server, please see section 12.
+
┌───
DRI3FDFromFence
drawable: DRAWABLE
@@ -199,8 +216,163 @@ The name of this extension is "DRI3"
associated with a direct rendering device that 'fence' can
work with, otherwise a Match error results.
+ For information on synchronization of buffer access between
+ the client and the X server, please see section 12.
-❄ ❄ ❄ ❄ ❄ ❄ ❄
+┌───
+DRI3GetSupportedModifiers
+ window: WINDOW
+ depth: CARD8
+ bpp: CARD8
+ ▶
+ num_window_modifiers: CARD32
+ num_screen_modifiers: CARD32
+ window_modifiers: ListOfCARD64
+ screen_modifiers: ListOfCARD64
+└───
+ Errors: Window, Match
+
+ Return supported DRM FourCC modifiers for the specified
+ 'window'.
+
+ The first list of 'window_modifiers' contains a set of
+ modifiers which the server considers optimal for the window's
+ current configuration. Using these modifiers to