Hi, > +VhostUserGpuCursorUpdate > +^^^^^^^^^^^^^^^^^^^^^^^^ > + > ++-----+-------+-------+--------+ > +| pos | hot_x | hot_y | cursor | > ++-----+-------+-------+--------+ > + > +:pos: a ``VhostUserGpuCursorPos``, the cursor location > + > +:hot_x/hot_y: ``u32``, the cursor hot location > + > +:cursor: ``[u32; 64 * 64]``, 64x64 RGBA cursor data
Should clarify here what exactly RGBA is. (PIXMAN_a8r8g8b8 I guess). > +VhostUserGpuUpdate > +^^^^^^^^^^^^^^^^^^ > + > ++------------+---+---+---+---+------+ > +| scanout-id | x | y | w | h | data | > ++------------+---+---+---+---+------+ > + > +:scanout-id: ``u32``, the scanout content to update > + > +:x/y/w/h: ``u32``, region of the update > + > +:data: RGBA data (the size is computed based on the region size, and > + the request type) Likewise. Also: alpha channel for the framebuffer? > +C structure > +----------- > + > +In QEMU the vhost-user-gpu message is implemented with the following struct: > + > +.. code:: c > + > + typedef struct VhostUserGpuMsg { > + uint32_t request; /* VhostUserGpuRequest */ > + uint32_t flags; > + uint32_t size; /* the following payload size */ uint32_t padding; > + union { > + VhostUserGpuCursorPos cursor_pos; > + VhostUserGpuCursorUpdate cursor_update; > + VhostUserGpuScanout scanout; > + VhostUserGpuUpdate update; > + VhostUserGpuDMABUFScanout dmabuf_scanout; > + struct virtio_gpu_resp_display_info display_info; > + uint64_t u64; ... so this 64bit value will be aligned. cheers, Gerd