<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 11, 2021 at 4:55 PM Michal Prívozník <<a href="mailto:mprivozn@redhat.com">mprivozn@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 6/9/21 10:32 AM, Han Han wrote:<br>
> QEMU 6.1 will add virtio-gpu-gl-pci device to replace the virgl property<br>
> of virtio-gpu-pci device. Adapt to that change.<br>
> <br>
> Resolves: <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1967356" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=1967356</a><br>
> <br>
> Signed-off-by: Han Han <<a href="mailto:hhan@redhat.com" target="_blank">hhan@redhat.com</a>><br>
> ---<br>
>  src/qemu/qemu_command.c | 5 +++++<br>
>  1 file changed, 5 insertions(+)<br>
> <br>
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c<br>
> index 7834fc2130..6b9f13b219 100644<br>
> --- a/src/qemu/qemu_command.c<br>
> +++ b/src/qemu/qemu_command.c<br>
> @@ -4228,6 +4228,11 @@ qemuBuildDeviceVideoStr(const virDomainDef *def,<br>
>      }<br>
>  <br>
>      if (STREQ(model, "virtio-gpu") || STREQ(model, "vhost-user-gpu")) {<br>
> +        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_GL_PCI) &&<br>
> +            (video->accel->accel3d == VIR_TRISTATE_SWITCH_ON) &&<br>
<br>
Please note, that video->accel might be NULL (if there's no<br>
<acceleration/>). Since there's already a similar check we can do the<br>
following:<br>
<br>
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c<br>
index 6b9f13b219..a7dbe4584c 100644<br>
--- a/src/qemu/qemu_command.c<br>
+++ b/src/qemu/qemu_command.c<br>
@@ -4203,6 +4203,10 @@ qemuBuildDeviceVideoStr(const virDomainDef *def,<br>
 {<br>
     g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;<br>
     const char *model = NULL;<br>
+    virTristateSwitch accel3d = VIR_TRISTATE_SWITCH_ABSENT;<br>
+<br>
+    if (video->accel)<br>
+        accel3d = video->accel->accel3d;<br>
<br>
     /* We try to chose the best model for primary video device by preferring<br>
      * model with VGA compatibility mode.  For some video devices on some<br>
@@ -4229,7 +4233,7 @@ qemuBuildDeviceVideoStr(const virDomainDef *def,<br>
<br>
     if (STREQ(model, "virtio-gpu") || STREQ(model, "vhost-user-gpu")) {<br>
         if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_GL_PCI) &&<br>
-            (video->accel->accel3d == VIR_TRISTATE_SWITCH_ON) &&<br>
+            accel3d == VIR_TRISTATE_SWITCH_ON &&<br>
             STREQ(model, "virtio-gpu"))<br>
             model = "virtio-gpu-gl";<br>
<br>
@@ -4247,8 +4251,8 @@ qemuBuildDeviceVideoStr(const virDomainDef *def,<br>
         video->type == VIR_DOMAIN_VIDEO_TYPE_VIRTIO) {<br>
         if (video->accel &&<br>
             virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_VIRGL) &&<br>
-            (video->accel->accel3d == VIR_TRISTATE_SWITCH_ON ||<br>
-             video->accel->accel3d == VIR_TRISTATE_SWITCH_OFF)) {<br>
+            (accel3d == VIR_TRISTATE_SWITCH_ON ||<br>
+             accel3d == VIR_TRISTATE_SWITCH_OFF)) {<br>
             virBufferAsprintf(&buf, ",virgl=%s",<br>
                               virTristateSwitchTypeToString(video->accel->accel3d));<br></blockquote><div>Here it can be replaced by accel3d, too. Then no 'video->accel->accel3d' in the scope of qemuBuildDeviceVideoStr()<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
         }<br>
<br>
<br>
Michal<br>
<br>
</blockquote></div></div>