[Libva] [PATCH intel-driver v2 3/7] test: add wrapper for CreateSurfaces2

Zhao Yakui yakui.zhao at intel.com
Tue Sep 27 01:34:06 UTC 2016


On 09/27/2016 04:11 AM, U. Artie Eoff wrote:
> Add support for calling i965_CreateSurfaces2 so that we
> can pass VASurfaceAttributes.  This is needed to set a
> particular surface pixel format in some tests.
>
> We must call i965_CreateSurfaces2 via the vtable since
> it is a static function within the i965_drv_video.c
> file... thus hidden.
>

This looks good to me.

Add: Reviewed-by: Zhao Yakui <yakui.zhao at intel.com>

Thanks.
    Yakui

> Signed-off-by: U. Artie Eoff<ullysses.a.eoff at intel.com>
> ---
>   test/i965_test_fixture.cpp | 20 ++++++++++++++++----
>   test/i965_test_fixture.h   | 10 +++++++---
>   2 files changed, 23 insertions(+), 7 deletions(-)
>
> diff --git a/test/i965_test_fixture.cpp b/test/i965_test_fixture.cpp
> index d7f30c2ed4f3..dd8143031fe9 100644
> --- a/test/i965_test_fixture.cpp
> +++ b/test/i965_test_fixture.cpp
> @@ -97,12 +97,24 @@ I965TestFixture::operator VADisplay()
>       return m_vaDisplay;
>   }
>
> -Surfaces I965TestFixture::createSurfaces(int w, int h, int format, size_t count)
> +Surfaces I965TestFixture::createSurfaces(int w, int h, int format, size_t count,
> +    const SurfaceAttribs&  attributes)
>   {
>       Surfaces surfaces(count, VA_INVALID_ID);
> -    EXPECT_STATUS(
> -        i965_CreateSurfaces(
> -            *this, w, h, format, surfaces.size(), surfaces.data()));
> +    if (attributes.empty()) {
> +        EXPECT_STATUS(
> +            i965_CreateSurfaces(
> +                *this, w, h, format, surfaces.size(), surfaces.data()));
> +    } else {
> +        VADriverContextP ctx(*this);
> +        EXPECT_PTR(ctx);
> +        if (ctx)
> +            EXPECT_STATUS(
> +                ctx->vtable->vaCreateSurfaces2(
> +                    *this, format, w, h, surfaces.data(), surfaces.size(),
> +                    const_cast<VASurfaceAttrib*>(attributes.data()),
> +                    attributes.size()));
> +    }
>
>       for (size_t i(0); i<  count; ++i) {
>           EXPECT_ID(surfaces[i]);
> diff --git a/test/i965_test_fixture.h b/test/i965_test_fixture.h
> index 511c791fe9be..5915852c0f4b 100644
> --- a/test/i965_test_fixture.h
> +++ b/test/i965_test_fixture.h
> @@ -32,6 +32,7 @@
>   #include<vector>
>
>   typedef std::vector<VASurfaceID>  Surfaces;
> +typedef std::vector<VASurfaceAttrib>  SurfaceAttribs;
>   typedef std::vector<VAConfigAttrib>  ConfigAttribs;
>
>   /**
> @@ -99,10 +100,13 @@ public:
>       void terminate();
>
>       /**
> -     * Convenience wrapper for i965_CreateSurfaces.  May generate a non-fatal
> -     * test assertion failure.
> +     * Convenience wrapper for i965_CreateSurfaces or i965_CreateSurfaces2.
> +     * If SurfaceAttribs are specified then i965_CreateSurfaces2 is used,
> +     * otherwise i965_CreateSurfaces is used. May generate a non-fatal test
> +     * assertion failure.
>        */
> -    Surfaces createSurfaces(int w, int h, int format, size_t count = 1);
> +    Surfaces createSurfaces(int w, int h, int format, size_t count = 1,
> +        const SurfaceAttribs&  = SurfaceAttribs());
>
>       /**
>        * Convenience wrapper for i965_DestroySurfaces.  May generate a non-fatal



More information about the Libva mailing list