[Mesa-dev] [PATCH 2/3] st/dri2: Return invalid modifier when no driver support

Emil Velikov emil.l.velikov at gmail.com
Fri Jul 21 14:23:12 UTC 2017


On 21 July 2017 at 14:34, Daniel Stone <daniels at collabora.com> wrote:
> Always initialise whandle.modifier for DRIImage modifier queries, so if
> the driver doesn't support it then we return DRM_FORMAT_MOD_INVALID.
>
> Signed-off-by: Daniel Stone <daniels at collabora.com>
> Cc: Varad Gautam <varad.gautam at collabora.com>
> Fixes: d33fe8b84e45 ("st/dri: enable DRIimage modifier queries")
> ---
>  src/gallium/state_trackers/dri/dri2.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c
> index 19ee5f495e..66643c6727 100644
> --- a/src/gallium/state_trackers/dri/dri2.c
> +++ b/src/gallium/state_trackers/dri/dri2.c
> @@ -1235,12 +1235,14 @@ dri2_query_image(__DRIimage *image, int attrib, int *value)
>        return GL_TRUE;
>     case __DRI_IMAGE_ATTRIB_MODIFIER_UPPER:
>        whandle.type = DRM_API_HANDLE_TYPE_KMS;
> +      whandle.modifier = DRM_FORMAT_MOD_INVALID;
>        image->texture->screen->resource_get_handle(image->texture->screen,
>              NULL, image->texture, &whandle, usage);
>        *value = (whandle.modifier >> 32) & 0xffffffff;
>        return GL_TRUE;
>     case __DRI_IMAGE_ATTRIB_MODIFIER_LOWER:
>        whandle.type = DRM_API_HANDLE_TYPE_KMS;
> +      whandle.modifier = DRM_FORMAT_MOD_INVALID;
>        image->texture->screen->resource_get_handle(image->texture->screen,
>              NULL, image->texture, &whandle, usage);
>        *value = whandle.modifier & 0xffffffff;
I think the key issue is that the resource_get_handle() calls lack
proper error handling.

There's a single case, that was fixed not too long ago, yet everywhere
else we consider that resource_get_handle() can fail.
Can we address that instead? Only dri2_query_image seems to be buggy.

Thanks
Emil


More information about the mesa-dev mailing list