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 ESR 91 rendering pipeline #1020

Closed llewelld closed 1 month ago

llewelld commented 10 months ago

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.
llewelld commented 1 month ago

The rendering pipeline has now been fixed (both the browser and offscreen pipelines) by the following commits in the sailfishos-esr91 branch:

1765dd0460a9 Restore GLScreenBuffer and TextureImageEGL
d3ba4df29a32 Restore NotifyDidPaint event and timers

This has been tested on multiple Xperia devices, but crucially not on the emulator or a native device, which I suspect will still be broken. Since we have #1043 to cover the native case, I'm closing this issue as completed.