diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c index 3933f3776bd..2011a81f876 100644 --- a/src/egl/drivers/dri2/platform_drm.c +++ b/src/egl/drivers/dri2/platform_drm.c @@ -238,7 +238,12 @@ get_back_bo(struct dri2_egl_surface *dri2_surf) if (dri2_surf->back == NULL) return -1; if (dri2_surf->back->bo == NULL) { - if (surf->base.v0.modifiers) + if (surf->base.v0.modifiers && surf->base.v0.flags) + dri2_surf->back->bo = gbm_bo_create_with_modifiers2( + &dri2_dpy->gbm_dri->base, surf->base.v0.width, surf->base.v0.height, + surf->base.v0.format, surf->base.v0.modifiers, surf->base.v0.count, + surf->base.v0.flags); + else if (surf->base.v0.modifiers) dri2_surf->back->bo = gbm_bo_create_with_modifiers( &dri2_dpy->gbm_dri->base, surf->base.v0.width, surf->base.v0.height, surf->base.v0.format, surf->base.v0.modifiers, surf->base.v0.count);