Engine 6.11.2-5
QtWebEngine 6.11.2 with Omaweb's patch series applied, for Linux x86_64 and aarch64, built for speed.
This is the engine Omaweb runs on, and it is a modified QtWebEngine. It installs into /usr/lib/omaweb and does not replace the distribution's qt6-webengine, so every other Qt application on the machine keeps the engine it had.
What changed since engine-6.11.2-3. The Qt release and the Chromium it carries are the same: QtWebEngine 6.11.2 on Chromium 140.0.7339.225, with Chromium security fixes up to 151.0.7922.71. No security fix comes with this release. It changes how fast the engine runs JavaScript and pages:
- V8's write barriers are back on (patch 0018, villekivela/omaweb-qtwebengine-patches#9, Omaweb's #574). Qt's 6.11.2 builds V8 with them off, which also gives it a single generation, so every allocation went to the old space and the collector could neither scavenge nor mark incrementally. 0018 is Qt's own change for 6.140.0, backported.
- x86_64 is built with clang, LLD and ThinLTO, with Chrome's PGO profile for its Chromium and V8's builtins profile (villekivela/omaweb-qtwebengine-patches#10, Omaweb's ADR 0060). aarch64 stays on GCC: Chrome publishes no Linux PGO profile for it, and clang without one measured no faster there.
Measured gain against 6.11.2-3. Speedometer 3.1 and JetStream 2.2, three runs each, as Omaweb's score over the score of Chromium 140, the Chromium this engine is based on, measured beside it. Each architecture compares one Omaweb on one machine: 0.11.0 on aarch64 and 0.9.0 on x86_64.
| Architecture | Engine | Speedometer 3.1 | JetStream 2.2 |
|---|---|---|---|
| aarch64 | 6.11.2-3 |
0.740 | 0.742 |
| aarch64 | 6.11.2-5 (GCC) |
0.754 | 0.947 |
| x86_64 | 6.11.2-3 |
0.706 | 0.718 |
| x86_64 | 6.11.2-5 (clang) |
0.773 | 0.943 |
On aarch64 that is 25.7% more on Omaweb's own JetStream score (286.27 to 359.96) and 4.6% more on Speedometer (23.03 to 24.08). Those were measured in one session on an Apple M2 Max, in an arm64 container under headless cage with software compositing (Omaweb's #574), against a 6.11.2-4 built from the same series with the same compiler. The aarch64 6.11.2-5 here is that code: its patches are unchanged since, and it holds the same 599 files. 6.11.2-4 was never published, so 6.11.2-5 is the first published build with the barriers.
On x86_64 the share of Chromium 140 rose by 9% on Speedometer and 31% on JetStream. Both rows are a Ryzen 7 PRO 7840HS in an Arch devbox, composited on its GPU, with the same Omaweb binary: 6.11.2-3 on 2 October (Omaweb's #356) and this package on 6 October. Read the ratios rather than the raw scores, because every browser scored about 7% lower on Speedometer on the second day: Chromium 140 went from 27.69 to 25.80. Omaweb's own JetStream score went from 296.79 to 363.77. The clang build of the same code measured 0.777 and 0.942 on 5 October (Omaweb's #575). Of the gain, the write barriers are most of JetStream's, and clang with Chrome's profile is about 6% on Speedometer (Omaweb's ADR 0060).
Corresponding source. The base is Qt's released qtwebengine-everywhere-src-6.11.2.tar.xz, which carries the Chromium tree it builds. The changes are the eighteen patches in patches/ of omaweb-qtwebengine-patches at 4164999, each a single commit with its own reasoning, and on x86_64 toolchain/clang.patch, which changes how the engine is compiled and not what its code does. packaging/MODIFICATIONS.md in the package says the same and ships with it, alongside the LGPL-3.0 text and Chromium's own notice taken from the tree the engine was built from.
The signed copy lives in Omaweb's pacman repository, which is where a reader gets it. The packages here are unsigned, and they are the artifacts the publishing workflow signs.
What it was tested against.
verify-x86_64.txtandverify-aarch64.txtare the gate from the builds these packages carry. Each read V8's ninja file and found it compiled with its write barriers, then passed 36 of 36, 10 of 10 and 3 of 3. Neither container had a stock engine, so the stock comparison was skipped. Both builds ran locally: aarch64 with GCC on an Apple M2 Max, in an arm64 Arch container, and x86_64 with clang on a Ryzen 7 PRO 7840HS, in an Arch devbox.- The aarch64 package holds the same 599 files as the 6.11.2-4 build that #574 measured, from the same patch series.