[Libva] [PATCH 2/2][libva-intel-driver] i965_test_config: return properly unsupported profile

Eoff, Ullysses A ullysses.a.eoff at intel.com
Wed Oct 26 20:46:24 UTC 2016


> -----Original Message-----
> From: Libva [mailto:libva-bounces at lists.freedesktop.org] On Behalf Of Daniel Charles
> Sent: Tuesday, October 25, 2016 9:19 AM
> To: libva at lists.freedesktop.org
> Subject: [Libva] [PATCH 2/2][libva-intel-driver] i965_test_config: return properly unsupported profile
> 
> jpege and avce config tests to check against all supported
> entrypoints for a profile.  UNSUPPORTED_PROFILE is expected
> when no entrypoints are available for a given profile, else
> expect UNSUPPORTED_ENTRYPOINT
> 
> Signed-off-by: Daniel Charles <daniel.charles at intel.com>
> ---
>  test/i965_avce_config_test.cpp  | 27 +++++++++++++++++++--------
>  test/i965_jpege_config_test.cpp | 17 ++++++++---------
>  2 files changed, 27 insertions(+), 17 deletions(-)
> 
> diff --git a/test/i965_avce_config_test.cpp b/test/i965_avce_config_test.cpp
> index b30abbc..605c6a7 100644
> --- a/test/i965_avce_config_test.cpp
> +++ b/test/i965_avce_config_test.cpp
> @@ -45,8 +45,13 @@ VAStatus HasEncodeSupport()
>      struct i965_driver_data *i965(*env);
>      EXPECT_PTR(i965);
> 
> -    return HAS_H264_ENCODING(i965) ? VA_STATUS_SUCCESS :
> -        EntrypointNotSupported();
> +    if (HAS_H264_ENCODING(i965))
> +        return VA_STATUS_SUCCESS;
> +    else if (!HAS_H264_ENCODING(i965) && !HAS_H264_DECODING(i965)
> +             && !HAS_LP_H264_ENCODING(i965))
> +        return ProfileNotSupported();
> +    else
> +        return EntrypointNotSupported();
>  }
> 
>  VAStatus HasLPEncodeSupport()
> @@ -57,11 +62,13 @@ VAStatus HasLPEncodeSupport()
>      struct i965_driver_data *i965(*env);
>      EXPECT_PTR(i965);
> 
> -    if (IS_SKL(i965->intel.device_info))
> +    if (HAS_LP_H264_ENCODING(i965))

Please don't change this line... from the testing perspective, if the HW
is SKL, we want the expectation to be that avce is supported.  This is 
why we've redefined our own checks for codec support in the test suite
so we can make these types of assumptions.  Otherwise, we would've
just used the driver's i965_validate_config instead.  Later, we might add
more assumptions like this for other HW.

>          return VA_STATUS_SUCCESS;
> -
> -    return HAS_LP_H264_ENCODING(i965) ? VA_STATUS_SUCCESS :
> -        EntrypointNotSupported();
> +    else if (!HAS_H264_ENCODING(i965) && !HAS_H264_DECODING(i965)
> +             && !HAS_LP_H264_ENCODING(i965))
> +        return ProfileNotSupported();
> +    else
> +        return EntrypointNotSupported();
>  }
> 
>  VAStatus HasMVCEncodeSupport()
> @@ -72,8 +79,12 @@ VAStatus HasMVCEncodeSupport()
>      struct i965_driver_data *i965(*env);
>      EXPECT_PTR(i965);
> 
> -    return HAS_H264_MVC_ENCODING(i965) ? VA_STATUS_SUCCESS :
> -        EntrypointNotSupported();
> +    if (HAS_H264_MVC_ENCODING(i965))
> +        return VA_STATUS_SUCCESS;
> +    else if (!HAS_H264_MVC_ENCODING(i965) && !HAS_H264_MVC_DECODING(i965))
> +        return ProfileNotSupported();
> +    else
> +        return EntrypointNotSupported();
>  }
> 
>  static const std::vector<ConfigTestInput> inputs = {
> diff --git a/test/i965_jpege_config_test.cpp b/test/i965_jpege_config_test.cpp
> index 924eccb..fdf98b6 100644
> --- a/test/i965_jpege_config_test.cpp
> +++ b/test/i965_jpege_config_test.cpp
> @@ -27,11 +27,6 @@
>  namespace JPEG {
>  namespace Encode {
> 
> -VAStatus EntrypointNotSupported()
> -{
> -    return VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> -}
> -
>  VAStatus HasEncodeSupport()
>  {
>      I965TestEnvironment *env(I965TestEnvironment::instance());
> @@ -40,14 +35,18 @@ VAStatus HasEncodeSupport()
>      struct i965_driver_data *i965(*env);
>      EXPECT_PTR(i965);
> 
> -    return HAS_JPEG_ENCODING(i965) ? VA_STATUS_SUCCESS :
> -        EntrypointNotSupported();
> +    if (HAS_JPEG_ENCODING(i965))
> +        return VA_STATUS_SUCCESS;
> +    else if (!HAS_JPEG_ENCODING(i965) && !HAS_JPEG_DECODING(i965))
> +        return VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> +    else
> +        return VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
>  }
> 
>  static const std::vector<ConfigTestInput> inputs = {
>      {VAProfileJPEGBaseline, VAEntrypointEncPicture, &HasEncodeSupport},
> -    {VAProfileJPEGBaseline, VAEntrypointEncSlice, &EntrypointNotSupported},
> -    {VAProfileJPEGBaseline, VAEntrypointEncSliceLP, &EntrypointNotSupported},
> +    {VAProfileJPEGBaseline, VAEntrypointEncSlice, &HasEncodeSupport},
> +    {VAProfileJPEGBaseline, VAEntrypointEncSliceLP, &HasEncodeSupport},
>  };
> 
>  INSTANTIATE_TEST_CASE_P(
> --
> 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