From e8213fb70ac6bd8315ceebb6d125ed59e17198c1 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 14 Oct 2022 09:49:12 +0200 Subject: [PATCH] qemu: validate: Clarify error messages for unsupported 3d video acceleration The error message doesn't really convey the information that 3d acceleration works only for the 'virtio' model and similarly the same error would be reported if qemu doesn't support acceleration, which is hard to debug. Split and clarify the errors. Noticed in https://gitlab.com/libvirt/libvirt/-/issues/388 Signed-off-by: Peter Krempa Reviewed-by: Pavel Hrdina --- src/qemu/qemu_validate.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index cb4e32c0ff..079009ea4b 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -2765,15 +2765,20 @@ qemuValidateDomainDeviceDefVideo(const virDomainVideoDef *video, return -1; } } else if (video->accel) { - if (video->accel->accel3d == VIR_TRISTATE_BOOL_YES && - (video->type != VIR_DOMAIN_VIDEO_TYPE_VIRTIO || - !(virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_VIRGL) || - virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_GL_PCI) || - virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_VGA_GL)))) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("%s 3d acceleration is not supported"), - virDomainVideoTypeToString(video->type)); - return -1; + if (video->accel->accel3d == VIR_TRISTATE_BOOL_YES) { + if (video->type != VIR_DOMAIN_VIDEO_TYPE_VIRTIO) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("3d acceleration is supported only with 'virtio' video device")); + return -1; + } + + if (!(virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_VIRGL) || + virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_GL_PCI) || + virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_VGA_GL))) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("3d acceleration is not supported by this QEMU binary")); + return -1; + } } } -- 2.39.5