virgl: add protocol for resource transfers

Mostly similar to VIRGL_CCMD_RESOURCE_INLINE_WRITE.  However, this
uses the resource's already attached iovecs rather than the command
buffer to transfer the data.

v2: Used (1 << 16) not (1 << 15) [@gerddie]
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
This commit is contained in:
Gurchetan Singh 2018-11-19 10:28:26 -08:00 committed by Gert Wollny
parent 168c3ffce3
commit 0fcd48bac5
2 changed files with 12 additions and 0 deletions

View File

@ -234,6 +234,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.

View File

@ -94,6 +94,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,
};
/*
@ -565,4 +567,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