Hi Afaik, the goal of the seperate cursor queue is to update cursor quickly (probably to give good input responsiveness). However, the VIRTIO_GPU_CMD_UPDATE_CURSOR references a surface that is uploaded via the ctrl queue. The same resource id may be reused for cursor update. But there is no synchronization between the two queues. So often, the cursor set results in last update being shown. Should the kernel wait for the update to finish? But then why having 2 different queues? Should the update be done on the cursor queue instead? or should the different cursor be cached (with different id) and qemu to do the synchronization?
-- Marc-André Lureau