From: Qiang Yu <yuq825@gmail.com>
mesa/radeonsi is going to support explicit modifier with this MR:
* https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31658
The side effect is some texture will become multi-plane which
breaks qemu. Because qemu currently only support single plane
texture.
For example, texture with DCC (a compressed format) enabled modifier
will expose one plane for compressed data, another plane with metadata
for compression.
This patch serial fix qemu to support multi-plane texture for
DBus and SPICE display, other display seems not affected by multi
plane.
This patch serial also depends on the spice changes here:
* https://gitlab.freedesktop.org/spice/spice/-/merge_requests/232
SPICE client change here:
* https://gitlab.freedesktop.org/spice/spice-gtk/-/merge_requests/130
DBus client change here:
* https://gitlab.com/marcandre.lureau/qemu-display/-/merge_requests/5
v2:
* change dmabuf API for array length
* check spice_qxl_gl_scanout2 API instead of bumping spice version
Qiang Yu (6):
ui/dmabuf: extend QemuDmaBuf to support multi-plane
ui/egl: require EGL_EXT_image_dma_buf_import_modifiers
ui/egl: use DRM_FORMAT_MOD_INVALID as default modifier
ui/egl: support multi-plane dmabuf when egl export/import
ui/dbus: change dbus ScanoutDMABUF interface
ui/spice: support multi plane dmabuf scanout
hw/display/vhost-user-gpu.c | 9 ++-
hw/display/virtio-gpu-udmabuf.c | 8 ++-
hw/vfio/display.c | 7 +-
include/ui/dmabuf.h | 20 +++---
include/ui/egl-helpers.h | 5 +-
meson.build | 5 ++
ui/dbus-display1.xml | 37 ++++++++++
ui/dbus-listener.c | 123 ++++++++++++++++++++++++++++----
ui/dmabuf.c | 77 +++++++++++++-------
ui/egl-helpers.c | 102 +++++++++++++++++++-------
ui/spice-display.c | 102 ++++++++++++++++++--------
11 files changed, 385 insertions(+), 110 deletions(-)
--
2.43.0