[PATCH 3/6] ui/egl: use DRM_FORMAT_MOD_INVALID as default modifier

yuq825@gmail.com posted 6 patches 1 week ago
There is a newer version of this series
[PATCH 3/6] ui/egl: use DRM_FORMAT_MOD_INVALID as default modifier
Posted by yuq825@gmail.com 1 week ago
From: Qiang Yu <yuq825@gmail.com>

0 is used as DRM_FORMAT_MOD_LINEAR already.

Signed-off-by: Qiang Yu <yuq825@gmail.com>
---
 hw/display/vhost-user-gpu.c     | 3 ++-
 hw/display/virtio-gpu-udmabuf.c | 4 +++-
 ui/egl-helpers.c                | 3 ++-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
index a7949c7078..a6a510db65 100644
--- a/hw/display/vhost-user-gpu.c
+++ b/hw/display/vhost-user-gpu.c
@@ -18,6 +18,7 @@
 #include "chardev/char-fe.h"
 #include "qapi/error.h"
 #include "migration/blocker.h"
+#include "standard-headers/drm/drm_fourcc.h"
 
 typedef enum VhostUserGpuRequest {
     VHOST_USER_GPU_NONE = 0,
@@ -251,7 +252,7 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
         int fd = qemu_chr_fe_get_msgfd(&g->vhost_chr);
         uint32_t offset = 0;
         uint32_t stride = m->fd_stride;
-        uint64_t modifier = 0;
+        uint64_t modifier = DRM_FORMAT_MOD_INVALID;
         QemuDmaBuf *dmabuf;
 
         if (m->scanout_id >= g->parent_obj.conf.max_outputs) {
diff --git a/hw/display/virtio-gpu-udmabuf.c b/hw/display/virtio-gpu-udmabuf.c
index 34fbe05b7a..de6ce53f16 100644
--- a/hw/display/virtio-gpu-udmabuf.c
+++ b/hw/display/virtio-gpu-udmabuf.c
@@ -25,6 +25,7 @@
 #include <linux/memfd.h>
 #include "qemu/memfd.h"
 #include "standard-headers/linux/udmabuf.h"
+#include "standard-headers/drm/drm_fourcc.h"
 
 static void virtio_gpu_create_udmabuf(struct virtio_gpu_simple_resource *res)
 {
@@ -187,7 +188,8 @@ static VGPUDMABuf
                                   &offset, &fb->stride,
                                   r->x, r->y, fb->width, fb->height,
                                   qemu_pixman_to_drm_format(fb->format),
-                                  0, &res->dmabuf_fd, 1, true, false);
+                                  DRM_FORMAT_MOD_INVALID, &res->dmabuf_fd,
+                                  1, true, false);
     dmabuf->scanout_id = scanout_id;
     QTAILQ_INSERT_HEAD(&g->dmabuf.bufs, dmabuf, next);
 
diff --git a/ui/egl-helpers.c b/ui/egl-helpers.c
index 45b1b0b700..970286325f 100644
--- a/ui/egl-helpers.c
+++ b/ui/egl-helpers.c
@@ -23,6 +23,7 @@
 #include "system/system.h"
 #include "qapi/error.h"
 #include "trace.h"
+#include "standard-headers/drm/drm_fourcc.h"
 
 EGLDisplay *qemu_egl_display;
 EGLConfig qemu_egl_config;
@@ -333,7 +334,7 @@ void egl_dmabuf_import_texture(QemuDmaBuf *dmabuf)
     attrs[i++] = qemu_dmabuf_get_stride(dmabuf)[0];
     attrs[i++] = EGL_DMA_BUF_PLANE0_OFFSET_EXT;
     attrs[i++] = 0;
-    if (modifier) {
+    if (modifier != DRM_FORMAT_MOD_INVALID) {
         attrs[i++] = EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT;
         attrs[i++] = (modifier >>  0) & 0xffffffff;
         attrs[i++] = EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT;
-- 
2.43.0
Re: [PATCH 3/6] ui/egl: use DRM_FORMAT_MOD_INVALID as default modifier
Posted by Marc-André Lureau 1 week ago
On Mon, Mar 24, 2025 at 12:19 PM <yuq825@gmail.com> wrote:
>
> From: Qiang Yu <yuq825@gmail.com>
>
> 0 is used as DRM_FORMAT_MOD_LINEAR already.
>
> Signed-off-by: Qiang Yu <yuq825@gmail.com>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

> ---
>  hw/display/vhost-user-gpu.c     | 3 ++-
>  hw/display/virtio-gpu-udmabuf.c | 4 +++-
>  ui/egl-helpers.c                | 3 ++-
>  3 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
> index a7949c7078..a6a510db65 100644
> --- a/hw/display/vhost-user-gpu.c
> +++ b/hw/display/vhost-user-gpu.c
> @@ -18,6 +18,7 @@
>  #include "chardev/char-fe.h"
>  #include "qapi/error.h"
>  #include "migration/blocker.h"
> +#include "standard-headers/drm/drm_fourcc.h"
>
>  typedef enum VhostUserGpuRequest {
>      VHOST_USER_GPU_NONE = 0,
> @@ -251,7 +252,7 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
>          int fd = qemu_chr_fe_get_msgfd(&g->vhost_chr);
>          uint32_t offset = 0;
>          uint32_t stride = m->fd_stride;
> -        uint64_t modifier = 0;
> +        uint64_t modifier = DRM_FORMAT_MOD_INVALID;
>          QemuDmaBuf *dmabuf;
>
>          if (m->scanout_id >= g->parent_obj.conf.max_outputs) {
> diff --git a/hw/display/virtio-gpu-udmabuf.c b/hw/display/virtio-gpu-udmabuf.c
> index 34fbe05b7a..de6ce53f16 100644
> --- a/hw/display/virtio-gpu-udmabuf.c
> +++ b/hw/display/virtio-gpu-udmabuf.c
> @@ -25,6 +25,7 @@
>  #include <linux/memfd.h>
>  #include "qemu/memfd.h"
>  #include "standard-headers/linux/udmabuf.h"
> +#include "standard-headers/drm/drm_fourcc.h"
>
>  static void virtio_gpu_create_udmabuf(struct virtio_gpu_simple_resource *res)
>  {
> @@ -187,7 +188,8 @@ static VGPUDMABuf
>                                    &offset, &fb->stride,
>                                    r->x, r->y, fb->width, fb->height,
>                                    qemu_pixman_to_drm_format(fb->format),
> -                                  0, &res->dmabuf_fd, 1, true, false);
> +                                  DRM_FORMAT_MOD_INVALID, &res->dmabuf_fd,
> +                                  1, true, false);
>      dmabuf->scanout_id = scanout_id;
>      QTAILQ_INSERT_HEAD(&g->dmabuf.bufs, dmabuf, next);
>
> diff --git a/ui/egl-helpers.c b/ui/egl-helpers.c
> index 45b1b0b700..970286325f 100644
> --- a/ui/egl-helpers.c
> +++ b/ui/egl-helpers.c
> @@ -23,6 +23,7 @@
>  #include "system/system.h"
>  #include "qapi/error.h"
>  #include "trace.h"
> +#include "standard-headers/drm/drm_fourcc.h"
>
>  EGLDisplay *qemu_egl_display;
>  EGLConfig qemu_egl_config;
> @@ -333,7 +334,7 @@ void egl_dmabuf_import_texture(QemuDmaBuf *dmabuf)
>      attrs[i++] = qemu_dmabuf_get_stride(dmabuf)[0];
>      attrs[i++] = EGL_DMA_BUF_PLANE0_OFFSET_EXT;
>      attrs[i++] = 0;
> -    if (modifier) {
> +    if (modifier != DRM_FORMAT_MOD_INVALID) {
>          attrs[i++] = EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT;
>          attrs[i++] = (modifier >>  0) & 0xffffffff;
>          attrs[i++] = EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT;
> --
> 2.43.0
>