summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Baker <edward.baker@intel.com>2021-08-26 16:27:39 -0700
committerXiang, Haihao <haihao.xiang@intel.com>2021-09-28 14:40:18 +0800
commit3ed3f6a783fdfff3fa1b567888518dcbda7eb2a3 (patch)
tree125d8b6c03c9dd49ab3a2b97c71863b172b55e2c
parent88336a929513b35de2e7f0733800310508d72fe1 (diff)
downloadlibva-intel-driver-3ed3f6a783fdfff3fa1b567888518dcbda7eb2a3.tar.gz
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>
-rw-r--r--src/i965_drv_video.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
index 80278bb7..2948d5b0 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: