[Libva] [PATCH][libva-intel-driver] i965_validate_config: return unsupported profile

Sean V Kelley sean.v.kelley at intel.com
Mon Oct 24 22:34:12 UTC 2016


MJPEG Encoding will fail on more than just SNB - IVB, Haswell, Broadwell,
etc.  Make sure the tests identify the requisite platforms.

On Wed, Oct 19, 2016 at 6:25 AM, Xiang, Haihao <haihao.xiang at intel.com>
wrote:

>
> Neither JPEG decoding nor JPEG encoding is supported on SNB, JPEG cases
> will fail on SNB if don't change JPEG cases accordingly. On the old g4x,
> AVC cases will fail too.
>
> Thanks
> Haihao
>
>
> >-----Original Message-----
> >From: Libva [mailto:libva-bounces at lists.freedesktop.org] On Behalf Of
> Eoff,
> >Ullysses A
> >Sent: Wednesday, October 19, 2016 2:26 AM
> >To: Charles, Daniel <daniel.charles at intel.com>
> >Cc: libva at lists.freedesktop.org
> >Subject: Re: [Libva] [PATCH][libva-intel-driver] i965_validate_config:
> return
> >unsupported profile
> >
> >
> >> -----Original Message-----
> >> From: Charles, Daniel [mailto:daniel.charles at intel.com]
> >> Sent: Tuesday, October 18, 2016 11:09 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 10:48 AM, Eoff, Ullysses A
> >> <ullysses.a.eoff at intel.com> wrote:
> >> >> -----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.
> >>
> >> I am not sure I follow you here.
> >>
> >> Unsupported Profile is sent when neither encoder and decoder are
> >> supported (VC1 is only decoder, VPP is a special case and VP9 decoder
> >> can also be hybrid on some h/w).  When h/w only supports one of them
> >> (regardless which it is), it should return UNSUPPORTED_ENTRYPOINT as
> >> profile is supported at least once.  This patch is not changing this
> >> last scenario. My testing was done on a h/w that has Jpeg Decoder but
> >> no Jpeg Encoder and everything is okay.
> >>
> >
> >Right now, there are tests for AVC and JPEG that create a config for
> encode
> >and decode entrypoints.  Each test defines its own expected result of
> >CreateConfig and compares with the actual result.  If there is a platform
> that
> >doesn't support any of the entrypoints for AVC or JPEG, then the expected
> >result will be calculated wrong (i.e. the test expectation is not taking
> into
> >account your new changes).  (See i965_avce_config_test.cpp,
> >i965_avcd_config_test.cpp, i965_jpege_config_test.cpp and
> >i965_jpegd_config_test.cpp).
> >
> >U. Artie
> >
> >> --
> >> Daniel.
> >> >
> >> >> --
> >> >> 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
> >_______________________________________________
> >Libva mailing list
> >Libva at lists.freedesktop.org
> >https://lists.freedesktop.org/mailman/listinfo/libva
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libva
>



-- 
Sean V. Kelley <sean.v.kelley at intel.com>
Open Source Technology Center / SSG
Intel Corp.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libva/attachments/20161024/de83586a/attachment-0001.html>


More information about the Libva mailing list