From 3ed3f6a783fdfff3fa1b567888518dcbda7eb2a3 Mon Sep 17 00:00:00 2001
From: Ed Baker <edward.baker@intel.com>
Date: Thu, 26 Aug 2021 16:27:39 -0700
Subject: [PATCH] Fix VP9.2 config verification

This commit addresses the following test_va_api failures collected on
a Braswell with the hybrid codec enabled. Fixes #534.

localhost ~ # test_va_api
<snip>
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/210, where GetParam() = (21:VAProfileVP9Profile2, 1:VAEntrypointVLD)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/211, where GetParam() = (21:VAProfileVP9Profile2, 2:VAEntrypointIZZ)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/212, where GetParam() = (21:VAProfileVP9Profile2, 3:VAEntrypointIDCT)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/213, where GetParam() = (21:VAProfileVP9Profile2, 4:VAEntrypointMoComp)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/214, where GetParam() = (21:VAProfileVP9Profile2, 5:VAEntrypointDeblocking)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/215, where GetParam() = (21:VAProfileVP9Profile2, 6:VAEntrypointEncSlice)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/216, where GetParam() = (21:VAProfileVP9Profile2, 7:VAEntrypointEncPicture)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/217, where GetParam() = (21:VAProfileVP9Profile2, 8:VAEntrypointEncSliceLP)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/218, where GetParam() = (21:VAProfileVP9Profile2, 10:VAEntrypointVideoProc)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/219, where GetParam() = (21:VAProfileVP9Profile2, 11:VAEntrypointFEI)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/210, where GetParam() = (21:VAProfileVP9Profile2, 1:VAEntrypointVLD)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/211, where GetParam() = (21:VAProfileVP9Profile2, 2:VAEntrypointIZZ)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/212, where GetParam() = (21:VAProfileVP9Profile2, 3:VAEntrypointIDCT)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/213, where GetParam() = (21:VAProfileVP9Profile2, 4:VAEntrypointMoComp)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/214, where GetParam() = (21:VAProfileVP9Profile2, 5:VAEntrypointDeblocking)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/215, where GetParam() = (21:VAProfileVP9Profile2, 6:VAEntrypointEncSlice)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/216, where GetParam() = (21:VAProfileVP9Profile2, 7:VAEntrypointEncPicture)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/217, where GetParam() = (21:VAProfileVP9Profile2, 8:VAEntrypointEncSliceLP)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/218, where GetParam() = (21:VAProfileVP9Profile2, 10:VAEntrypointVideoProc)
[  FAILED  ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/219, where GetParam() = (21:VAProfileVP9Profile2, 11:VAEntrypointFEI)

Signed-off-by: Ed Baker <edward.baker@intel.com>
---
 src/i965_drv_video.c | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
index 80278bb..2948d5b 100644
--- a/src/i965_drv_video.c
+++ b/src/i965_drv_video.c
@@ -885,10 +885,6 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
                     profile == VAProfileVP9Profile0 &&
                     entrypoint == VAEntrypointEncSliceLP)) {
             va_status = VA_STATUS_SUCCESS;
-        } else if (profile == VAProfileVP9Profile0 &&
-                   entrypoint == VAEntrypointVLD &&
-                   i965->wrapper_pdrvctx) {
-            va_status = VA_STATUS_SUCCESS;
         } else if (!HAS_VP9_DECODING_PROFILE(i965, profile) &&
                    !HAS_VP9_ENCODING(i965) &&
                    !HAS_LP_VP9_ENCODING(i965) &&
@@ -898,6 +894,27 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
             va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
         }
 
+        if (i965->wrapper_pdrvctx && va_status != VA_STATUS_SUCCESS) {
+            VAEntrypoint wrapper_entrypoints[5] = {0};
+            int32_t wrapper_num_entrypoints = 0;
+            VADriverContextP pdrvctx = i965->wrapper_pdrvctx;
+
+            CALL_VTABLE(pdrvctx, va_status,
+                        vaQueryConfigEntrypoints(pdrvctx,
+                                                 profile,
+                                                 wrapper_entrypoints,
+                                                 &wrapper_num_entrypoints));
+
+            if (va_status == VA_STATUS_SUCCESS) {
+                va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
+                for (int i = 0; i < wrapper_num_entrypoints; i++) {
+                    if (entrypoint == wrapper_entrypoints[i]) {
+                        va_status = VA_STATUS_SUCCESS;
+                    }
+                }
+            }
+        }
+
         break;
 
     default:
-- 
2.25.1

