From df27e09267b5f7d603745713b5229eed884afe31 Mon Sep 17 00:00:00 2001 From: Sil Vilerino Date: Thu, 16 Jan 2025 09:07:20 -0500 Subject: [PATCH] pipe: Add profiles for HEVC 422 8/10b and 444 10b Reviewed-by: Jesse Natalie Reviewed by: Pohsiang (John) Hsu Reviewed-by: Jesse Natalie Part-of: --- src/gallium/auxiliary/util/u_video.h | 3 +++ src/gallium/auxiliary/vl/vl_codec.c | 2 +- src/gallium/frontends/va/va_private.h | 3 +++ src/gallium/include/pipe/p_video_enums.h | 3 +++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/util/u_video.h b/src/gallium/auxiliary/util/u_video.h index 5b1949d6107..bb29d078942 100644 --- a/src/gallium/auxiliary/util/u_video.h +++ b/src/gallium/auxiliary/util/u_video.h @@ -73,7 +73,10 @@ u_reduce_video_profile(enum pipe_video_profile profile) case PIPE_VIDEO_PROFILE_HEVC_MAIN_10: case PIPE_VIDEO_PROFILE_HEVC_MAIN_STILL: case PIPE_VIDEO_PROFILE_HEVC_MAIN_12: + case PIPE_VIDEO_PROFILE_HEVC_MAIN10_422: case PIPE_VIDEO_PROFILE_HEVC_MAIN_444: + case PIPE_VIDEO_PROFILE_HEVC_MAIN10_444: + case PIPE_VIDEO_PROFILE_HEVC_MAIN_422: return PIPE_VIDEO_FORMAT_HEVC; case PIPE_VIDEO_PROFILE_JPEG_BASELINE: diff --git a/src/gallium/auxiliary/vl/vl_codec.c b/src/gallium/auxiliary/vl/vl_codec.c index 7aa6b8f6834..a0b5d56f6d8 100644 --- a/src/gallium/auxiliary/vl/vl_codec.c +++ b/src/gallium/auxiliary/vl/vl_codec.c @@ -32,7 +32,7 @@ bool vl_codec_supported(struct pipe_screen *screen, enum pipe_video_profile profile, bool encode) { - static_assert(PIPE_VIDEO_PROFILE_MAX == 27, "Update table below when adding new video profiles"); + static_assert(PIPE_VIDEO_PROFILE_MAX == 30, "Update table below when adding new video profiles"); if (profile == PIPE_VIDEO_PROFILE_AV1_MAIN || profile == PIPE_VIDEO_PROFILE_AV1_PROFILE2) { if (encode) { diff --git a/src/gallium/frontends/va/va_private.h b/src/gallium/frontends/va/va_private.h index 86fe7fa8de5..36b7e0b68cc 100644 --- a/src/gallium/frontends/va/va_private.h +++ b/src/gallium/frontends/va/va_private.h @@ -278,6 +278,9 @@ PipeToProfile(enum pipe_video_profile profile) case PIPE_VIDEO_PROFILE_HEVC_MAIN_12: case PIPE_VIDEO_PROFILE_HEVC_MAIN_STILL: case PIPE_VIDEO_PROFILE_HEVC_MAIN_444: + case PIPE_VIDEO_PROFILE_HEVC_MAIN10_444: + case PIPE_VIDEO_PROFILE_HEVC_MAIN_422: + case PIPE_VIDEO_PROFILE_HEVC_MAIN10_422: case PIPE_VIDEO_PROFILE_UNKNOWN: return VAProfileNone; default: diff --git a/src/gallium/include/pipe/p_video_enums.h b/src/gallium/include/pipe/p_video_enums.h index 717877d99bc..4743f4645a7 100644 --- a/src/gallium/include/pipe/p_video_enums.h +++ b/src/gallium/include/pipe/p_video_enums.h @@ -68,6 +68,9 @@ enum pipe_video_profile PIPE_VIDEO_PROFILE_HEVC_MAIN_10, PIPE_VIDEO_PROFILE_HEVC_MAIN_STILL, PIPE_VIDEO_PROFILE_HEVC_MAIN_12, + PIPE_VIDEO_PROFILE_HEVC_MAIN10_444, + PIPE_VIDEO_PROFILE_HEVC_MAIN_422, + PIPE_VIDEO_PROFILE_HEVC_MAIN10_422, PIPE_VIDEO_PROFILE_HEVC_MAIN_444, PIPE_VIDEO_PROFILE_JPEG_BASELINE, PIPE_VIDEO_PROFILE_VP9_PROFILE0,