Is vdagent required for enabling multiple monitors?
Hope this is the right place to ask this question. I'm reading the doc Spice with multiple monitors. Under Device implementation
section:
Newer versions of the QXL implementation (for example, RHEL7 and newer) provide an implementation of the monitors config callback function mentioned above. In broad terms, this callback function updates some internal ROM data within the virtual device and then triggers an interrupt within the guest. The guest driver handles this interrupt and generates a hotplug event. This hotplug event is then handled by the userspace software in the same way a normal physical hotplug event would be handled. This has the advantage of consolidating all of the monitor reconfiguration functionality within a single component (in GNOME3, that component is the window manager) instead of both the vdagent and the desktop environment responsible display configuration in different situations. In the past this duplication has caused minor issues where the desktop environment attempted to apply a saved display configuration that conflicted with the vdagent.
And under Additional Notes
section:
Without a spice vdagent running in the guest, it may be possible to enable or disable displays from within the guest (and the spice client will adapt to those changes), but it will not be possible to enable or disable displays from the client.
Does this mean on newer QXL DRM driver vdagent is not required to enable multiple monitors?
However, when I tried in remote-viewer connected to a Debian 11 VM with QEMU flag -device qxl-vga,max_outputs=4,ram_size_mb=8,vgamem_mb=64,vram_size_mb=128
, only Display 1
was enabled. All other displays were grayed out. And modetest
showed that only the first connector was in connected
status. After installing spice-vdagent
all displays could be enabled and disabled without any issue.
What does enable or disable displays from within the guest
mean? Do I need to call some qxl ioctls to switch connectors status from disconnected
to connected
?
Thanks in advance!