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.
switch (devtype) {
case VIR_DOMAIN_DEVICE_DISK:
@@ -4242,6 +4246,7 @@ qemuBuildDeviceVideoStr(const virDomainDef *def,
video->type == VIR_DOMAIN_VIDEO_TYPE_VIRTIO) {
if (video->accel &&
virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_VIRGL) &&
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_GL_PCI) &&
(video->accel->accel3d == VIR_TRISTATE_SWITCH_ON ||
video->accel->accel3d == VIR_TRISTATE_SWITCH_OFF)) {
virBufferAsprintf(&buf, ",virgl=%s",
Michal