virgl/video: Pass "max_references" to backend when creating a video codec
The "max_references" is an important value in sequence parameters, which will be used when encoding SPS headers. Signed-off-by: Boyuan Zhang <Boyuan.Zhang@amd.com> Signed-off-by: Feng Jiang <jiangfeng@kylinos.cn> Reviewed-by: Gert Wollny <gert.wollny@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18831>
This commit is contained in:
parent
d4f189fe69
commit
69ed5f13d8
2 changed files with 8 additions and 2 deletions
|
|
@ -1640,7 +1640,10 @@ void virgl_encode_emit_string_marker(struct virgl_context *ctx,
|
|||
void virgl_encode_create_video_codec(struct virgl_context *ctx,
|
||||
struct virgl_video_codec *cdc)
|
||||
{
|
||||
virgl_encoder_write_cmd_dword(ctx, VIRGL_CMD0(VIRGL_CCMD_CREATE_VIDEO_CODEC, 0, 7));
|
||||
struct virgl_screen *rs = virgl_screen(ctx->base.screen);
|
||||
uint32_t len = rs->caps.caps.v2.host_feature_check_version >= 14 ? 8 : 7;
|
||||
|
||||
virgl_encoder_write_cmd_dword(ctx, VIRGL_CMD0(VIRGL_CCMD_CREATE_VIDEO_CODEC, 0, len));
|
||||
virgl_encoder_write_dword(ctx->cbuf, cdc->handle);
|
||||
virgl_encoder_write_dword(ctx->cbuf, cdc->base.profile);
|
||||
virgl_encoder_write_dword(ctx->cbuf, cdc->base.entrypoint);
|
||||
|
|
@ -1648,6 +1651,8 @@ void virgl_encode_create_video_codec(struct virgl_context *ctx,
|
|||
virgl_encoder_write_dword(ctx->cbuf, cdc->base.level);
|
||||
virgl_encoder_write_dword(ctx->cbuf, cdc->base.width);
|
||||
virgl_encoder_write_dword(ctx->cbuf, cdc->base.height);
|
||||
if (rs->caps.caps.v2.host_feature_check_version >= 14)
|
||||
virgl_encoder_write_dword(ctx->cbuf, cdc->base.max_references);
|
||||
}
|
||||
|
||||
void virgl_encode_destroy_video_codec(struct virgl_context *ctx,
|
||||
|
|
|
|||
|
|
@ -709,7 +709,7 @@ enum vrend_tweak_type {
|
|||
#define VIRGL_LINK_SHADER_COMPUTE_HANDLE 6
|
||||
|
||||
/* VIRGL_CCMD_CREATE_VIDEO_CODEC */
|
||||
#define VIRGL_CREATE_VIDEO_CODEC_SIZE 7
|
||||
#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
|
||||
|
|
@ -717,6 +717,7 @@ enum vrend_tweak_type {
|
|||
#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_SIZE 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue