]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuBuildDeviceVideoStr: Move logic wrapping qemuBuildVirtioDevStr() into qemuDeviceV...
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 11 Jun 2021 13:13:24 +0000 (15:13 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 11 Jun 2021 19:53:45 +0000 (21:53 +0200)
We want to call qemuBuildVirtioDevStr() from
qemuBuildDeviceVideoStr() but only for some models (currently
"virtio-gpu" and "vhost-user-gpu"), not all of them. Move this
logic into qemuDeviceVideoGetModel() because this logic will be
refined.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/qemu/qemu_command.c

index f7368a578d63e7871dc29cf75e7d7f9e574653a0..4072b87d3e2c6db8c002b295f877f89655080f4d 100644 (file)
@@ -4159,11 +4159,14 @@ qemuBuildSoundCommandLine(virCommand *cmd,
 
 static const char *
 qemuDeviceVideoGetModel(virQEMUCaps *qemuCaps,
-                        const virDomainVideoDef *video)
+                        const virDomainVideoDef *video,
+                        bool *virtio)
 {
     const char *model = NULL;
     bool primaryVga = false;
 
+    *virtio = false;
+
     if (video->primary && qemuDomainSupportsVideoVga(video, qemuCaps))
         primaryVga = true;
 
@@ -4172,10 +4175,12 @@ qemuDeviceVideoGetModel(virQEMUCaps *qemuCaps,
      * architectures there might not be such model so fallback to one
      * without VGA compatibility mode. */
     if (video->backend == VIR_DOMAIN_VIDEO_BACKEND_TYPE_VHOSTUSER) {
-        if (primaryVga)
+        if (primaryVga) {
             model = "vhost-user-vga";
-        else
+        } else {
             model = "vhost-user-gpu";
+            *virtio = true;
+        }
     } else {
         if (primaryVga) {
             switch ((virDomainVideoType) video->type) {
@@ -4216,6 +4221,7 @@ qemuDeviceVideoGetModel(virQEMUCaps *qemuCaps,
                 break;
             case VIR_DOMAIN_VIDEO_TYPE_VIRTIO:
                 model = "virtio-gpu";
+                *virtio = true;
                 break;
             case VIR_DOMAIN_VIDEO_TYPE_DEFAULT:
             case VIR_DOMAIN_VIDEO_TYPE_VGA:
@@ -4253,14 +4259,15 @@ qemuBuildDeviceVideoStr(const virDomainDef *def,
     g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
     const char *model = NULL;
     virTristateSwitch accel3d = VIR_TRISTATE_SWITCH_ABSENT;
+    bool virtio = false;
 
     if (video->accel)
         accel3d = video->accel->accel3d;
 
-    if (!(model = qemuDeviceVideoGetModel(qemuCaps, video)))
+    if (!(model = qemuDeviceVideoGetModel(qemuCaps, video, &virtio)))
         return NULL;
 
-    if (STREQ(model, "virtio-gpu") || STREQ(model, "vhost-user-gpu")) {
+    if (virtio) {
         if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_GL_PCI) &&
             accel3d == VIR_TRISTATE_SWITCH_ON &&
             STREQ(model, "virtio-gpu"))