mbox series

[0/2] Allow injection of virtio-gpu EDID name

Message ID 20241017215304.3916866-1-roqueh@google.com (mailing list archive)
Headers show
Series Allow injection of virtio-gpu EDID name | expand

Message

Roque Arcudia Hernandez Oct. 17, 2024, 9:53 p.m. UTC
Thanks to 72d277a7, 1ed2cb32, and others, EDID (Extended Display
Identification Data) is propagated by QEMU such that a virtual
display presents legitimate metadata (e.g., name, serial number,
preferred resolutions, etc.) to its connected guest.

This change adds the ability to specify the EDID name for a
particular virtio-vga display. Previously, every virtual display
would have the same name: "QEMU Monitor". Now, we can inject names of
displays in order to test guest behavior that is specific to display
names. We provide the ability to inject the display name from the
display configuration as that most closely resembles how real
displays work (hardware displays contain static EDID information that
is provided to every connected host).

This new behavior must be enabled by setting the edid_name boolean
property on the display device (it is disabled by default).

It should be noted that EDID names longer than 12 bytes will be
truncated per spec (I think?).

Testing: verified that when I specified 2 outputs for a virtio-gpu
with edid_name set, the names matched those that I configured with my
vnc display.

  -display vnc=localhost:0,id=aaa,display=vga,head=0,name=AAA \
  -display vnc=localhost:1,id=bbb,display=vga,head=1,name=BBB \
  -device virtio-vga,max_outputs=2,id=vga,edid_name=true

Andrew Keesler (2):
  ui: Allow injection of vnc display name
  hw/display: Allow injection of virtio-gpu EDID name

 hw/display/virtio-gpu-base.c   |  4 ++++
 include/hw/virtio/virtio-gpu.h |  5 +++++
 include/ui/console.h           |  2 ++
 ui/console-priv.h              |  1 +
 ui/console.c                   | 16 ++++++++++++++++
 ui/vnc.c                       |  8 +++++++-
 6 files changed, 35 insertions(+), 1 deletion(-)