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
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
>
© 2016 - 2026 Red Hat, Inc.