[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 06/12] virtio-gpu: Add initial definitions for blob resources
From: |
Vivek Kasireddy |
Subject: |
[PATCH v2 06/12] virtio-gpu: Add initial definitions for blob resources |
Date: |
Mon, 19 Apr 2021 23:53:41 -0700 |
Add the property bit, configuration flag and other relevant
macros and definitions associated with this feature.
Based-on-patch-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
---
hw/display/virtio-gpu-base.c | 3 +++
hw/display/virtio-gpu.c | 14 ++++++++++++++
include/hw/virtio/virtio-gpu.h | 3 +++
3 files changed, 20 insertions(+)
diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
index 25f8920fdb..70e4d53d26 100644
--- a/hw/display/virtio-gpu-base.c
+++ b/hw/display/virtio-gpu-base.c
@@ -210,6 +210,9 @@ virtio_gpu_base_get_features(VirtIODevice *vdev, uint64_t
features,
if (virtio_gpu_edid_enabled(g->conf)) {
features |= (1 << VIRTIO_GPU_F_EDID);
}
+ if (virtio_gpu_blob_enabled(g->conf)) {
+ features |= (1 << VIRTIO_GPU_F_RESOURCE_BLOB);
+ }
return features;
}
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 85c8eb749d..8b67d39889 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -1176,6 +1176,18 @@ static void virtio_gpu_device_realize(DeviceState *qdev,
Error **errp)
#endif
}
+ if (virtio_gpu_blob_enabled(g->parent_obj.conf)) {
+ if (!virtio_gpu_have_udmabuf()) {
+ error_setg(errp, "cannot enable blob resources without udmabuf");
+ return;
+ }
+
+ if (virtio_gpu_virgl_enabled(g->parent_obj.conf)) {
+ error_setg(errp, "blobs and virgl are not compatible (yet)");
+ return;
+ }
+ }
+
if (!virtio_gpu_base_device_realize(qdev,
virtio_gpu_handle_ctrl_cb,
virtio_gpu_handle_cursor_cb,
@@ -1292,6 +1304,8 @@ static Property virtio_gpu_properties[] = {
DEFINE_PROP_BIT("stats", VirtIOGPU, parent_obj.conf.flags,
VIRTIO_GPU_FLAG_STATS_ENABLED, false),
#endif
+ DEFINE_PROP_BIT("blob", VirtIOGPU, parent_obj.conf.flags,
+ VIRTIO_GPU_FLAG_BLOB_ENABLED, false),
DEFINE_PROP_END_OF_LIST(),
};
diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
index 879f4cfff6..415aeddb07 100644
--- a/include/hw/virtio/virtio-gpu.h
+++ b/include/hw/virtio/virtio-gpu.h
@@ -85,6 +85,7 @@ enum virtio_gpu_base_conf_flags {
VIRTIO_GPU_FLAG_STATS_ENABLED,
VIRTIO_GPU_FLAG_EDID_ENABLED,
VIRTIO_GPU_FLAG_DMABUF_ENABLED,
+ VIRTIO_GPU_FLAG_BLOB_ENABLED,
};
#define virtio_gpu_virgl_enabled(_cfg) \
@@ -95,6 +96,8 @@ enum virtio_gpu_base_conf_flags {
(_cfg.flags & (1 << VIRTIO_GPU_FLAG_EDID_ENABLED))
#define virtio_gpu_dmabuf_enabled(_cfg) \
(_cfg.flags & (1 << VIRTIO_GPU_FLAG_DMABUF_ENABLED))
+#define virtio_gpu_blob_enabled(_cfg) \
+ (_cfg.flags & (1 << VIRTIO_GPU_FLAG_BLOB_ENABLED))
struct virtio_gpu_base_conf {
uint32_t max_outputs;
--
2.26.2
- [PATCH v2 00/12] virtio-gpu: Add support for Blob resources feature, Vivek Kasireddy, 2021/04/20
- [PATCH v2 01/12] ui: Get the fd associated with udmabuf driver, Vivek Kasireddy, 2021/04/20
- [PATCH v2 03/12] virtio-gpu: Add virtio_gpu_find_check_resource, Vivek Kasireddy, 2021/04/20
- [PATCH v2 04/12] virtio-gpu: Refactor virtio_gpu_set_scanout, Vivek Kasireddy, 2021/04/20
- [PATCH v2 02/12] virtio-gpu: Add udmabuf helpers, Vivek Kasireddy, 2021/04/20
- [PATCH v2 05/12] virtio-gpu: Refactor virtio_gpu_create_mapping_iov, Vivek Kasireddy, 2021/04/20
- [PATCH v2 06/12] virtio-gpu: Add initial definitions for blob resources,
Vivek Kasireddy <=
- [PATCH v2 07/12] virtio-gpu: Add virtio_gpu_resource_create_blob, Vivek Kasireddy, 2021/04/20
- [PATCH v2 08/12] ui/pixman: Add qemu_pixman_to_drm_format(), Vivek Kasireddy, 2021/04/20
- [PATCH v2 10/12] virtio-gpu: Factor out update scanout, Vivek Kasireddy, 2021/04/20
- [PATCH v2 09/12] virtio-gpu: Add helpers to create and destroy dmabuf objects, Vivek Kasireddy, 2021/04/20
- [PATCH v2 11/12] virtio-gpu: Add virtio_gpu_set_scanout_blob, Vivek Kasireddy, 2021/04/20
- [PATCH v2 12/12] virtio-gpu: Update cursor data using blob, Vivek Kasireddy, 2021/04/20