[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 7/9] virtio-gpu: Support Venus capset
From: |
Antonio Caggiano |
Subject: |
[PATCH v3 7/9] virtio-gpu: Support Venus capset |
Date: |
Mon, 26 Sep 2022 16:24:20 +0200 |
Add support for the Venus capset, which enables Vulkan support through
the Venus Vulkan driver for virtio-gpu.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
---
v3: Improve commit message
hw/display/virtio-gpu-virgl.c | 21 +++++++++++++++++----
include/standard-headers/linux/virtio_gpu.h | 2 ++
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
index f9d8ccfdf8..16f600adbb 100644
--- a/hw/display/virtio-gpu-virgl.c
+++ b/hw/display/virtio-gpu-virgl.c
@@ -388,6 +388,11 @@ static void virgl_cmd_get_capset_info(VirtIOGPU *g,
virgl_renderer_get_cap_set(resp.capset_id,
&resp.capset_max_version,
&resp.capset_max_size);
+ } else if (info.capset_index == 2) {
+ resp.capset_id = VIRTIO_GPU_CAPSET_VENUS;
+ virgl_renderer_get_cap_set(resp.capset_id,
+ &resp.capset_max_version,
+ &resp.capset_max_size);
} else {
resp.capset_max_version = 0;
resp.capset_max_size = 0;
@@ -820,10 +825,18 @@ int virtio_gpu_virgl_init(VirtIOGPU *g)
int virtio_gpu_virgl_get_num_capsets(VirtIOGPU *g)
{
- uint32_t capset2_max_ver, capset2_max_size;
+ uint32_t capset2_max_ver, capset2_max_size, num_capsets;
+ num_capsets = 1;
+
virgl_renderer_get_cap_set(VIRTIO_GPU_CAPSET_VIRGL2,
- &capset2_max_ver,
- &capset2_max_size);
+ &capset2_max_ver,
+ &capset2_max_size);
+ num_capsets += capset2_max_ver ? 1 : 0;
+
+ virgl_renderer_get_cap_set(VIRTIO_GPU_CAPSET_VENUS,
+ &capset2_max_ver,
+ &capset2_max_size);
+ num_capsets += capset2_max_size ? 1 : 0;
- return capset2_max_ver ? 2 : 1;
+ return num_capsets;
}
diff --git a/include/standard-headers/linux/virtio_gpu.h
b/include/standard-headers/linux/virtio_gpu.h
index 2da48d3d4c..2db643ed8f 100644
--- a/include/standard-headers/linux/virtio_gpu.h
+++ b/include/standard-headers/linux/virtio_gpu.h
@@ -309,6 +309,8 @@ struct virtio_gpu_cmd_submit {
#define VIRTIO_GPU_CAPSET_VIRGL 1
#define VIRTIO_GPU_CAPSET_VIRGL2 2
+/* 3 is reserved for gfxstream */
+#define VIRTIO_GPU_CAPSET_VENUS 4
/* VIRTIO_GPU_CMD_GET_CAPSET_INFO */
struct virtio_gpu_get_capset_info {
--
2.34.1
- [PATCH v3 0/9] virtio-gpu: Support Venus Vulkan driver, Antonio Caggiano, 2022/09/26
- [PATCH v3 1/9] virtio: Add shared memory capability, Antonio Caggiano, 2022/09/26
- [PATCH v3 2/9] virtio-gpu: hostmem, Antonio Caggiano, 2022/09/26
- [PATCH v3 4/9] virtio-gpu: CONTEXT_INIT feature, Antonio Caggiano, 2022/09/26
- [PATCH v3 5/9] virtio-gpu: Unrealize, Antonio Caggiano, 2022/09/26
- [PATCH v3 8/9] virtio-gpu: Initialize Venus, Antonio Caggiano, 2022/09/26
- [PATCH v3 7/9] virtio-gpu: Support Venus capset,
Antonio Caggiano <=
- [PATCH v3 3/9] virtio-gpu: Handle resource blob commands, Antonio Caggiano, 2022/09/26
- [PATCH v3 6/9] virtio-gpu: Resource UUID, Antonio Caggiano, 2022/09/26
- [PATCH v3 9/9] virtio-gpu: Get EGL Display callback, Antonio Caggiano, 2022/09/26