linux-dmabuf-v1: upgrade to minor version 6

- Set the SAMPLING flag when appropriate
- Stop sending the main_device event
- Expose the buffer's sampling device in struct wlr_dmabuf_v1_buffer
- Check tranches are well-formed according to the protocol
- Add a fallback for main_device, grabbing the first SAMPLING
  tranche's target_device

Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/work_items/4099
This commit is contained in:
Simon Ser 2026-05-31 12:44:39 +02:00
parent bd99e8c2bd
commit 3e8aed0d87
2 changed files with 77 additions and 12 deletions

View file

@ -24,7 +24,10 @@ struct wlr_dmabuf_v1_buffer {
struct wl_resource *resource; // can be NULL if the client destroyed it
struct wlr_dmabuf_attributes attributes;
const dev_t *sampling_device; // can be NULL if unknown
struct {
dev_t sampling_device_value;
struct wl_listener release;
} WLR_PRIVATE;
};
@ -37,7 +40,7 @@ struct wlr_dmabuf_v1_buffer *wlr_dmabuf_v1_buffer_try_from_buffer_resource(
struct wl_resource *buffer_resource);
struct wlr_linux_dmabuf_feedback_v1 {
dev_t main_device;
dev_t main_device; // unused for >= v6
struct wl_array tranches; // struct wlr_linux_dmabuf_feedback_v1_tranche
};