udmabuf can create a DMA-BUF backed by a memfd. This is useful
when running with a software implementation of GL/Vulkan: the memfd
can be passed to the parent compositor via wl_shm and the DMA-BUF
can be imported via the usual APIs into GL/Vulkan.
Since we only use the backend capabilities here we can simply pass
them in directly. This allows other locations to create an allocator
even if they don't have a backend. They can simply specify the caps
they want instead.
Allows CPU access of the buffer. Can be useful for multi-GPU copies
via CPU.
Might be quite slow, and might fail for an arbitrary driver-specific
reason, so not advertised in wlr_allocator.buffer_caps.