[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [QEMU PATCH v4 11/13] virtio-gpu: Support Venus capset
On Thu, Aug 31, 2023 at 06:43:17PM +0800, Akihiko Odaki wrote: > On 2023/08/31 18:32, Huang Rui wrote: > > From: Antonio Caggiano <antonio.caggiano@xxxxxxxxxxxxx> > > > > 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@xxxxxxxxxxxxx> > > Signed-off-by: Huang Rui <ray.huang@xxxxxxx> > > --- > > 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 1a996a08fc..83cd8c8fd0 100644 > > --- a/hw/display/virtio-gpu-virgl.c > > +++ b/hw/display/virtio-gpu-virgl.c > > @@ -437,6 +437,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; > > @@ -901,10 +906,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 > > This file is synced with scripts/update-linux-headers.sh and should not > be modified. Should I add marco in kernel include/uapi/linux/virtio_gpu.h? They are used at VIRGL_RENDERER_UNSTABLE_APIS in virglrender. enum virgl_renderer_capset { VIRGL_RENDERER_CAPSET_VIRGL = 1, VIRGL_RENDERER_CAPSET_VIRGL2 = 2, /* 3 is reserved for gfxstream */ VIRGL_RENDERER_CAPSET_VENUS = 4, /* 5 is reserved for cross-domain */ VIRGL_RENDERER_CAPSET_DRM = 6, }; Thanks, Ray > > > > > /* VIRTIO_GPU_CMD_GET_CAPSET_INFO */ > > struct virtio_gpu_get_capset_info {
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |