From: Han Han Date: Wed, 9 Jun 2021 08:32:25 +0000 (+0800) Subject: qemu: Adapt to virtio-gpu-gl-pci device X-Git-Tag: v7.5.0-rc1~161 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b99762b61edc91bfa6e5d8779261ddecbf669a23;p=thirdparty%2Flibvirt.git qemu: Adapt to virtio-gpu-gl-pci device 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 Signed-off-by: Michal Privoznik Reviewed-by: Michal Privoznik --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 7834fc2130..e595efe97a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4203,6 +4203,10 @@ qemuBuildDeviceVideoStr(const virDomainDef *def, { g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; const char *model = NULL; + virTristateSwitch accel3d = VIR_TRISTATE_SWITCH_ABSENT; + + if (video->accel) + accel3d = video->accel->accel3d; /* We try to chose the best model for primary video device by preferring * model with VGA compatibility mode. For some video devices on some @@ -4228,6 +4232,11 @@ qemuBuildDeviceVideoStr(const virDomainDef *def, } if (STREQ(model, "virtio-gpu") || STREQ(model, "vhost-user-gpu")) { + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_GL_PCI) && + accel3d == VIR_TRISTATE_SWITCH_ON && + STREQ(model, "virtio-gpu")) + model = "virtio-gpu-gl"; + if (qemuBuildVirtioDevStr(&buf, model, qemuCaps, VIR_DOMAIN_DEVICE_VIDEO, video) < 0) { return NULL; @@ -4242,10 +4251,10 @@ qemuBuildDeviceVideoStr(const virDomainDef *def, video->type == VIR_DOMAIN_VIDEO_TYPE_VIRTIO) { if (video->accel && virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_VIRGL) && - (video->accel->accel3d == VIR_TRISTATE_SWITCH_ON || - video->accel->accel3d == VIR_TRISTATE_SWITCH_OFF)) { + (accel3d == VIR_TRISTATE_SWITCH_ON || + accel3d == VIR_TRISTATE_SWITCH_OFF)) { virBufferAsprintf(&buf, ",virgl=%s", - virTristateSwitchTypeToString(video->accel->accel3d)); + virTristateSwitchTypeToString(accel3d)); } }