summary refs log tree commit diff stats
path: root/gitlab/issues_text/target_missing/host_missing/accel_missing/1794
blob: d1bcbf530b010b069f843b488ccabf6dcee3a719 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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)