--- common.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/common.c b/common.c index 4bf3c5a..e63bb39 100644 --- a/common.c +++ b/common.c @@ -31,10 +31,23 @@ static struct gbm gbm; +#ifndef DRM_FORMAT_MOD_LINEAR +#define DRM_FORMAT_MOD_LINEAR 0 +#endif +static int +get_modifiers(uint64_t **mods) +{ + /* Assumed LINEAR is supported everywhere */ + static uint64_t modifiers[] = {DRM_FORMAT_MOD_LINEAR}; + *mods = modifiers; + return 1; +} + const struct gbm * init_gbm(int drm_fd, int w, int h) { gbm.dev = gbm_create_device(drm_fd); +#ifndef HAVE_GBM_MODIFIERS gbm.surface = gbm_surface_create(gbm.dev, w, h, GBM_FORMAT_XRGB8888, GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING); @@ -42,6 +55,12 @@ const struct gbm * init_gbm(int drm_fd, int w, int h) printf("failed to create gbm surface\n"); return NULL; } +#else + uint64_t *mods; + int count = get_modifiers(&mods); + gbm.surface = gbm_surface_create_with_modifiers(gbm.dev, w, h, + GBM_FORMAT_XRGB8888, mods, count); +#endif gbm.width = w; gbm.height = h; -- 2.12.2
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev