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


Reply via email to