Ok I will reorder, make sense. -----Original Message----- From: Christian König [mailto:deathsim...@vodafone.de] Sent: 29 October 2015 19:26 To: Julien Isorce; mesa-dev@lists.freedesktop.org Subject: Re: [PATCH v4 5/9] st/va: handle Video Post Processing for configs
On 29.10.2015 18:40, Julien Isorce wrote: > Add support for VA_PROFILE_NONE and VAEntrypointVideoProc in the 4 > following functions: > > vlVaQueryConfigProfiles > vlVaQueryConfigEntrypoints > vlVaCreateConfig > vlVaQueryConfigAttributes > > Signed-off-by: Julien Isorce <j.iso...@samsung.com> Reviewed-by: Christian König <christian.koe...@amd.com> But you should reorder the patch, e.g. commit patch #6 first and then patch #5. Otherwise we have a state where the state tracker claims to support post processing but doesn't. Christian. > --- > src/gallium/state_trackers/va/config.c | 20 ++++++++++++++++++++ > src/gallium/state_trackers/va/va_private.h | 7 +++++-- > 2 files changed, 25 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/state_trackers/va/config.c > b/src/gallium/state_trackers/va/config.c > index 5030f9e..0f47aac 100644 > --- a/src/gallium/state_trackers/va/config.c > +++ b/src/gallium/state_trackers/va/config.c > @@ -52,6 +52,9 @@ vlVaQueryConfigProfiles(VADriverContextP ctx, VAProfile *profile_list, int *num_ > profile_list[(*num_profiles)++] = vap; > } > > + /* Support postprocessing through vl_compositor */ > + profile_list[(*num_profiles)++] = VAProfileNone; > + > return VA_STATUS_SUCCESS; > } > > @@ -67,6 +70,11 @@ vlVaQueryConfigEntrypoints(VADriverContextP ctx, > VAProfile profile, > > *num_entrypoints = 0; > > + if (profile == VAProfileNone) { > + entrypoint_list[(*num_entrypoints)++] = VAEntrypointVideoProc; > + return VA_STATUS_SUCCESS; > + } > + > p = ProfileToPipe(profile); > if (p == PIPE_VIDEO_PROFILE_UNKNOWN) > return VA_STATUS_ERROR_UNSUPPORTED_PROFILE; > @@ -118,6 +126,11 @@ vlVaCreateConfig(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoin > if (!ctx) > return VA_STATUS_ERROR_INVALID_CONTEXT; > > + if (profile == VAProfileNone && entrypoint == VAEntrypointVideoProc) { > + *config_id = PIPE_VIDEO_PROFILE_UNKNOWN; > + return VA_STATUS_SUCCESS; > + } > + > p = ProfileToPipe(profile); > if (p == PIPE_VIDEO_PROFILE_UNKNOWN) > return VA_STATUS_ERROR_UNSUPPORTED_PROFILE; > @@ -151,6 +164,13 @@ vlVaQueryConfigAttributes(VADriverContextP ctx, VAConfigID config_id, VAProfile > return VA_STATUS_ERROR_INVALID_CONTEXT; > > *profile = PipeToProfile(config_id); > + > + if (config_id == PIPE_VIDEO_PROFILE_UNKNOWN) { > + *entrypoint = VAEntrypointVideoProc; > + *num_attribs = 0; > + return VA_STATUS_SUCCESS; > + } > + > *entrypoint = VAEntrypointVLD; > > *num_attribs = 1; > diff --git a/src/gallium/state_trackers/va/va_private.h > b/src/gallium/state_trackers/va/va_private.h > index 68cb703..3a02e58 100644 > --- a/src/gallium/state_trackers/va/va_private.h > +++ b/src/gallium/state_trackers/va/va_private.h > @@ -146,10 +146,11 @@ PipeToProfile(enum pipe_video_profile profile) > return VAProfileH264Main; > case PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH: > return VAProfileH264High; > - case PIPE_VIDEO_PROFILE_MPEG4_AVC_EXTENDED: > - return VAProfileNone; > case PIPE_VIDEO_PROFILE_HEVC_MAIN: > return VAProfileHEVCMain; > + case PIPE_VIDEO_PROFILE_MPEG4_AVC_EXTENDED: > + case PIPE_VIDEO_PROFILE_UNKNOWN: > + return VAProfileNone; > default: > assert(0); > return -1; > @@ -182,6 +183,8 @@ ProfileToPipe(VAProfile profile) > return PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH; > case VAProfileHEVCMain: > return PIPE_VIDEO_PROFILE_HEVC_MAIN; > + case VAProfileNone: > + return PIPE_VIDEO_PROFILE_UNKNOWN; > default: > return PIPE_VIDEO_PROFILE_UNKNOWN; > } _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev