pipe: Add pipe_enc_cap_roi.log2_roi_min_block_pixel_size

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
This commit is contained in:
Sil Vilerino 2025-01-16 09:59:32 -05:00 committed by Marge Bot
parent 295ecc8d96
commit 17cdbc5729
2 changed files with 16 additions and 4 deletions

View file

@ -571,13 +571,20 @@ vlVaGetConfigAttributes(VADriverContextP ctx, VAProfile profile, VAEntrypoint en
case VAConfigAttribEncROI:
{
int roi_support = pscreen->get_video_param(pscreen, ProfileToPipe(profile),
union pipe_enc_cap_roi roi_pipe_caps = {};
roi_pipe_caps.value = pscreen->get_video_param(pscreen, ProfileToPipe(profile),
PIPE_VIDEO_ENTRYPOINT_ENCODE,
PIPE_VIDEO_CAP_ENC_ROI);
if (roi_support <= 0)
if (roi_pipe_caps.value <= 0)
value = VA_ATTRIB_NOT_SUPPORTED;
else
value = roi_support;
{
VAConfigAttribValEncROI roi_va_caps = {};
roi_va_caps.bits.num_roi_regions = roi_pipe_caps.bits.num_roi_regions;
roi_va_caps.bits.roi_rc_priority_support = roi_pipe_caps.bits.roi_rc_priority_support;
roi_va_caps.bits.roi_rc_qp_delta_support = roi_pipe_caps.bits.roi_rc_qp_delta_support;
value = roi_va_caps.value;
}
} break;
default:

View file

@ -2405,7 +2405,12 @@ union pipe_enc_cap_roi {
* because ROI delta QP is always required when VAConfigAttribRateControl == VA_RC_CQP.
*/
uint32_t roi_rc_qp_delta_support : 1;
uint32_t reserved : 22;
/*
* Indicates the minimum driver granularity to set a ROI region with a specific QP value.
* In other words, the QP delta block granularity pixel size of the hardware encoder.
*/
uint32_t log2_roi_min_block_pixel_size : 4;
uint32_t reserved : 18;
} bits;
uint32_t value;