On Tue, Oct 18, 2016 at 10:48 AM, Eoff, Ullysses A <[email protected]> wrote: >> -----Original Message----- >> From: Charles, Daniel [mailto:[email protected]] >> Sent: Tuesday, October 18, 2016 10:20 AM >> To: Eoff, Ullysses A <[email protected]> >> Cc: [email protected] >> Subject: Re: [Libva] [PATCH][libva-intel-driver] i965_validate_config: >> return unsupported profile >> >> On Tue, Oct 18, 2016 at 8:25 AM, Eoff, Ullysses A >> <[email protected]> wrote: >> > Please run the tests... I suspect this patch will cause some to fail. >> > Those tests will need updated too. >> > >> >> Ran the test suite on ToT, no regression found with this patch. >> > > Ah yes, I see why now. The AVC and JPEG config tests still pass on most HW > because UNSUPPORTED_PROFILE is only returned if *both* encode *and* decode > are unsupported. Thus, if there is such HW that doesn't support one or the > other then those tests will be regressed.
I am not sure I follow you here. Unsupported Profile is sent when neither encoder and decoder are supported (VC1 is only decoder, VPP is a special case and VP9 decoder can also be hybrid on some h/w). When h/w only supports one of them (regardless which it is), it should return UNSUPPORTED_ENTRYPOINT as profile is supported at least once. This patch is not changing this last scenario. My testing was done on a h/w that has Jpeg Decoder but no Jpeg Encoder and everything is okay. -- Daniel. > >> -- >> Daniel. >> > U. Artie >> > >> >> -----Original Message----- >> >> From: Libva [mailto:[email protected]] On Behalf Of >> >> Daniel Charles >> >> Sent: Monday, October 17, 2016 5:45 PM >> >> To: [email protected] >> >> Subject: [Libva] [PATCH][libva-intel-driver] i965_validate_config: return >> >> unsupported profile >> >> >> >> When all the profiles are not supported return >> >> VA_STATUS_ERROR_UNSUPPORTED_PROFILE instead of >> >> VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT. >> >> >> >> Also change the style on the code modified to be common >> >> on all cases >> >> >> >> Signed-off-by: Daniel Charles <[email protected]> >> >> --- >> >> src/i965_drv_video.c | 49 >> >> ++++++++++++++++++++++++++++++++++++++++--------- >> >> 1 file changed, 40 insertions(+), 9 deletions(-) >> >> >> >> diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c >> >> index fbf2cda..0830ae0 100644 >> >> --- a/src/i965_drv_video.c >> >> +++ b/src/i965_drv_video.c >> >> @@ -711,6 +711,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile >> >> profile, >> >> if ((HAS_MPEG2_DECODING(i965) && entrypoint == VAEntrypointVLD) >> >> || >> >> (HAS_MPEG2_ENCODING(i965) && entrypoint == >> >> VAEntrypointEncSlice)) { >> >> va_status = VA_STATUS_SUCCESS; >> >> + } else if (!HAS_MPEG2_DECODING(i965) && >> >> !HAS_MPEG2_ENCODING(i965)){ >> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; >> >> } else { >> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; >> >> } >> >> @@ -723,6 +725,9 @@ i965_validate_config(VADriverContextP ctx, VAProfile >> >> profile, >> >> (HAS_H264_ENCODING(i965) && entrypoint == >> >> VAEntrypointEncSlice) || >> >> (HAS_LP_H264_ENCODING(i965) && entrypoint == >> >> VAEntrypointEncSliceLP)) { >> >> va_status = VA_STATUS_SUCCESS; >> >> + } else if (!HAS_H264_DECODING(i965) && !HAS_H264_ENCODING(i965) >> >> && >> >> + !HAS_LP_H264_ENCODING(i965)){ >> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; >> >> } else { >> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; >> >> } >> >> @@ -733,6 +738,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile >> >> profile, >> >> case VAProfileVC1Advanced: >> >> if (HAS_VC1_DECODING(i965) && entrypoint == VAEntrypointVLD) { >> >> va_status = VA_STATUS_SUCCESS; >> >> + } else if (!HAS_VC1_DECODING(i965)) { >> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; >> >> } else { >> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; >> >> } >> >> @@ -741,6 +748,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile >> >> profile, >> >> case VAProfileNone: >> >> if (HAS_VPP(i965) && VAEntrypointVideoProc == entrypoint) { >> >> va_status = VA_STATUS_SUCCESS; >> >> + } else if (!HAS_VPP(i965)){ >> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; >> >> } else { >> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; >> >> } >> >> @@ -750,6 +759,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile >> >> profile, >> >> if ((HAS_JPEG_DECODING(i965) && entrypoint == VAEntrypointVLD) || >> >> (HAS_JPEG_ENCODING(i965) && entrypoint == >> >> VAEntrypointEncPicture)) { >> >> va_status = VA_STATUS_SUCCESS; >> >> + } else if (!HAS_JPEG_DECODING(i965) && !HAS_JPEG_ENCODING(i965)){ >> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; >> >> } else { >> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; >> >> } >> >> @@ -759,6 +770,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile >> >> profile, >> >> if ((HAS_VP8_DECODING(i965) && entrypoint == VAEntrypointVLD) || >> >> (HAS_VP8_ENCODING(i965) && entrypoint == >> >> VAEntrypointEncSlice)) { >> >> va_status = VA_STATUS_SUCCESS; >> >> + } else if (!HAS_VP8_DECODING(i965) && !HAS_VP8_ENCODING(i965)){ >> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; >> >> } else { >> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; >> >> } >> >> @@ -768,8 +781,12 @@ i965_validate_config(VADriverContextP ctx, VAProfile >> >> profile, >> >> case VAProfileH264StereoHigh: >> >> if ((HAS_H264_MVC_DECODING_PROFILE(i965, profile) && >> >> entrypoint == VAEntrypointVLD) || >> >> - (HAS_H264_MVC_ENCODING(i965) && entrypoint == >> >> VAEntrypointEncSlice)) { >> >> + (HAS_H264_MVC_ENCODING(i965) && >> >> + entrypoint == VAEntrypointEncSlice)) { >> >> va_status = VA_STATUS_SUCCESS; >> >> + } else if(!HAS_H264_MVC_DECODING_PROFILE(i965, profile) && >> >> + !HAS_H264_MVC_ENCODING(i965)) { >> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; >> >> } else { >> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; >> >> } >> >> @@ -778,32 +795,46 @@ i965_validate_config(VADriverContextP ctx, >> >> VAProfile profile, >> >> >> >> case VAProfileHEVCMain: >> >> if ((HAS_HEVC_DECODING(i965) && (entrypoint == >> >> VAEntrypointVLD))|| >> >> - (HAS_HEVC_ENCODING(i965) && (entrypoint == >> >> VAEntrypointEncSlice))) >> >> + (HAS_HEVC_ENCODING(i965) && (entrypoint == >> >> VAEntrypointEncSlice))) { >> >> va_status = VA_STATUS_SUCCESS; >> >> - else >> >> + } else if (!HAS_HEVC_DECODING(i965) && !HAS_HEVC_ENCODING(i965)) >> >> { >> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; >> >> + } else { >> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; >> >> + } >> >> >> >> break; >> >> >> >> case VAProfileHEVCMain10: >> >> if ((HAS_HEVC10_DECODING(i965) && (entrypoint == >> >> VAEntrypointVLD))|| >> >> - (HAS_HEVC10_ENCODING(i965) && (entrypoint == >> >> VAEntrypointEncSlice))) >> >> + (HAS_HEVC10_ENCODING(i965) && >> >> + (entrypoint == VAEntrypointEncSlice))) { >> >> va_status = VA_STATUS_SUCCESS; >> >> - else >> >> + } else if (!HAS_HEVC10_DECODING(i965) && >> >> !HAS_HEVC10_ENCODING(i965)) { >> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; >> >> + } else { >> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; >> >> + } >> >> >> >> break; >> >> >> >> case VAProfileVP9Profile0: >> >> case VAProfileVP9Profile2: >> >> - if ((HAS_VP9_DECODING_PROFILE(i965, profile)) && (entrypoint == >> >> VAEntrypointVLD)) >> >> + if ((HAS_VP9_DECODING_PROFILE(i965, profile)) && >> >> + (entrypoint == VAEntrypointVLD)) { >> >> va_status = VA_STATUS_SUCCESS; >> >> - else if ((HAS_VP9_ENCODING(i965)) && (entrypoint == >> >> VAEntrypointEncSlice)) >> >> + } else if ((HAS_VP9_ENCODING(i965)) && >> >> + (entrypoint == VAEntrypointEncSlice)) { >> >> va_status = VA_STATUS_SUCCESS; >> >> - else if ((profile == VAProfileVP9Profile0) && >> >> i965->wrapper_pdrvctx) >> >> + } else if (profile == VAProfileVP9Profile0 && >> >> i965->wrapper_pdrvctx) { >> >> va_status = VA_STATUS_SUCCESS; >> >> - else >> >> + } else if(!HAS_VP9_DECODING_PROFILE(i965, profile) && >> >> + !HAS_VP9_ENCODING(i965) && !i965->wrapper_pdrvctx) { >> >> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; >> >> + } else { >> >> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; >> >> + } >> >> + >> >> break; >> >> >> >> default: >> >> -- >> >> 2.5.5 >> >> >> >> _______________________________________________ >> >> Libva mailing list >> >> [email protected] >> >> https://lists.freedesktop.org/mailman/listinfo/libva _______________________________________________ Libva mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libva
