diff options
author | Daniel Stone <[email protected]> | 2017-07-21 13:55:42 +0100 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2017-07-27 19:54:52 +0100 |
commit | f0b7563a361bb252652b72a63b4b4eee130bb369 (patch) | |
tree | 017e27bd5b3bb3a8c4097786dd8dc9b7921a7b0f | |
parent | 5bee1968400fadd3cfceb89ad1d5409cd8da1742 (diff) |
st/dri2: Return invalid modifier when no driver support
Always initialise whandle.modifier for DRIImage modifier queries, so if
the driver doesn't support it then we return false for the query.
Signed-off-by: Daniel Stone <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Fixes: d33fe8b84e45 ("st/dri: enable DRIimage modifier queries")
(cherry picked from commit 45383d32d4fd0265a7133704cb3e6c15620177cd)
-rw-r--r-- | src/gallium/state_trackers/dri/dri2.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c index 3ebed7a98b4..0cbc76f7f8b 100644 --- a/src/gallium/state_trackers/dri/dri2.c +++ b/src/gallium/state_trackers/dri/dri2.c @@ -1239,16 +1239,22 @@ 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; if (!image->texture->screen->resource_get_handle(image->texture->screen, NULL, image->texture, &whandle, usage)) return GL_FALSE; + if (whandle.modifier == DRM_FORMAT_MOD_INVALID) + return GL_FALSE; *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; if (!image->texture->screen->resource_get_handle(image->texture->screen, NULL, image->texture, &whandle, usage)) return GL_FALSE; + if (whandle.modifier == DRM_FORMAT_MOD_INVALID) + return GL_FALSE; *value = whandle.modifier & 0xffffffff; return GL_TRUE; default: |