sailfishos/sailfish-browser

Fix rendering on native ports

Opened this issue · 0 comments

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.