mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
radv/video: Send slice control, spec misc and deblocking params every frame
These params can change per frame, so we need to send the values to firmware on every frame instead of only once at session init. Cc: mesa-stable Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36353>
This commit is contained in:
parent
947e647df8
commit
e3715df4ee
1 changed files with 6 additions and 11 deletions
|
|
@ -2614,15 +2614,6 @@ begin(struct radv_cmd_buffer *cmd_buffer, const VkVideoEncodeInfoKHR *enc_info)
|
|||
|
||||
radv_enc_op_init(cmd_buffer);
|
||||
radv_enc_session_init(cmd_buffer, enc_info);
|
||||
if (vid->vk.op == VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR) {
|
||||
radv_enc_slice_control(cmd_buffer, enc_info);
|
||||
radv_enc_spec_misc_h264(cmd_buffer, enc_info);
|
||||
radv_enc_deblocking_filter_h264(cmd_buffer, enc_info);
|
||||
} else if (vid->vk.op == VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR) {
|
||||
radv_enc_slice_control_hevc(cmd_buffer, enc_info);
|
||||
radv_enc_spec_misc_hevc(cmd_buffer, enc_info);
|
||||
radv_enc_deblocking_filter_hevc(cmd_buffer, enc_info);
|
||||
}
|
||||
radv_enc_layer_control(cmd_buffer, &vid->rc_layer_control);
|
||||
radv_enc_rc_session_init(cmd_buffer);
|
||||
radv_enc_quality_params(cmd_buffer);
|
||||
|
|
@ -2708,11 +2699,15 @@ radv_vcn_encode_video(struct radv_cmd_buffer *cmd_buffer, const VkVideoEncodeInf
|
|||
} while (++i < vid->rc_layer_control.num_temporal_layers);
|
||||
}
|
||||
|
||||
// encode headers
|
||||
// ctx
|
||||
if (vid->vk.op == VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR) {
|
||||
radv_enc_slice_control(cmd_buffer, enc_info);
|
||||
radv_enc_spec_misc_h264(cmd_buffer, enc_info);
|
||||
radv_enc_deblocking_filter_h264(cmd_buffer, enc_info);
|
||||
radv_enc_headers_h264(cmd_buffer, enc_info);
|
||||
} else if (vid->vk.op == VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR) {
|
||||
radv_enc_slice_control_hevc(cmd_buffer, enc_info);
|
||||
radv_enc_spec_misc_hevc(cmd_buffer, enc_info);
|
||||
radv_enc_deblocking_filter_hevc(cmd_buffer, enc_info);
|
||||
radv_enc_headers_hevc(cmd_buffer, enc_info);
|
||||
} else if (vid->vk.op == VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR) {
|
||||
radv_enc_av1_tile_config(cmd_buffer, enc_info);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue