anv/image: get width/height for each plane of a surface for video decoding.

This is especially for p010 format, which isn't supported for YCbCr
conversion yet.

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22202>
This commit is contained in:
Hyunjun Ko 2023-04-11 10:39:53 +09:00 committed by Marge Bot
parent 50374b1f9a
commit ad02e21ad2

View file

@ -861,6 +861,14 @@ add_primary_surface(struct anv_device *device,
assert(plane < ycbcr_info->n_planes);
width /= ycbcr_info->planes[plane].denominator_scales[0];
height /= ycbcr_info->planes[plane].denominator_scales[1];
} else if (isl_usage & ISL_SURF_USAGE_VIDEO_DECODE_BIT) {
/* To get proper width/height for P010 format,
* that isn't supported for YCbCr conversion yet
*/
width = util_format_get_plane_width(
vk_format_to_pipe_format(image->vk.format), plane, width);
height = util_format_get_plane_height(
vk_format_to_pipe_format(image->vk.format), plane, height);
}
ok = isl_surf_init(&device->isl_dev, &anv_surf->isl,