ardera / flutter-pi

A light-weight Flutter Engine Embedder for Raspberry Pi that runs without X.
MIT License
1.49k stars 154 forks source link

src/egl_gbm_render_surface: properly fallback to surface with no modifier #367

Closed yann-morin-1998 closed 7 months ago

yann-morin-1998 commented 8 months ago

In 869fa7fcfbeb, we added a fallback to be able to create an EGL sruface when the driver do not support modifiers, like the llvmpipe software renderer (or like some proprietary drivers, like the MALI ones), as reported in #269 [0].

However, in c6537673c9b6, there was a big overhaul of renderer infrastructure. That commit lost the with-modifiers code path and only kept the without-modifiers fallback one (i.e. it only kept the call to gbm_surface_create(), not to gbm_surface_create_with_modifiers()).

Then in b0d09f5032a4, the with-modifier code path was re-instated, but in a way that made it exclusive with the without-modifiers one. That is, the without-modifiers code path was not a fallback to when the other failed.

Re-instate the fallback mechanism as initially implemented.

[0] https://github.com/ardera/flutter-pi/issues/269

ardera commented 7 months ago

Thanks for the fix!