diff options
author | Rob Clark <robdclark@gmail.com> | 2018-06-17 10:19:02 -0400 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2018-06-19 09:43:05 -0400 |
commit | 063ce5c732598b3855775e59b59d9ddffe4ddb24 (patch) | |
tree | 37e6e1cfd8895a54deb9bfd2a8add490e6947487 /common.c | |
parent | 98f31bfaf61f2cfb01ff747ae91f2b3bc7564ce6 (diff) | |
download | kmscube-063ce5c732598b3855775e59b59d9ddffe4ddb24.tar.gz |
gbm: fix fallback for drivers that don't support modifiers
Gallium drivers that do not implement resource_create_with_modifiers()
will fail gbm_surface_create_with_modifiers() so fall back to the old
way.
Fixes: 4f7cec0 Use weak functions to handle lack of gbm modifiers
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Diffstat (limited to 'common.c')
-rw-r--r-- | common.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -44,13 +44,16 @@ const struct gbm * init_gbm(int drm_fd, int w, int h, uint64_t modifier) { gbm.dev = gbm_create_device(drm_fd); gbm.format = GBM_FORMAT_XRGB8888; + gbm.surface = NULL; if (gbm_surface_create_with_modifiers) { gbm.surface = gbm_surface_create_with_modifiers(gbm.dev, w, h, gbm.format, &modifier, 1); - } else { + } + + if (!gbm.surface) { if (modifier != DRM_FORMAT_MOD_LINEAR) { fprintf(stderr, "Modifiers requested but support isn't available\n"); return NULL; |