From 5a6c9404b42b5dc00ea8ded05139892073dd74f5 Mon Sep 17 00:00:00 2001 From: Gurchetan Singh Date: Mon, 3 Dec 2018 10:42:01 -0800 Subject: [PATCH] vrend: add new protocol for transfers Like inline write, but uses resource's iovecs. Reviewed-by: Gert Wollny --- src/virgl_hw.h | 1 + src/virgl_protocol.h | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/virgl_hw.h b/src/virgl_hw.h index 3da6848..07f5d73 100644 --- a/src/virgl_hw.h +++ b/src/virgl_hw.h @@ -238,6 +238,7 @@ enum virgl_formats { #define VIRGL_CAP_GUEST_MAY_INIT_LOG (1 << 14) #define VIRGL_CAP_SRGB_WRITE_CONTROL (1 << 15) #define VIRGL_CAP_QBO (1 << 16) +#define VIRGL_CAP_TRANSFER (1 << 17) /* virgl bind flags - these are compatible with mesa 10.5 gallium. * but are fixed, no other should be passed to virgl either. diff --git a/src/virgl_protocol.h b/src/virgl_protocol.h index d9f58ce..297fbaf 100644 --- a/src/virgl_protocol.h +++ b/src/virgl_protocol.h @@ -98,6 +98,8 @@ enum virgl_context_cmd { VIRGL_CCMD_SET_ATOMIC_BUFFERS, VIRGL_CCMD_SET_DEBUG_FLAGS, VIRGL_CCMD_GET_QUERY_RESULT_QBO, + VIRGL_CCMD_TRANSFER3D, + VIRGL_CCMD_END_TRANSFERS, VIRGL_MAX_COMMANDS }; @@ -573,4 +575,13 @@ enum virgl_context_cmd { #define VIRGL_QUERY_RESULT_QBO_OFFSET 5 #define VIRGL_QUERY_RESULT_QBO_INDEX 6 +#define VIRGL_TRANSFER_TO_HOST 1 +#define VIRGL_TRANSFER_FROM_HOST 2 + +/* Transfer */ +#define VIRGL_TRANSFER3D_SIZE 13 +/* The first 11 dwords are the same as VIRGL_RESOURCE_IW_* */ +#define VIRGL_TRANSFER3D_DATA_OFFSET 12 +#define VIRGL_TRANSFER3D_DIRECTION 13 + #endif