Skip to content

Commit 869fa7f

Browse files
fallback to gbm_surface_create if gbm_surface_create_with_modifiers does not work (#270)
- implements #269 - some drivers don't support `gbm_bo_create_with_modifiers` in that case `gbm_bo_create` is used now. - the `GBM_BO_USE_*` flags are a bit restrictive right now, in the future we might be able to drop `GBM_BO_USE_LINEAR`.
1 parent 04ef38a commit 869fa7f

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/flutter-pi.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1594,8 +1594,14 @@ static int init_display(void) {
15941594

15951595
flutterpi.gbm.surface = gbm_surface_create_with_modifiers(flutterpi.gbm.device, flutterpi.display.width, flutterpi.display.height, flutterpi.gbm.format, &flutterpi.gbm.modifier, 1);
15961596
if (flutterpi.gbm.surface == NULL) {
1597-
perror("[flutter-pi] Could not create GBM Surface. gbm_surface_create_with_modifiers");
1598-
return errno;
1597+
perror("[flutter-pi] Could not create GBM Surface. gbm_surface_create_with_modifiers. Will attempt with gbm_surface_create");
1598+
1599+
flutterpi.gbm.surface = gbm_surface_create(flutterpi.gbm.device, flutterpi.display.width, flutterpi.display.height, flutterpi.gbm.format, GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING | GBM_BO_USE_LINEAR);
1600+
1601+
if (flutterpi.gbm.surface == NULL) {
1602+
perror("[flutter-pi] Could not create GBM Surface even with gbm_surface_create");
1603+
return errno;
1604+
}
15991605
}
16001606

16011607
/**********************

0 commit comments

Comments
 (0)