[PATCH] virtio-gpu: Add definition for resource_uuid feature

Dorinda Bassey posted 1 patch 1 month, 2 weeks ago
There is a newer version of this series
hw/display/vhost-user-gpu.c    | 4 ++++
hw/display/virtio-gpu-base.c   | 3 +++
include/hw/virtio/virtio-gpu.h | 3 +++
3 files changed, 10 insertions(+)
[PATCH] virtio-gpu: Add definition for resource_uuid feature
Posted by Dorinda Bassey 1 month, 2 weeks ago
Add the VIRTIO_GPU_F_RESOURCE_UUID feature to enable the assignment
of resources UUIDs for export to other virtio devices.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
---
 hw/display/vhost-user-gpu.c    | 4 ++++
 hw/display/virtio-gpu-base.c   | 3 +++
 include/hw/virtio/virtio-gpu.h | 3 +++
 3 files changed, 10 insertions(+)

diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
index 14548f1a57..053cfd9cff 100644
--- a/hw/display/vhost-user-gpu.c
+++ b/hw/display/vhost-user-gpu.c
@@ -631,6 +631,10 @@ vhost_user_gpu_device_realize(DeviceState *qdev, Error **errp)
         error_report("EDID requested but the backend doesn't support it.");
         g->parent_obj.conf.flags &= ~(1 << VIRTIO_GPU_FLAG_EDID_ENABLED);
     }
+    if (virtio_has_feature(g->vhost->dev.features,
+        VIRTIO_GPU_F_RESOURCE_UUID)) {
+        g->parent_obj.conf.flags |= 1 << VIRTIO_GPU_F_RESOURCE_UUID_ENABLED;
+    }
 
     if (!virtio_gpu_base_device_realize(qdev, NULL, NULL, errp)) {
         return;
diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
index 4fc7ef8896..7827536ac4 100644
--- a/hw/display/virtio-gpu-base.c
+++ b/hw/display/virtio-gpu-base.c
@@ -235,6 +235,9 @@ virtio_gpu_base_get_features(VirtIODevice *vdev, uint64_t features,
     if (virtio_gpu_context_init_enabled(g->conf)) {
         features |= (1 << VIRTIO_GPU_F_CONTEXT_INIT);
     }
+    if (virtio_gpu_resource_uuid_enabled(g->conf)) {
+        features |= (1 << VIRTIO_GPU_F_RESOURCE_UUID);
+    }
 
     return features;
 }
diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
index 7a59379f5a..15e193bb6d 100644
--- a/include/hw/virtio/virtio-gpu.h
+++ b/include/hw/virtio/virtio-gpu.h
@@ -99,6 +99,7 @@ enum virtio_gpu_base_conf_flags {
     VIRTIO_GPU_FLAG_BLOB_ENABLED,
     VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED,
     VIRTIO_GPU_FLAG_RUTABAGA_ENABLED,
+    VIRTIO_GPU_F_RESOURCE_UUID_ENABLED,
 };
 
 #define virtio_gpu_virgl_enabled(_cfg) \
@@ -115,6 +116,8 @@ enum virtio_gpu_base_conf_flags {
     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED))
 #define virtio_gpu_rutabaga_enabled(_cfg) \
     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RUTABAGA_ENABLED))
+#define virtio_gpu_resource_uuid_enabled(_cfg) \
+    (_cfg.flags & (1 << VIRTIO_GPU_F_RESOURCE_UUID_ENABLED))
 #define virtio_gpu_hostmem_enabled(_cfg) \
     (_cfg.hostmem > 0)
 
-- 
2.46.1
Re: [PATCH] virtio-gpu: Add definition for resource_uuid feature
Posted by Manos Pitsidianakis 1 month, 2 weeks ago
Hello Dorinda,

On Fri, 04 Oct 2024 19:41, Dorinda Bassey <dbassey@redhat.com> wrote:
>Add the VIRTIO_GPU_F_RESOURCE_UUID feature to enable the assignment
>of resources UUIDs for export to other virtio devices.
>
>Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
>---
> hw/display/vhost-user-gpu.c    | 4 ++++
> hw/display/virtio-gpu-base.c   | 3 +++
> include/hw/virtio/virtio-gpu.h | 3 +++
> 3 files changed, 10 insertions(+)
>
>diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
>index 14548f1a57..053cfd9cff 100644
>--- a/hw/display/vhost-user-gpu.c
>+++ b/hw/display/vhost-user-gpu.c
>@@ -631,6 +631,10 @@ vhost_user_gpu_device_realize(DeviceState *qdev, Error **errp)
>         error_report("EDID requested but the backend doesn't support it.");
>         g->parent_obj.conf.flags &= ~(1 << VIRTIO_GPU_FLAG_EDID_ENABLED);
>     }
>+    if (virtio_has_feature(g->vhost->dev.features,
>+        VIRTIO_GPU_F_RESOURCE_UUID)) {
>+        g->parent_obj.conf.flags |= 1 << VIRTIO_GPU_F_RESOURCE_UUID_ENABLED;
>+    }
> 
>     if (!virtio_gpu_base_device_realize(qdev, NULL, NULL, errp)) {
>         return;
>diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
>index 4fc7ef8896..7827536ac4 100644
>--- a/hw/display/virtio-gpu-base.c
>+++ b/hw/display/virtio-gpu-base.c
>@@ -235,6 +235,9 @@ virtio_gpu_base_get_features(VirtIODevice *vdev, uint64_t features,
>     if (virtio_gpu_context_init_enabled(g->conf)) {
>         features |= (1 << VIRTIO_GPU_F_CONTEXT_INIT);
>     }
>+    if (virtio_gpu_resource_uuid_enabled(g->conf)) {
>+        features |= (1 << VIRTIO_GPU_F_RESOURCE_UUID);
>+    }
> 
>     return features;
> }
>diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
>index 7a59379f5a..15e193bb6d 100644
>--- a/include/hw/virtio/virtio-gpu.h
>+++ b/include/hw/virtio/virtio-gpu.h
>@@ -99,6 +99,7 @@ enum virtio_gpu_base_conf_flags {
>     VIRTIO_GPU_FLAG_BLOB_ENABLED,
>     VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED,
>     VIRTIO_GPU_FLAG_RUTABAGA_ENABLED,
>+    VIRTIO_GPU_F_RESOURCE_UUID_ENABLED,


s/F_/FLAG_/


> };
> 
> #define virtio_gpu_virgl_enabled(_cfg) \
>@@ -115,6 +116,8 @@ enum virtio_gpu_base_conf_flags {
>     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED))
> #define virtio_gpu_rutabaga_enabled(_cfg) \
>     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RUTABAGA_ENABLED))
>+#define virtio_gpu_resource_uuid_enabled(_cfg) \
>+    (_cfg.flags & (1 << VIRTIO_GPU_F_RESOURCE_UUID_ENABLED))
> #define virtio_gpu_hostmem_enabled(_cfg) \
>     (_cfg.hostmem > 0)
> 
>-- 
>2.46.1
>
>
Re: [PATCH] virtio-gpu: Add definition for resource_uuid feature
Posted by Dorinda Bassey 1 month, 2 weeks ago
Hi Manos,

Thanks, for spotting that!

On Sat, Oct 5, 2024 at 7:43 AM Manos Pitsidianakis <
manos.pitsidianakis@linaro.org> wrote:

> Hello Dorinda,
>
> On Fri, 04 Oct 2024 19:41, Dorinda Bassey <dbassey@redhat.com> wrote:
> >Add the VIRTIO_GPU_F_RESOURCE_UUID feature to enable the assignment
> >of resources UUIDs for export to other virtio devices.
> >
> >Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
> >---
> > hw/display/vhost-user-gpu.c    | 4 ++++
> > hw/display/virtio-gpu-base.c   | 3 +++
> > include/hw/virtio/virtio-gpu.h | 3 +++
> > 3 files changed, 10 insertions(+)
> >
> >diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
> >index 14548f1a57..053cfd9cff 100644
> >--- a/hw/display/vhost-user-gpu.c
> >+++ b/hw/display/vhost-user-gpu.c
> >@@ -631,6 +631,10 @@ vhost_user_gpu_device_realize(DeviceState *qdev,
> Error **errp)
> >         error_report("EDID requested but the backend doesn't support
> it.");
> >         g->parent_obj.conf.flags &= ~(1 << VIRTIO_GPU_FLAG_EDID_ENABLED);
> >     }
> >+    if (virtio_has_feature(g->vhost->dev.features,
> >+        VIRTIO_GPU_F_RESOURCE_UUID)) {
> >+        g->parent_obj.conf.flags |= 1 <<
> VIRTIO_GPU_F_RESOURCE_UUID_ENABLED;
> >+    }
> >
> >     if (!virtio_gpu_base_device_realize(qdev, NULL, NULL, errp)) {
> >         return;
> >diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
> >index 4fc7ef8896..7827536ac4 100644
> >--- a/hw/display/virtio-gpu-base.c
> >+++ b/hw/display/virtio-gpu-base.c
> >@@ -235,6 +235,9 @@ virtio_gpu_base_get_features(VirtIODevice *vdev,
> uint64_t features,
> >     if (virtio_gpu_context_init_enabled(g->conf)) {
> >         features |= (1 << VIRTIO_GPU_F_CONTEXT_INIT);
> >     }
> >+    if (virtio_gpu_resource_uuid_enabled(g->conf)) {
> >+        features |= (1 << VIRTIO_GPU_F_RESOURCE_UUID);
> >+    }
> >
> >     return features;
> > }
> >diff --git a/include/hw/virtio/virtio-gpu.h
> b/include/hw/virtio/virtio-gpu.h
> >index 7a59379f5a..15e193bb6d 100644
> >--- a/include/hw/virtio/virtio-gpu.h
> >+++ b/include/hw/virtio/virtio-gpu.h
> >@@ -99,6 +99,7 @@ enum virtio_gpu_base_conf_flags {
> >     VIRTIO_GPU_FLAG_BLOB_ENABLED,
> >     VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED,
> >     VIRTIO_GPU_FLAG_RUTABAGA_ENABLED,
> >+    VIRTIO_GPU_F_RESOURCE_UUID_ENABLED,
>
>
> s/F_/FLAG_/
>
>
> > };
> >
> > #define virtio_gpu_virgl_enabled(_cfg) \
> >@@ -115,6 +116,8 @@ enum virtio_gpu_base_conf_flags {
> >     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED))
> > #define virtio_gpu_rutabaga_enabled(_cfg) \
> >     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RUTABAGA_ENABLED))
> >+#define virtio_gpu_resource_uuid_enabled(_cfg) \
> >+    (_cfg.flags & (1 << VIRTIO_GPU_F_RESOURCE_UUID_ENABLED))
> > #define virtio_gpu_hostmem_enabled(_cfg) \
> >     (_cfg.hostmem > 0)
> >
> >--
> >2.46.1
> >
> >
>
>