[Virtio-GPU Venus] QEMU Virtio-GPU Venus with Lavapipe ICD shows corrupted graphical output along with error prints
Host environment
- Operating system: Ubuntu-25.04
- OS/kernel version: 6.14.0-7-generic
- Architecture: x86_64
- QEMU flavor: qemu-system-x86_64
- QEMU version: QEMU emulator version 9.2.90 (v10.0.0-rc0)
- QEMU command line:
VK_DRIVER_FILES=/usr/share/vulkan/icd.d/lvp_icd.x86_64.json ./qemu-system-x86_64 -enable-kvm -M q35 -smp 4 -m 4G -cpu host -net nic,model=virtio -net user,hostfwd=tcp::2222-:22 -d guest_errors -device virtio-vga-gl,hostmem=4G,blob=true,venus=true -vga none -display gtk,gl=on,show-cursor=on -usb -device usb-tablet -object memory-backend-memfd,id=mem1,size=4G -machine memory-backend=mem1 -hda ubuntu-2504.qcow2
Emulated/Virtualized environment
- Operating system: Ubuntu-25.04
- OS/kernel version: 6.14.0-7-generic
- Architecture: x86_64
Description of problem
QEMU Virtio-GPU Venus with Lavapipe ICD shows corrupted graphical output (screenshots attached ahead) along with the following error prints, as guest_errors are enabled in QEMU command line -d guest_errors:
VK_DRIVER_FILES=/usr/share/vulkan/icd.d/lvp_icd.x86_64.json ./qemu-system-x86_64 -enable-kvm -M q35 -smp 4 -m 4G -cpu host -net nic,model=virtio -net user,hostfwd=tcp::2222-:22 -d guest_errors -device virtio-vga-gl,hostmem=4G,blob=true,venus=true -vga none -display gtk,gl=on,show-cursor=on -usb -device usb-tablet -object memory-backend-memfd,id=mem1,size=4G -machine memory-backend=mem1 -hda ubuntu-2504.qcow2
virtio_gpu_virgl_unmap_resource_blob: failed to unmap virgl resource: Invalid argument
virtio_gpu_virgl_process_cmd: ctrl 0x209, error 0x1200
virtio_gpu_virgl_unmap_resource_blob: failed to unmap virgl resource: Invalid argument
virtio_gpu_virgl_process_cmd: ctrl 0x209, error 0x1200
virtio_gpu_virgl_unmap_resource_blob: failed to unmap virgl resource: Invalid argument
virtio_gpu_virgl_process_cmd: ctrl 0x209, error 0x1200
virtio_gpu_virgl_unmap_resource_blob: failed to unmap virgl resource: Invalid argument
virtio_gpu_virgl_process_cmd: ctrl 0x209, error 0x1200
virtio_gpu_virgl_unmap_resource_blob: failed to unmap virgl resource: Invalid argument
virtio_gpu_virgl_process_cmd: ctrl 0x209, error 0x1200
virtio_gpu_virgl_unmap_resource_blob: failed to unmap virgl resource: Invalid argument
virtio_gpu_virgl_process_cmd: ctrl 0x209, error 0x1200
Steps to reproduce
- Used steps mentioned here: https://gist.github.com/peppergrayxyz/fdc9042760273d137dddd3e97034385f, to build virglrenderer-1.1.0 with Venus support, and to build QEMU (latest: v10.0.0-rc1) with virglrenderer support.
- Run QEMU with Lavapipe ICD using the command shared above.
- When the QEMU guest is up, install required packages such as
sudo apt-get install -y mesa* vulkan* libvulkan* vkmarkand run vkcube / vkmark with VirtIO ICD:
VK_DRIVER_FILES=/usr/share/vulkan/icd.d/virtio_icd.x86_64.json vkcube --wsi wayland
Additional information
Attaching screenshots for the error observed on guest side:
,
Collected logs with tracing enabled (meson setup -Dvenus=true -Dvenus-validate=true -Dvideo=true -Dtracing=stderr build) in virglrenderer as well: virgl-tracing-stderr.log. Search for error in the log file.
Edited by hashraf91