summaryrefslogtreecommitdiff
path: root/common.c
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2018-06-17 10:19:02 -0400
committerRob Clark <robdclark@gmail.com>2018-06-19 09:43:05 -0400
commit063ce5c732598b3855775e59b59d9ddffe4ddb24 (patch)
tree37e6e1cfd8895a54deb9bfd2a8add490e6947487 /common.c
parent98f31bfaf61f2cfb01ff747ae91f2b3bc7564ce6 (diff)
downloadkmscube-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.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/common.c b/common.c
index faecd42..931fc06 100644
--- a/common.c
+++ b/common.c
@@ -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;