I'll add the patch to the test for jpeg and avc to adapt to this
change as the tests currently only account for UNSUPPORTED_ENTRYPOINT

Thanks for the feedback Haihao and Artie.

-- 
Daniel.

On Wed, Oct 19, 2016 at 6:25 AM, Xiang, Haihao <[email protected]> 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:[email protected]] On Behalf Of Eoff,
>>Ullysses A
>>Sent: Wednesday, October 19, 2016 2:26 AM
>>To: Charles, Daniel <[email protected]>
>>Cc: [email protected]
>>Subject: Re: [Libva] [PATCH][libva-intel-driver] i965_validate_config: return
>>unsupported profile
>>
>>
>>> -----Original Message-----
>>> From: Charles, Daniel [mailto:[email protected]]
>>> Sent: Tuesday, October 18, 2016 11:09 AM
>>> To: Eoff, Ullysses A <[email protected]>
>>> Cc: [email protected]
>>> 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
>>> <[email protected]> wrote:
>>> >> -----Original Message-----
>>> >> From: Charles, Daniel [mailto:[email protected]]
>>> >> Sent: Tuesday, October 18, 2016 10:20 AM
>>> >> To: Eoff, Ullysses A <[email protected]>
>>> >> Cc: [email protected]
>>> >> 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
>>> >> <[email protected]> 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:[email protected]] On Behalf
>>Of Daniel Charles
>>> >> >> Sent: Monday, October 17, 2016 5:45 PM
>>> >> >> To: [email protected]
>>> >> >> 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 <[email protected]>
>>> >> >> ---
>>> >> >>  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
>>> >> >> [email protected]
>>> >> >> https://lists.freedesktop.org/mailman/listinfo/libva
>>_______________________________________________
>>Libva mailing list
>>[email protected]
>>https://lists.freedesktop.org/mailman/listinfo/libva
_______________________________________________
Libva mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libva

Reply via email to