id = 2949 title = "VNC: virtio-gpu outputs not displayed by VNC client" state = "opened" created_at = "2025-05-06T11:00:38.779Z" closed_at = "n/a" labels = ["GUI", "device:graphics", "device:virtio"] url = "https://gitlab.com/qemu-project/qemu/-/issues/2949" host-os = "Ubuntu 22.04.5 LTS" host-arch = "x86_64" qemu-version = "v10.0.0" guest-os = "Ubuntu 24.04.2 LTS" guest-arch = "x86_64" description = """When combining virtio-gpu multiple outputs with VNC display, only output 0 is enabled. Additional output are enabled when VNC client sent SetDesktopSize command. The following statement assumes that all displays (gtk, sdl) are disabled except VNC: #""" reproduce = """1. Start Qemu 2. Start a VNC client on 5900 3. Start the second VNC client on 5901""" additional = """The state of an output is controlled by the [enabled_output_bitmask](https://gitlab.com/qemu-project/qemu/-/blob/master/include/hw/virtio/virtio-gpu.h#L158) which is initialized to `1` at [device realization](https://gitlab.com/qemu-project/qemu/-/blob/master/hw/display/virtio-gpu-base.c#L204), thus VNC0 is always enabled. Other devices will set this parameter during inititliazation by calling [dpy_set_ui_info](https://gitlab.com/qemu-project/qemu/-/blob/master/ui/console.c#L754) which schedules a call to [virtio_gpu_ui_info](https://gitlab.com/qemu-project/qemu/-/blob/master/hw/display/virtio-gpu-base.c#L89). However VNC calls this function only when handling [VNC_MSG_CLIENT_SET_DESKTOP_SIZE](https://gitlab.com/qemu-project/qemu/-/blob/master/ui/vnc.c#L2607) client command.\\ If the client does not support this command or never changes the size of the default window, the respective display will remain disabled."""