summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGurchetan Singh <[email protected]>2018-11-19 10:28:26 -0800
committerGert Wollny <[email protected]>2019-02-15 11:19:05 +0100
commit0fcd48bac51f344b805e9cdc32156b0a8efdbba0 (patch)
tree84cf03ebafb74e3f06908e8757dcac8e7f161437
parent168c3ffce34e8c0f81d6bf32da82c0b5427f5c89 (diff)
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 <[email protected]>
-rw-r--r--src/gallium/drivers/virgl/virgl_hw.h1
-rw-r--r--src/gallium/drivers/virgl/virgl_protocol.h11
2 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/drivers/virgl/virgl_hw.h b/src/gallium/drivers/virgl/virgl_hw.h
index 8759e577077..fec9ce857d7 100644
--- a/src/gallium/drivers/virgl/virgl_hw.h
+++ b/src/gallium/drivers/virgl/virgl_hw.h
@@ -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.
diff --git a/src/gallium/drivers/virgl/virgl_protocol.h b/src/gallium/drivers/virgl/virgl_protocol.h
index 57333553d77..62b28bd5d00 100644
--- a/src/gallium/drivers/virgl/virgl_protocol.h
+++ b/src/gallium/drivers/virgl/virgl_protocol.h
@@ -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