[Libva] [PATCH][libva-intel-driver] i965_validate_config: return unsupported profile
Eoff, Ullysses A
ullysses.a.eoff at intel.com
Tue Oct 18 17:48:19 UTC 2016
> -----Original Message-----
> From: Charles, Daniel [mailto:daniel.charles at intel.com]
> Sent: Tuesday, October 18, 2016 10:20 AM
> To: Eoff, Ullysses A <ullysses.a.eoff at intel.com>
> Cc: libva at lists.freedesktop.org
> Subject: Re: [Libva] [PATCH][libva-intel-driver] i965_validate_config: return unsupported profile
>
> On Tue, Oct 18, 2016 at 8:25 AM, Eoff, Ullysses A
> <ullysses.a.eoff at intel.com> wrote:
> > Please run the tests... I suspect this patch will cause some to fail. Those tests will need updated too.
> >
>
> Ran the test suite on ToT, no regression found with this patch.
>
Ah yes, I see why now. The AVC and JPEG config tests still pass on most HW because UNSUPPORTED_PROFILE is only returned if *both* encode *and* decode are unsupported. Thus, if there is such HW that doesn't support one or the other then those tests will be regressed.
> --
> Daniel.
> > U. Artie
> >
> >> -----Original Message-----
> >> From: Libva [mailto:libva-bounces at lists.freedesktop.org] On Behalf Of Daniel Charles
> >> Sent: Monday, October 17, 2016 5:45 PM
> >> To: libva at lists.freedesktop.org
> >> Subject: [Libva] [PATCH][libva-intel-driver] i965_validate_config: return unsupported profile
> >>
> >> When all the profiles are not supported return
> >> VA_STATUS_ERROR_UNSUPPORTED_PROFILE instead of
> >> VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT.
> >>
> >> Also change the style on the code modified to be common
> >> on all cases
> >>
> >> Signed-off-by: Daniel Charles <daniel.charles at intel.com>
> >> ---
> >> src/i965_drv_video.c | 49 ++++++++++++++++++++++++++++++++++++++++---------
> >> 1 file changed, 40 insertions(+), 9 deletions(-)
> >>
> >> diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
> >> index fbf2cda..0830ae0 100644
> >> --- a/src/i965_drv_video.c
> >> +++ b/src/i965_drv_video.c
> >> @@ -711,6 +711,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> >> if ((HAS_MPEG2_DECODING(i965) && entrypoint == VAEntrypointVLD) ||
> >> (HAS_MPEG2_ENCODING(i965) && entrypoint == VAEntrypointEncSlice)) {
> >> va_status = VA_STATUS_SUCCESS;
> >> + } else if (!HAS_MPEG2_DECODING(i965) && !HAS_MPEG2_ENCODING(i965)){
> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> >> } else {
> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> >> }
> >> @@ -723,6 +725,9 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> >> (HAS_H264_ENCODING(i965) && entrypoint == VAEntrypointEncSlice) ||
> >> (HAS_LP_H264_ENCODING(i965) && entrypoint == VAEntrypointEncSliceLP)) {
> >> va_status = VA_STATUS_SUCCESS;
> >> + } else if (!HAS_H264_DECODING(i965) && !HAS_H264_ENCODING(i965) &&
> >> + !HAS_LP_H264_ENCODING(i965)){
> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> >> } else {
> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> >> }
> >> @@ -733,6 +738,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> >> case VAProfileVC1Advanced:
> >> if (HAS_VC1_DECODING(i965) && entrypoint == VAEntrypointVLD) {
> >> va_status = VA_STATUS_SUCCESS;
> >> + } else if (!HAS_VC1_DECODING(i965)) {
> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> >> } else {
> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> >> }
> >> @@ -741,6 +748,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> >> case VAProfileNone:
> >> if (HAS_VPP(i965) && VAEntrypointVideoProc == entrypoint) {
> >> va_status = VA_STATUS_SUCCESS;
> >> + } else if (!HAS_VPP(i965)){
> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> >> } else {
> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> >> }
> >> @@ -750,6 +759,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> >> if ((HAS_JPEG_DECODING(i965) && entrypoint == VAEntrypointVLD) ||
> >> (HAS_JPEG_ENCODING(i965) && entrypoint == VAEntrypointEncPicture)) {
> >> va_status = VA_STATUS_SUCCESS;
> >> + } else if (!HAS_JPEG_DECODING(i965) && !HAS_JPEG_ENCODING(i965)){
> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> >> } else {
> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> >> }
> >> @@ -759,6 +770,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> >> if ((HAS_VP8_DECODING(i965) && entrypoint == VAEntrypointVLD) ||
> >> (HAS_VP8_ENCODING(i965) && entrypoint == VAEntrypointEncSlice)) {
> >> va_status = VA_STATUS_SUCCESS;
> >> + } else if (!HAS_VP8_DECODING(i965) && !HAS_VP8_ENCODING(i965)){
> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> >> } else {
> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> >> }
> >> @@ -768,8 +781,12 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> >> case VAProfileH264StereoHigh:
> >> if ((HAS_H264_MVC_DECODING_PROFILE(i965, profile) &&
> >> entrypoint == VAEntrypointVLD) ||
> >> - (HAS_H264_MVC_ENCODING(i965) && entrypoint == VAEntrypointEncSlice)) {
> >> + (HAS_H264_MVC_ENCODING(i965) &&
> >> + entrypoint == VAEntrypointEncSlice)) {
> >> va_status = VA_STATUS_SUCCESS;
> >> + } else if(!HAS_H264_MVC_DECODING_PROFILE(i965, profile) &&
> >> + !HAS_H264_MVC_ENCODING(i965)) {
> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> >> } else {
> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> >> }
> >> @@ -778,32 +795,46 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> >>
> >> case VAProfileHEVCMain:
> >> if ((HAS_HEVC_DECODING(i965) && (entrypoint == VAEntrypointVLD))||
> >> - (HAS_HEVC_ENCODING(i965) && (entrypoint == VAEntrypointEncSlice)))
> >> + (HAS_HEVC_ENCODING(i965) && (entrypoint == VAEntrypointEncSlice))) {
> >> va_status = VA_STATUS_SUCCESS;
> >> - else
> >> + } else if (!HAS_HEVC_DECODING(i965) && !HAS_HEVC_ENCODING(i965)) {
> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> >> + } else {
> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> >> + }
> >>
> >> break;
> >>
> >> case VAProfileHEVCMain10:
> >> if ((HAS_HEVC10_DECODING(i965) && (entrypoint == VAEntrypointVLD))||
> >> - (HAS_HEVC10_ENCODING(i965) && (entrypoint == VAEntrypointEncSlice)))
> >> + (HAS_HEVC10_ENCODING(i965) &&
> >> + (entrypoint == VAEntrypointEncSlice))) {
> >> va_status = VA_STATUS_SUCCESS;
> >> - else
> >> + } else if (!HAS_HEVC10_DECODING(i965) && !HAS_HEVC10_ENCODING(i965)) {
> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> >> + } else {
> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> >> + }
> >>
> >> break;
> >>
> >> case VAProfileVP9Profile0:
> >> case VAProfileVP9Profile2:
> >> - if ((HAS_VP9_DECODING_PROFILE(i965, profile)) && (entrypoint == VAEntrypointVLD))
> >> + if ((HAS_VP9_DECODING_PROFILE(i965, profile)) &&
> >> + (entrypoint == VAEntrypointVLD)) {
> >> va_status = VA_STATUS_SUCCESS;
> >> - else if ((HAS_VP9_ENCODING(i965)) && (entrypoint == VAEntrypointEncSlice))
> >> + } else if ((HAS_VP9_ENCODING(i965)) &&
> >> + (entrypoint == VAEntrypointEncSlice)) {
> >> va_status = VA_STATUS_SUCCESS;
> >> - else if ((profile == VAProfileVP9Profile0) && i965->wrapper_pdrvctx)
> >> + } else if (profile == VAProfileVP9Profile0 && i965->wrapper_pdrvctx) {
> >> va_status = VA_STATUS_SUCCESS;
> >> - else
> >> + } else if(!HAS_VP9_DECODING_PROFILE(i965, profile) &&
> >> + !HAS_VP9_ENCODING(i965) && !i965->wrapper_pdrvctx) {
> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> >> + } else {
> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> >> + }
> >> +
> >> break;
> >>
> >> default:
> >> --
> >> 2.5.5
> >>
> >> _______________________________________________
> >> Libva mailing list
> >> Libva at lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/libva
More information about the Libva
mailing list