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>
This commit is contained in:

committed by
Marge Bot

parent
ca6760948f
commit
05ffc5f5ea
@@ -63,6 +63,7 @@ struct kopper_screen {
|
|||||||
struct dri_screen base;
|
struct dri_screen base;
|
||||||
struct pipe_screen *screen; //unwrapped
|
struct pipe_screen *screen; //unwrapped
|
||||||
bool has_dmabuf;
|
bool has_dmabuf;
|
||||||
|
bool has_modifiers;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const __DRIimageExtension driVkImageExtension;
|
extern const __DRIimageExtension driVkImageExtension;
|
||||||
@@ -168,6 +169,7 @@ kopper_init_screen(__DRIscreen * sPriv)
|
|||||||
screen->has_reset_status_query = true;
|
screen->has_reset_status_query = true;
|
||||||
screen->lookup_egl_image = dri2_lookup_egl_image;
|
screen->lookup_egl_image = dri2_lookup_egl_image;
|
||||||
kscreen->has_dmabuf = pscreen->get_param(pscreen, PIPE_CAP_DMABUF);
|
kscreen->has_dmabuf = pscreen->get_param(pscreen, PIPE_CAP_DMABUF);
|
||||||
|
kscreen->has_modifiers = pscreen->query_dmabuf_modifiers != NULL;
|
||||||
if (kscreen->has_dmabuf)
|
if (kscreen->has_dmabuf)
|
||||||
sPriv->extensions = drivk_screen_extensions;
|
sPriv->extensions = drivk_screen_extensions;
|
||||||
else
|
else
|
||||||
@@ -424,10 +426,10 @@ kopper_get_pixmap_buffer(struct kopper_drawable *cdraw,
|
|||||||
* see dri3_get_pixmap_buffer()
|
* see dri3_get_pixmap_buffer()
|
||||||
*/
|
*/
|
||||||
cur_screen = cdraw->base.sPriv;
|
cur_screen = cdraw->base.sPriv;
|
||||||
struct kopper_screen *kscreen = (struct kopper_screen*)cur_screen->driverPrivate;
|
|
||||||
|
|
||||||
#ifdef HAVE_DRI3_MODIFIERS
|
#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_cookie_t bps_cookie;
|
||||||
xcb_dri3_buffers_from_pixmap_reply_t *bps_reply;
|
xcb_dri3_buffers_from_pixmap_reply_t *bps_reply;
|
||||||
xcb_generic_error_t *error;
|
xcb_generic_error_t *error;
|
||||||
|
Reference in New Issue
Block a user