amd/vpelib: Add 420 semi-planar 12bit handling

Adds semi-Planar 420 12 bits formats.

Reviewed-by: Roy Chan <roy.chan@amd.com>
Acked-by: Alan Liu <haoping.liu@amd.com>
Signed-off-by: Navid Assadian <navid.assadian@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30715>
This commit is contained in:
Assadian, Navid 2024-06-06 14:31:31 -04:00 committed by Marge Bot
parent fcad791d07
commit cb32bcd3fe
3 changed files with 25 additions and 20 deletions

View file

@ -164,22 +164,25 @@ static struct vpe_caps caps = {
.p010 = 1, /**< planar 4:2:0 10-bit */
.p016 = 0, /**< planar 4:2:0 16-bit */
.ayuv = 0, /**< packed 4:4:4 */
.yuy2 = 0 /**< packed 4:2:2 */
.yuy2 = 0
},
.output_pixel_format_support = {.argb_packed_32b = 1,
.nv12 = 0,
.fp16 = 1,
.p010 = 0,
.p016 = 0,
.ayuv = 0,
.yuy2 = 0},
.max_upscale_factor = 64000,
.output_pixel_format_support =
{
.argb_packed_32b = 1,
.nv12 = 0,
.fp16 = 1,
.p010 = 0, /**< planar 4:2:0 10-bit */
.p016 = 0, /**< planar 4:2:0 16-bit */
.ayuv = 0, /**< packed 4:4:4 */
.yuy2 = 0
},
.max_upscale_factor = 64000,
/*
* 4:1 downscaling ratio : 1000 / 4 = 250
* vpelib does not support more than 4:1 to preserve quality
* due to the limitation of using maximum number of 8 taps
*/
*/
.max_downscale_factor = 250,
.pitch_alignment = 256,

View file

@ -116,16 +116,19 @@ static struct vpe_caps caps = {
.p010 = 1, /**< planar 4:2:0 10-bit */
.p016 = 0, /**< planar 4:2:0 16-bit */
.ayuv = 0, /**< packed 4:4:4 */
.yuy2 = 0 /**< packed 4:2:2 */
.yuy2 = 0
},
.output_pixel_format_support = {.argb_packed_32b = 1,
.nv12 = 0,
.fp16 = 1,
.p010 = 0,
.p016 = 0,
.ayuv = 0,
.yuy2 = 0},
.max_upscale_factor = 64000,
.output_pixel_format_support =
{
.argb_packed_32b = 1,
.nv12 = 0,
.fp16 = 1,
.p010 = 0, /**< planar 4:2:0 10-bit */
.p016 = 0, /**< planar 4:2:0 16-bit */
.ayuv = 0, /**< packed 4:4:4 */
.yuy2 = 0
},
.max_upscale_factor = 64000,
// 6:1 downscaling ratio: 1000/6 = 166.666
.max_downscale_factor = 167,

View file

@ -184,7 +184,6 @@ bool vpe_is_yuv444(enum vpe_surface_pixel_format format)
return (vpe_is_yuv444_8(format) || vpe_is_yuv444_10(format));
}
static uint8_t vpe_get_element_size_in_bytes(enum vpe_surface_pixel_format format, int plane_idx)
{
switch (format) {