On 13 April 2017 at 19:22, Ben Widawsky <b...@bwidawsk.net> wrote: > --- > 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 > Since gbm_surface_create_with_modifiers() can fail we want to have some error handling. Move the existing one after the ifndef/else block ?
-Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev