Supporting YUV formats allows applications to offload YUV->RGBA conversions to the compositor. This alone is not a big win, however the compositor in turn may be able to offload the conversion to the display hardware. This can improve performance and reduce energy consumption substantially, especially on mobile or embedded devices.
Supporting this feature also makes Mutter a more attractive development platform for people working on software for e.g. embedded devices - this is partly my personal motivation.
This MR allows to correctly display the output of
weston-simple-dmabuf-v4l and of some WIP test clients. Single-plane packed
NV12 and triple-plane
YUV420 formats should work.
Hardware offloading may or may not work. !2660 may help with testing.
This MR is a rebase of https://gitlab.gnome.org/GNOME/mutter/-/tree/wip/nielsdg/meta-multi-texture-wip by @nielsdg. The incomplete support for shm-buffers and EGLimage have been removed again, only DMABUF will be supported for now.