Daniel Stone <dani...@collabora.com> writes:

> DRI3 version 1.1 adds support for explicit format modifiers, including
> multi-planar buffers.
>
> Signed-off-by: Daniel Stone <dani...@collabora.com>
> ---
>  dri3proto.h | 142 
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 140 insertions(+), 2 deletions(-)
>
> diff --git a/dri3proto.h b/dri3proto.h
> index ceddee8..767f420 100644
> --- a/dri3proto.h
> +++ b/dri3proto.h
> @@ -25,7 +25,7 @@
>  
>  #define DRI3_NAME                    "DRI3"
>  #define DRI3_MAJOR                   1
> -#define DRI3_MINOR                   0
> +#define DRI3_MINOR                   1
>  
>  #define DRI3NumberErrors             0
>  #define DRI3NumberEvents             0
> @@ -37,7 +37,15 @@
>  #define X_DRI3FenceFromFD               4
>  #define X_DRI3FDFromFence               5
>  
> -#define DRI3NumberRequests           6
> +/* v1.1 */
> +#define xDRI3GetSupportedFormats     6
> +#define xDRI3GetSupportedModifiers   7
> +#define xDRI3PixmapFromBuffers               8
> +#define xDRI3BuffersFromPixmap               9
> +#define xDRI3FenceFromDMAFenceFD        10
> +#define xDRI3DMAFenceFDFromFrence       11
> +
> +#define DRI3NumberRequests           12
>  
>  typedef struct {
>      CARD8   reqType;
> @@ -164,4 +172,134 @@ typedef struct {
>  
>  #define sz_xDRI3FDFromFenceReply   32
>  
> +/* v1.1 */
> +
> +typedef struct {
> +    CARD8   reqType;
> +    CARD8   dri3ReqType;
> +    CARD16  length B16;
> +    CARD32  window B32;
> +} xDRI3GetSupportedFormatsReq;
> +#define sz_xDRI3GetSupportedFormatsReq     8
> +
> +typedef struct {
> +    BYTE    type;   /* X_Reply */
> +    CARD8   pad1;
> +    CARD16  sequenceNumber B16;
> +    CARD32  length B32;
> +    CARD32  numFormats B32;
> +    CARD32  pad12 B32;
> +    CARD32  pad16 B32;
> +    CARD32  pad20 B32;
> +    CARD32  pad24 B32;
> +    CARD32  pad28 B32;
> +} xDRI3GetSupportedFormatsReply;
> +#define sz_xDRI3GetSupportedFormatsReply   32
> +
> +typedef struct {
> +    CARD8   reqType;
> +    CARD8   dri3ReqType;
> +    CARD16  length B16;
> +    CARD32  window B32;
> +    CARD32  format B32;
> +} xDRI3GetSupportedModifiersReq;
> +#define sz_xDRI3GetSupportedModifiersReq     12
> +
> +typedef struct {
> +    BYTE    type;   /* X_Reply */
> +    CARD8   pad1;
> +    CARD16  sequenceNumber B16;
> +    CARD32  length B32;
> +    CARD32  format B32;
> +    CARD32  numModifiers B32;
> +    CARD32  pad16 B32;
> +    CARD32  pad20 B32;
> +    CARD32  pad24 B32;
> +    CARD32  pad28 B32;
> +} xDRI3GetSupportedModifiersReply;
> +#define sz_xDRI3GetSupportedModifiersReply   32
> +
> +typedef struct {
> +    CARD8   reqType;
> +    CARD8   dri3ReqType;
> +    CARD16  length B16;
> +    CARD32  pixmap B32;
> +    CARD32  drawable B32;
> +    CARD8   num_buffers; /* Number of file descriptors passed */
> +    CARD8   pad13;
> +    CARD16  pad14 B16;
> +    CARD16  width B16;
> +    CARD16  height B16;
> +    CARD32  stride0 B32;
> +    CARD32  offset0 B32;
> +    CARD32  stride1 B32;
> +    CARD32  offset1 B32;
> +    CARD32  stride2 B32;
> +    CARD32  offset2 B32;
> +    CARD32  stride3 B32;
> +    CARD32  offset3 B32;
> +    CARD32  format B32;
> +    CARD32  modifier_hi B32;
> +    CARD32  modifier_lo B32;

With the Present extension, we started putting CARD64s on the wire.
Let's use them here, too.

I don't really have other comments about the protocol yet, without the
documentation.

Attachment: 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

Reply via email to