virgl: Pass resource size and transfer offsets
authorTomeu Vizoso <tomeu.vizoso@collabora.com>
Thu, 4 Oct 2018 14:40:08 +0000 (16:40 +0200)
committerGert Wollny <gw.fossdev@gmail.com>
Sat, 6 Oct 2018 11:12:44 +0000 (13:12 +0200)
commit9d81cd8e7c0cb44e09cf650da4834a1dc647a4d2
tree3a22e22d20f464cecee77a32b6925a5fe0d680df
parent5d7858f1517eb0961811e4106ba11c011d7002e3
virgl: Pass resource size and transfer offsets

Pass the size of a resource when creating it so a backing can be kept in
the other side.

Also pass the required offset to transfer commands.

This moves vtest closer to how virtio-gpu works, making it more useful
for testing.

v2: - Use new messages for creation and transfers, as changing the
      behavior of the existing messages would be messy given that we don't
      want to break compatibility with older servers.

v3: - Use correct strides: The resource corresponding to the output display
      might have a differnt line stride then the IOVs, so when reading back
      to this resource take the resource stride and the the IOV stride
      into account.

v4: Fix transfer size calculation (Andrey Simiklit)

v5: Add comment about transfer size value in the PUT commend (Gurchetan).
    Add a comment about the size correction for transfers for reading and
    writing the resource. Fixing this by correctly evaluating the size
    upfront will need some work also  on the virglrenderer side.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> (v2)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c
src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c
src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.h
src/gallium/winsys/virgl/vtest/vtest_protocol.h