aboutsummaryrefslogtreecommitdiff
path: root/src/virgl_protocol.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/virgl_protocol.h')
-rw-r--r--src/virgl_protocol.h87
1 files changed, 84 insertions, 3 deletions
diff --git a/src/virgl_protocol.h b/src/virgl_protocol.h
index c1797d98..98aa431e 100644
--- a/src/virgl_protocol.h
+++ b/src/virgl_protocol.h
@@ -116,6 +116,19 @@ enum virgl_context_cmd {
VIRGL_CCMD_PIPE_RESOURCE_SET_TYPE,
VIRGL_CCMD_GET_MEMORY_INFO,
VIRGL_CCMD_SEND_STRING_MARKER,
+ VIRGL_CCMD_LINK_SHADER,
+
+ /* video codec */
+ VIRGL_CCMD_CREATE_VIDEO_CODEC,
+ VIRGL_CCMD_DESTROY_VIDEO_CODEC,
+ VIRGL_CCMD_CREATE_VIDEO_BUFFER,
+ VIRGL_CCMD_DESTROY_VIDEO_BUFFER,
+ VIRGL_CCMD_BEGIN_FRAME,
+ VIRGL_CCMD_DECODE_MACROBLOCK,
+ VIRGL_CCMD_DECODE_BITSTREAM,
+ VIRGL_CCMD_ENCODE_BITSTREAM,
+ VIRGL_CCMD_END_FRAME,
+
VIRGL_MAX_COMMANDS
};
@@ -370,7 +383,7 @@ enum virgl_context_cmd {
#define VIRGL_OBJ_SAMPLE_STATE_S0_COMPARE_MODE(x) (((x) & 0x1) << 15)
#define VIRGL_OBJ_SAMPLE_STATE_S0_COMPARE_FUNC(x) (((x) & 0x7) << 16)
#define VIRGL_OBJ_SAMPLE_STATE_S0_SEAMLESS_CUBE_MAP(x) (((x) & 0x1) << 19)
-#define VIRGL_OBJ_SAMPLE_STATE_MAX_ANISOTROPY (((x & 0x3f)) << 20)
+#define VIRGL_OBJ_SAMPLE_STATE_S0_MAX_ANISOTROPY(x) (((x & 0x3f)) << 20)
#define VIRGL_OBJ_SAMPLER_STATE_LOD_BIAS 3
#define VIRGL_OBJ_SAMPLER_STATE_MIN_LOD 4
@@ -607,12 +620,16 @@ enum virgl_context_cmd {
#define VIRGL_TRANSFER3D_DATA_OFFSET 12
#define VIRGL_TRANSFER3D_DIRECTION 13
-/* Copy transfer */
+/* Copy transfer to host and from host*/
#define VIRGL_COPY_TRANSFER3D_SIZE 14
/* The first 11 dwords are the same as VIRGL_RESOURCE_IW_* */
#define VIRGL_COPY_TRANSFER3D_SRC_RES_HANDLE 12
#define VIRGL_COPY_TRANSFER3D_SRC_RES_OFFSET 13
-#define VIRGL_COPY_TRANSFER3D_SYNCHRONIZED 14
+#define VIRGL_COPY_TRANSFER3D_FLAGS 14
+#define VIRGL_COPY_TRANSFER3D_FLAGS_SYNCHRONIZED (1 << 0)
+/* 1 << 1 means transfer from host.
+ 0 << 1 means transfer to host.*/
+#define VIRGL_COPY_TRANSFER3D_FLAGS_READ_FROM_HOST (1 << 1)
/* set tweak flags */
#define VIRGL_SET_TWEAKS_SIZE 2
@@ -673,4 +690,68 @@ enum vrend_tweak_type {
#define VIRGL_SEND_STRING_MARKER_STRING_SIZE 1
#define VIRGL_SEND_STRING_MARKER_OFFSET 2
+/* link shader program */
+#define VIRGL_LINK_SHADER_SIZE 6
+#define VIRGL_LINK_SHADER_VERTEX_HANDLE 1
+#define VIRGL_LINK_SHADER_FRAGMENT_HANDLE 2
+#define VIRGL_LINK_SHADER_GEOMETRY_HANDLE 3
+#define VIRGL_LINK_SHADER_TESS_CTRL_HANDLE 4
+#define VIRGL_LINK_SHADER_TESS_EVAL_HANDLE 5
+#define VIRGL_LINK_SHADER_COMPUTE_HANDLE 6
+
+/* VIRGL_CCMD_CREATE_VIDEO_CODEC */
+#define VIRGL_CREATE_VIDEO_CODEC_MIN_SIZE 7
+#define VIRGL_CREATE_VIDEO_CODEC_HANDLE 1
+#define VIRGL_CREATE_VIDEO_CODEC_PROFILE 2
+#define VIRGL_CREATE_VIDEO_CODEC_ENTRYPOINT 3
+#define VIRGL_CREATE_VIDEO_CODEC_CHROMA_FMT 4
+#define VIRGL_CREATE_VIDEO_CODEC_LEVEL 5
+#define VIRGL_CREATE_VIDEO_CODEC_WIDTH 6
+#define VIRGL_CREATE_VIDEO_CODEC_HEIGHT 7
+#define VIRGL_CREATE_VIDEO_CODEC_MAX_REF 8
+
+/* VIRGL_CCMD_DESTROY_VIDEO_CODEC */
+#define VIRGL_DESTROY_VIDEO_CODEC_MIN_SIZE 1
+#define VIRGL_DESTROY_VIDEO_CODEC_HANDLE 1
+
+/* VIRGL_CCMD_CREATE_VIDEO_BUFFER */
+#define VIRGL_CREATE_VIDEO_BUFFER_MIN_SIZE 5
+#define VIRGL_CREATE_VIDEO_BUFFER_HANDLE 1
+#define VIRGL_CREATE_VIDEO_BUFFER_FORMAT 2
+#define VIRGL_CREATE_VIDEO_BUFFER_WIDTH 3
+#define VIRGL_CREATE_VIDEO_BUFFER_HEIGHT 4
+#define VIRGL_CREATE_VIDEO_BUFFER_RES_BASE 5
+
+/* VIRGL_CCMD_DESTROY_VIDEO_BUFFER */
+#define VIRGL_DESTROY_VIDEO_BUFFER_MIN_SIZE 1
+#define VIRGL_DESTROY_VIDEO_BUFFER_HANDLE 1
+
+/* VIRGL_CCMD_BEGIN_FRAME */
+#define VIRGL_BEGIN_FRAME_MIN_SIZE 2
+#define VIRGL_BEGIN_FRAME_CDC_HANDLE 1
+#define VIRGL_BEGIN_FRAME_TGT_HANDLE 2
+
+/* VIRGL_CCMD_DECODE_MACROBLOCK */
+
+/* VIRGL_CCMD_DECODE_BITSTREAM */
+#define VIRGL_DECODE_BS_MIN_SIZE 5
+#define VIRGL_DECODE_BS_CDC_HANDLE 1
+#define VIRGL_DECODE_BS_TGT_HANDLE 2
+#define VIRGL_DECODE_BS_DSC_HANDLE 3
+#define VIRGL_DECODE_BS_BUF_HANDLE 4
+#define VIRGL_DECODE_BS_BUF_SIZE 5
+
+/* VIRGL_CCMD_ENCODE_BITSTREAM */
+#define VIRGL_ENCODE_BS_MIN_SIZE 5
+#define VIRGL_ENCODE_BS_CDC_HANDLE 1
+#define VIRGL_ENCODE_BS_SRC_HANDLE 2
+#define VIRGL_ENCODE_BS_DEST_HANDLE 3
+#define VIRGL_ENCODE_BS_DESC_HANDLE 4
+#define VIRGL_ENCODE_BS_FEED_HANDLE 5
+
+/* VIRGL_CCMD_END_FRAME */
+#define VIRGL_END_FRAME_MIN_SIZE 2
+#define VIRGL_END_FRAME_CDC_HANDLE 1
+#define VIRGL_END_FRAME_TGT_HANDLE 2
+
#endif