[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