WIP: Initial dmabuf hints support
A basic container type for hints, which contains a device and some formats (see below). A compositor-wide default hints exists, and well as one per surface. This PR currently only sets default hints, and no per-surface hints are currently sent.
This is a type that is just a format+modifier pair that also has a preference associated with it, which becomes the dmabuf-hint tranches. Currently only the renderer sets these formats, and everything ends up as the same priority. Future work would be to modify the DRM backend (and possibly others) to add formats that could be scanned out as a higher priority than the renderer formats.
A possible priority could be
- Formats than can be scanned out
- Formats that the driver supports natively (
- Formats that weston has a renderer fallback for (e.g. some of the YUV formats)
The implementation is fairly basic. I don't know if something more elaborate is wanted/required.
This is somewhat redundant with the
query_dmabuf_modifiers renderer functions which also gets used by linux-dmabuf. Perhaps we want to change the normal format/modifier event to use this new format and deprecate/remove these functions.
This was updated to now use dmabuf-hints to select its rendering device, and adds libudev as a new dependency for it. It doesn't make use of any format hints yet.