<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>