diff options
author | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2022-04-27 17:07:53 -0400 |
---|---|---|
committer | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2022-04-28 21:53:00 -0400 |
commit | 9b872cc3a516684d4b42fff0a7879eae73fe3b46 (patch) | |
tree | d31c8b76636e050c39c902fc6b0383b1761e9404 | |
parent | 721f054bae8fbc67cefb6749b3de2427e543fef1 (diff) |
kopper: check for modifiers to use modifier functionality
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16190>
-rw-r--r-- | src/gallium/frontends/dri/kopper.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/frontends/dri/kopper.c b/src/gallium/frontends/dri/kopper.c index e95d371e1a2..1d01757b3bf 100644 --- a/src/gallium/frontends/dri/kopper.c +++ b/src/gallium/frontends/dri/kopper.c @@ -63,6 +63,7 @@ struct kopper_screen { struct dri_screen base; struct pipe_screen *screen; //unwrapped bool has_dmabuf; + bool has_modifiers; }; extern const __DRIimageExtension driVkImageExtension; @@ -168,6 +169,7 @@ kopper_init_screen(__DRIscreen * sPriv) screen->has_reset_status_query = true; screen->lookup_egl_image = dri2_lookup_egl_image; kscreen->has_dmabuf = pscreen->get_param(pscreen, PIPE_CAP_DMABUF); + kscreen->has_modifiers = pscreen->query_dmabuf_modifiers != NULL; if (kscreen->has_dmabuf) sPriv->extensions = drivk_screen_extensions; else @@ -424,10 +426,10 @@ kopper_get_pixmap_buffer(struct kopper_drawable *cdraw, * see dri3_get_pixmap_buffer() */ cur_screen = cdraw->base.sPriv; - struct kopper_screen *kscreen = (struct kopper_screen*)cur_screen->driverPrivate; #ifdef HAVE_DRI3_MODIFIERS - if (kscreen->has_dmabuf) { + struct kopper_screen *kscreen = (struct kopper_screen*)cur_screen->driverPrivate; + if (kscreen->has_modifiers) { xcb_dri3_buffers_from_pixmap_cookie_t bps_cookie; xcb_dri3_buffers_from_pixmap_reply_t *bps_reply; xcb_generic_error_t *error; |