[RFC dri3proto v2 1/10] Add modifier/multi-plane requests, bump to v1.1
Michel Dänzer
michel at daenzer.net
Wed Aug 30 06:26:19 UTC 2017
On 30/08/17 01:45 PM, Louis-Francis Ratté-Boulianne wrote:
> From: Daniel Stone <daniels at collabora.com>
>
> DRI3 version 1.1 adds support for explicit format modifiers, including
> multi-planar buffers.
>
> Signed-off-by: Daniel Stone <daniels at collabora.com>
> Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb at collabora.com>
[...]
> @@ -164,4 +171,119 @@ typedef struct {
>
> #define sz_xDRI3FDFromFenceReply 32
>
> +/* v1.1 */
> +
> +typedef struct {
> + CARD8 reqType;
> + CARD8 dri3ReqType;
> + CARD16 length B16;
> + CARD32 window B32;
> + CARD8 depth;
> + CARD8 bpp;
> + CARD16 pad10 B16;
> +} 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
The reply has a format member...
> @@ -199,6 +202,164 @@ The name of this extension is "DRI3"
> associated with a direct rendering device that 'fence' can
> work with, otherwise a Match error results.
>
> +┌───
> + DRI3GetSupportedModifiers
> + window: WINDOW
> + depth: CARD8
> + bpp: CARD8
> + ▶
> + num_modifiers: CARD32
> + modifiers: ListOfCARD32
> +└───
> + Errors: Window, Match
> +
> + For the Screen associated with 'window', return a list of
> + supported DRM FourCC modifiers, as defined in drm_fourcc.h,
> + supported for DRI3 pixmap/buffer interchange.
> + Each modifier is returned as returned as a CARD32
> + containing the most significant 32 bits, followed by a
> + CARD32 containing the least significant 32 bits. The hi/lo
> + pattern repeats 'num_modifiers' times, thus there are
> + '2 * num_modifiers' CARD32 elements returned.
... but it's not documented here...
> +┌───
> + DRI3GetSupportedModifiers
> + 1 CARD8 major opcode
> + 1 7 DRI3 opcode
> + 2 3 length
> + 4 Window window
> + 1 CARD8 depth
> + 1 CARD8 bpp
> + 2 unused
> + ▶
> + 1 1 Reply
> + 1 0 unused
> + 2 CARD16 sequence number
> + 4 CARD32 reply length
> + 4 CARD32 num_modifiers
> + 20 unused
> +
> + 4 ListOfCARD32 modifiers[2*num_modifiers]
> +└───
... or here.
It doesn't seem to get assigned by the xserver code either. A leftover?
(I just happened to notice this, there might be other similar issues)
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the xorg-devel
mailing list