[Mesa-dev] [PATCH v10 00/11] Modifiers for X11 EGL/Vulkan, WL/VK

Daniel Stone daniels at collabora.com
Thu Feb 15 15:57:30 UTC 2018


Hi,
I don't actually know which revision we're up to by now, so I decided to
rebase at v10.

This is a slight evolution of Jason's 16-patch series posted on Feb 9th.
It adds:
  - support for multi-plane buffers and modifiers to the Vulkan WSI
  - support for zwp_linux_dmabuf_v1 to the Vulkan Wayland WSI,
    enabling multi-plane buffers and modifiers on Wayland
  - support for DRI3 v1.1 to the Vulkan X11 WSI, enabling multi-plane
    buffers and modifiers on X11
  - support for DRI3 v1.1 to EGL/GLX X11, ditto

The first three patches have been acked (or explicitly not-not-acked) by
Dave for RADV, and Jason and I have been back and forth over the first
five long enough that they should in theory be perfect by now.

Patch 6 is new. When we discussed having a src/wsi/ for common winsys
code (like we have src/loader/loader_dri3_helper.c at the moment, not
really related to the loader but just for shared utility) that was
deemed to not be a good idea, so I moved dmabuf to wayland-drm, even
though it's not that.

Patch 7 has been carried for a while, is a pretty straightforward port
of the EGL code we've been shipping, and should be easy to land, but it
depends on how we end up bikeshedding the build system.

Patches 8-11 implement multi-buffer/modifier support for X11 in two
stages. Firstly, support for the DRI3 v1.1 and Present v1.2 protocols
has been added. DRI3 v1.1 is the X11 protocol equivalent of
EGL_EXT_image_dma_buf_import_modifiers: it allows us to query the set of
supported format modifiers from the server, and send/receive multi-plane
buffers with modifiers as well. Present v1.2 adds a 'suboptimal copy'
mode: a hint that the presentation was not a flip, but if the client
reallocated then flipping would be possible.

These patches have all been tested with today's submission to xorg-devel@
by Louis-Francis Ratté-Boullianne, in various combinations of new/old.
In order to build the Mesa client side, you will need to have the
xcb-proto patches from that submission, rebuild libxcb against that
xcb-proto (making sure your PKG_CONFIG_PATH includes
$xcb_proto_prefix/share/pkgconfig!), and then rebuild Mesa against the
new libxcb.

The X11 patches all include #ifdefs for the new DRI3 and Present
protocol, to make it easier to test it when it's not running. These will
be removed when the protocol is merged upstream, which is hopefully
soon.

Cheers,
Daniel



More information about the mesa-dev mailing list