device: 0.952 kernel: 0.945 graphic: 0.903 performance: 0.899 debug: 0.882 architecture: 0.876 files: 0.858 hypervisor: 0.850 PID: 0.841 assembly: 0.832 register: 0.814 mistranslation: 0.813 semantic: 0.808 ppc: 0.807 socket: 0.772 user-level: 0.761 virtual: 0.760 x86: 0.757 permissions: 0.755 arm: 0.738 risc-v: 0.737 vnc: 0.728 TCG: 0.720 network: 0.699 i386: 0.681 boot: 0.663 VMM: 0.644 peripherals: 0.619 KVM: 0.599 Virtio-GPU doesn't fill Response data for cursor queue Description of problem: Implementation of virtio-gpu in Qemu is likely not fill Response header in cursor commands. Inside the virtio 1.2 specification, document said: ``` VIRTIO_GPU_CMD_UPDATE_CURSOR Update cursor. Request data is struct virtio_gpu_update_cursor. Response type is VIRTIO_GPU_RESP_OK_NODATA. Full cursor update. Cursor will be loaded from the specified resource_id and will be moved to pos. The driver must transfer the cursor into the resource beforehand (using control queue commands) and make sure the commands to fill the resource are actually processed (using fencing). VIRTIO_GPU_CMD_MOVE_CURSOR Move cursor. Request data is struct virtio_gpu_update_cursor. Response type is VIRTIO_GPU_RESP_OK_NODATA. Move cursor to the place specified in pos. The other fields are not used and will be ignored by the device. ``` The cursor commands do have a response like control commands. But in [hw/display/virtio-gpu.c#L1136](https://gitlab.com/qemu-project/qemu/-/blob/master/hw/display/virtio-gpu.c#L1136), QEMU doesn't care anything about response, just fetching command and execute. It this a Implementation compromise or I missing something in the specification? Steps to reproduce: 1. Write any kernel that using virtio-gpu. 2. Run on qemu. 3. No response on cursor command. Additional information: Specification: [virtio-v1.2-cs01.html](https://docs.oasis-open.org/virtio/virtio/v1.2/cs01/virtio-v1.2-cs01.html#x1-3650007)