On 30/08/17 01:45 PM, Louis-Francis Ratté-Boulianne wrote: > From: Daniel Stone <dani...@collabora.com> > > DRI3 version 1.1 adds support for explicit format modifiers, including > multi-planar buffers. > > Signed-off-by: Daniel Stone <dani...@collabora.com> > Signed-off-by: Louis-Francis Ratté-Boulianne <l...@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 _______________________________________________ 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