[Mesa-dev] [PATCH 1/2] st/va: Fix config entrypoint handling

Christian König christian.koenig at amd.com
Wed Oct 11 07:58:38 UTC 2017


Am 10.10.2017 um 23:21 schrieb Mark Thompson:
> Consistently use it as a PIPE_VIDEO_ENTRYPOINT.
>
> v2: Return an error if the entrypoint is not set (Christian).
>
> Signed-off-by: Mark Thompson <sw at jkqxz.net>
> ---
> On 10/10/17 08:32, Christian König wrote:
>> Am 09.10.2017 um 22:45 schrieb Mark Thompson:
>>> Consistently use it as a PIPE_VIDEO_ENTRYPOINT.
>>>
>>> Signed-off-by: Mark Thompson <sw at jkqxz.net>
>>> ---
>>>    src/gallium/state_trackers/va/config.c | 15 +++++++++------
>>>    1 file changed, 9 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/src/gallium/state_trackers/va/config.c b/src/gallium/state_trackers/va/config.c
>>> index 1484fcacce..f3000be2fd 100644
>>> --- a/src/gallium/state_trackers/va/config.c
>>> +++ b/src/gallium/state_trackers/va/config.c
>>> @@ -195,7 +195,7 @@ vlVaCreateConfig(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoin
>>>          return VA_STATUS_ERROR_ALLOCATION_FAILED;
>>>         if (profile == VAProfileNone && entrypoint == VAEntrypointVideoProc) {
>>> -      config->entrypoint = VAEntrypointVideoProc;
>>> +      config->entrypoint = PIPE_VIDEO_ENTRYPOINT_UNKNOWN;
>>>          config->profile = PIPE_VIDEO_PROFILE_UNKNOWN;
>>>          supported_rt_formats = VA_RT_FORMAT_YUV420 |
>>>                                 VA_RT_FORMAT_YUV420_10BPP |
>>> @@ -342,14 +342,17 @@ vlVaQueryConfigAttributes(VADriverContextP ctx, VAConfigID config_id, VAProfile
>>>         *profile = PipeToProfile(config->profile);
>>>    -   if (config->profile == PIPE_VIDEO_PROFILE_UNKNOWN) {
>>> +   switch (config->entrypoint) {
>>> +   case PIPE_VIDEO_ENTRYPOINT_BITSTREAM:
>>> +      *entrypoint = VAEntrypointVLD;
>>> +      break;
>>> +   case PIPE_VIDEO_ENTRYPOINT_ENCODE:
>>> +      *entrypoint = VAEntrypointEncSlice;
>>> +      break;
>>> +   default:
>> I prefer an explicit case for PIPE_VIDEO_ENTRYPOINT_UNKNOWN and returning an error in the default case here.
>>
>> Apart from that the change looks good to me and seems to be a rather nice cleanup/fix.
> Sure!  Here's a new version (2/2 unchanged).

Reviewed-by: Christian König <christian.koenig at amd.com>.

Thanks for the help,
Christian.

>
> Thanks,
>
> - Mark
>
>
>   src/gallium/state_trackers/va/config.c | 18 ++++++++++++------
>   1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/src/gallium/state_trackers/va/config.c b/src/gallium/state_trackers/va/config.c
> index 1484fcacce..25043d6374 100644
> --- a/src/gallium/state_trackers/va/config.c
> +++ b/src/gallium/state_trackers/va/config.c
> @@ -195,7 +195,7 @@ vlVaCreateConfig(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoin
>         return VA_STATUS_ERROR_ALLOCATION_FAILED;
>   
>      if (profile == VAProfileNone && entrypoint == VAEntrypointVideoProc) {
> -      config->entrypoint = VAEntrypointVideoProc;
> +      config->entrypoint = PIPE_VIDEO_ENTRYPOINT_UNKNOWN;
>         config->profile = PIPE_VIDEO_PROFILE_UNKNOWN;
>         supported_rt_formats = VA_RT_FORMAT_YUV420 |
>                                VA_RT_FORMAT_YUV420_10BPP |
> @@ -342,14 +342,20 @@ vlVaQueryConfigAttributes(VADriverContextP ctx, VAConfigID config_id, VAProfile
>   
>      *profile = PipeToProfile(config->profile);
>   
> -   if (config->profile == PIPE_VIDEO_PROFILE_UNKNOWN) {
> +   switch (config->entrypoint) {
> +   case PIPE_VIDEO_ENTRYPOINT_BITSTREAM:
> +      *entrypoint = VAEntrypointVLD;
> +      break;
> +   case PIPE_VIDEO_ENTRYPOINT_ENCODE:
> +      *entrypoint = VAEntrypointEncSlice;
> +      break;
> +   case PIPE_VIDEO_ENTRYPOINT_UNKNOWN:
>         *entrypoint = VAEntrypointVideoProc;
> -      *num_attribs = 0;
> -      return VA_STATUS_SUCCESS;
> +      break;
> +   default:
> +      return VA_STATUS_ERROR_INVALID_CONFIG;
>      }
>   
> -   *entrypoint = config->entrypoint;
> -
>      *num_attribs = 1;
>      attrib_list[0].type = VAConfigAttribRTFormat;
>      attrib_list[0].value = config->rt_format;




More information about the mesa-dev mailing list