@@ -885,10 +885,6 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
885
885
profile == VAProfileVP9Profile0 &&
886
886
entrypoint == VAEntrypointEncSliceLP )) {
887
887
va_status = VA_STATUS_SUCCESS ;
888
- } else if (profile == VAProfileVP9Profile0 &&
889
- entrypoint == VAEntrypointVLD &&
890
- i965 -> wrapper_pdrvctx ) {
891
- va_status = VA_STATUS_SUCCESS ;
892
888
} else if (!HAS_VP9_DECODING_PROFILE (i965 , profile ) &&
893
889
!HAS_VP9_ENCODING (i965 ) &&
894
890
!HAS_LP_VP9_ENCODING (i965 ) &&
@@ -898,6 +894,27 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
898
894
va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT ;
899
895
}
900
896
897
+ if (i965 -> wrapper_pdrvctx && va_status != VA_STATUS_SUCCESS ) {
898
+ VAEntrypoint wrapper_entrypoints [5 ] = {0 };
899
+ int32_t wrapper_num_entrypoints = 0 ;
900
+ VADriverContextP pdrvctx = i965 -> wrapper_pdrvctx ;
901
+
902
+ CALL_VTABLE (pdrvctx , va_status ,
903
+ vaQueryConfigEntrypoints (pdrvctx ,
904
+ profile ,
905
+ wrapper_entrypoints ,
906
+ & wrapper_num_entrypoints ));
907
+
908
+ if (va_status == VA_STATUS_SUCCESS ) {
909
+ va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT ;
910
+ for (int i = 0 ; i < wrapper_num_entrypoints ; i ++ ) {
911
+ if (entrypoint == wrapper_entrypoints [i ]) {
912
+ va_status = VA_STATUS_SUCCESS ;
913
+ }
914
+ }
915
+ }
916
+ }
917
+
901
918
break ;
902
919
903
920
default :
0 commit comments