Message ID | 20230915111130.24064-12-ray.huang@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Support blob memory and venus on qemu | expand |
Hi On Fri, Sep 15, 2023 at 3:14 PM Huang Rui <ray.huang@amd.com> wrote: > > From: Antonio Caggiano <antonio.caggiano@collabora.com> > > 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> > Signed-off-by: Huang Rui <ray.huang@amd.com> > --- > > V4 -> V5: > - Send kernel patch to define VIRTIO_GPU_CAPSET_VENUS and will use > another patch to sync up linux headers. (Akihiko) > - https://lore.kernel.org/lkml/20230915105918.3763061-1-ray.huang@amd.com/ Ok but in the meantime, you should have that header update patch in the series too, otherwise we can't compile it :) thanks > > hw/display/virtio-gpu-virgl.c | 21 +++++++++++++++++---- > 1 file changed, 17 insertions(+), 4 deletions(-) > > diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c > index 8a017dbeb4..7f95490e90 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; > } > -- > 2.34.1 > >
On Tue, Sep 19, 2023 at 05:02:36PM +0800, Marc-André Lureau wrote: > Hi > > On Fri, Sep 15, 2023 at 3:14 PM Huang Rui <ray.huang@amd.com> wrote: > > > > From: Antonio Caggiano <antonio.caggiano@collabora.com> > > > > 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> > > Signed-off-by: Huang Rui <ray.huang@amd.com> > > --- > > > > V4 -> V5: > > - Send kernel patch to define VIRTIO_GPU_CAPSET_VENUS and will use > > another patch to sync up linux headers. (Akihiko) > > - https://lore.kernel.org/lkml/20230915105918.3763061-1-ray.huang@amd.com/ > > Ok but in the meantime, you should have that header update patch in > the series too, otherwise we can't compile it :) > In fact, it's in my repo. :-) I am waiting for it to be merged into kernel mainline and then update the commit id. https://gitlab.freedesktop.org/rui/qemu-xen/-/commit/4ae9d078f9242890769c98162caf32f95df42529 I will include it in next series. Thanks, Ray > thanks > > > > > hw/display/virtio-gpu-virgl.c | 21 +++++++++++++++++---- > > 1 file changed, 17 insertions(+), 4 deletions(-) > > > > diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c > > index 8a017dbeb4..7f95490e90 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; > > } > > -- > > 2.34.1 > > > > > > > -- > Marc-André Lureau
diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c index 8a017dbeb4..7f95490e90 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; }