sailfishos / sailfish-browser

Sailfish Browser
https://github.com/sailfishos/sailfish-browser/wiki/Sailfish-Browser-wiki
Mozilla Public License 2.0
305 stars 86 forks source link

Fix rendering on native ports #1043

Open llewelld opened 9 months ago

llewelld commented 9 months ago

The rendering pipeline now works on hubris devices (see #1020), but on native devices (e.g. the PinePhone) the browser crashes.

This isn't totally unexpected and likely has to do with the way surfaces are handled with wayland. This caused problems previously as well. It's also likely to cause problems for WebViews, so needs to be fixed.

Notes copied over from #1020:

The rendering pipeline has changed significantly between ESR 78 and ESR 91. The GLES rendering code was removed and switched for a Web Render pipeline instead.

Some of the relevant upstream changes include the following:

  1. Support for multiple EglDisplays: D85496. The EglDisplay is passed in from QtMozEmbed, so this causes some problems.
  2. Out of process WebGL compositing: D75055. This removes GLSCreenBuffer completely in favour of a new much sparser SwapChain. This really messes up our renderer.

See for example:

  1. 51e18eb9b16ee94a775d3d4f1f333c11e306368e.
  2. d59d44a5bccafc714a2e380197c8cb9334107eb1.