mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +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>
(cherry picked from commit e3715df4ee)
This commit is contained in:
parent
772bc1dc06
commit
dc3f6f1c6a
2 changed files with 7 additions and 12 deletions
|
|
@ -1804,7 +1804,7 @@
|
|||
"description": "radv/video: Send slice control, spec misc and deblocking params every frame",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null,
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -1567,15 +1567,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);
|
||||
|
|
@ -1658,12 +1649,16 @@ 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);
|
||||
radv_enc_ctx(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);
|
||||
radv_enc_ctx(cmd_buffer, enc_info);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue