Re: [PATCH xorgproto v8 01/14] dri3: Add modifier/multi-plane requests, bump to v1.2

2018-02-28 Thread Keith Packard
Daniel Stone  writes:

> From: Louis-Francis Ratté-Boulianne 
>
> DRI3 version 1.2 adds support for explicit format modifiers,
> including multi-planar buffers.

Thanks for the awesome writeup on synchronization. It looks good to me.

Reviewed-by: Keith Packard 

-- 
-keith


signature.asc
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

[PATCH xorgproto v8 01/14] dri3: Add modifier/multi-plane requests, bump to v1.2

2018-02-27 Thread Daniel Stone
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