id = 2875 title = "[Virtio-GPU Venus] QEMU Virtio-GPU Venus with Lavapipe ICD shows corrupted graphical output along with error prints" state = "opened" created_at = "2025-03-20T06:06:17.233Z" closed_at = "n/a" labels = ["device:graphics", "device:virtio"] url = "https://gitlab.com/qemu-project/qemu/-/issues/2875" host-os = "Ubuntu-25.04" host-arch = "x86_64" qemu-version = "QEMU emulator version 9.2.90 (v10.0.0-rc0)" guest-os = "Ubuntu-25.04" guest-arch = "x86_64" description = """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 ```""" reproduce = """1. 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. 2. Run QEMU with Lavapipe ICD using the command shared above. 3. When the QEMU guest is up, install required packages such as `sudo apt-get install -y mesa* vulkan* libvulkan* vkmark` and run vkcube / vkmark with VirtIO ICD: ``` VK_DRIVER_FILES=/usr/share/vulkan/icd.d/virtio_icd.x86_64.json vkcube --wsi wayland ```""" additional = """Attaching screenshots for the error observed on guest side: ![virtio-gpu-venus-_lvp_-vkcube](/uploads/a04f4006a07b25a078231b5d0396c508/virtio-gpu-venus-_lvp_-vkcube.png), ![virtio-gpu-venus-_lvp_-dmesg](/uploads/a8caea5c2bc926266f2268c35716518b/virtio-gpu-venus-_lvp_-dmesg.png) 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](/uploads/202c698b7c265cde7c83b441a6a7abdb/virgl-tracing-stderr.log). Search for error in the log file."""