On 6/8/21 3:15 AM, Han Han wrote:
> QEMU 6.1 will add virtio-gpu-gl-pci device to replace the virgl property
> of virtio-gpu-pci device. Adapt to that change.
>
> Resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=1967356
>
> Signed-off-by: Han Han <hhan(a)redhat.com>
> ---
> src/qemu/qemu_command.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 4ed82ed570..a79e96a121 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -546,7 +546,11 @@ qemuBuildVirtioDevStr(virBuffer *buf,
> return -1;
> }
>
> - virBufferAsprintf(buf, "%s-%s", baseName, implName);
> + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_GL_PCI) &&
> + STREQ(baseName, "virtio-gpu"))
> + virBufferAsprintf(buf, "%s-gl-%s", baseName, implName);
> + else
> + virBufferAsprintf(buf, "%s-%s", baseName, implName);
This doesn't look right. What if domain has:
<acceleration accel3d='no'/>
This will still pick virtio-gpu-gl-pci, wouldn't it? I think we need to
pick the correct model beforehand and leave qemuBuildVirtioDevStr()
unmodified.
Definitely. Ideally the command line formatter itself should never do
any form of logic of picking the models or device types which could have
ABI impact.