diff options
Diffstat (limited to 'src/virgl_protocol.h')
-rw-r--r-- | src/virgl_protocol.h | 87 |
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 |