We should be raising an error if accel3d is present for any
non-virtio video as well, incase someone hand edits incorrect XML
---
src/qemu/qemu_command.c | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 4a2fa1d..731f4c0 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -4125,18 +4125,20 @@ qemuBuildDeviceVideoStr(const virDomainDef *def,
virBufferAsprintf(&buf, "%s,id=%s", model, video->info.alias);
- if (video->type == VIR_DOMAIN_VIDEO_TYPE_VIRTIO) {
- if (video->accel && video->accel->accel3d ==
VIR_TRISTATE_SWITCH_ON) {
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_GPU_VIRGL)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- "%s", _("virtio-gpu 3d acceleration is not
supported"));
- goto error;
- }
-
- virBufferAsprintf(&buf, ",virgl=%s",
-
virTristateSwitchTypeToString(video->accel->accel3d));
+ if (video->accel && video->accel->accel3d == VIR_TRISTATE_SWITCH_ON)
{
+ if (video->type != VIR_DOMAIN_VIDEO_TYPE_VIRTIO ||
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_GPU_VIRGL)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("%s 3d acceleration is not supported"),
+ virDomainVideoTypeToString(video->type));
+ goto error;
}
- } else if (video->type == VIR_DOMAIN_VIDEO_TYPE_QXL) {
+
+ virBufferAsprintf(&buf, ",virgl=%s",
+ virTristateSwitchTypeToString(video->accel->accel3d));
+ }
+
+ if (video->type == VIR_DOMAIN_VIDEO_TYPE_QXL) {
if (video->vram > (UINT_MAX / 1024)) {
virReportError(VIR_ERR_OVERFLOW,
_("value for 'vram' must be less than
'%u'"),
--
2.7.4