Web Browser Benchmarks: Chromium 85 Places Firefox Even Further Behind Other Web Browsers
Chromium 85 has a new WebHID API for gamepad support within web browsers, a declarative shadow DOM API, AVIF image decode support and, much more importantly, the Google-developed ANGLE library for graphics rendering. ANGLE makes Chrome 85, and other browsers based on Chromium 85 such as the Brave Browser, much faster on Linux leaving Firefox behind biting the dust.
ANGLE is a multi-platform library developed by Google that translates OpenGL ES and WebGL calls to platform-native hardware-supported APIs. It translates to DirectX 11 when an application using ANGLE is running on the Windows platform and it can translate to either OpenGL or, in theory, Vulkan when it is running on GNU/Linux.
ANGLE is used for graphics rendering in Chromium on GNU/Linux and Windows in the new 85 release. The Chromium browser forms the basis of all web browsers except Mozilla Firefox, the last hold-out still using its own Quantum rendering engine. All other modern web browsers, from the South Korean NAVER whale browser to the Brave Web Browser, use Chromium. That includes browsers like Falkon that are based on the QtWebEngine engine since QtWebEngine is, essentially, just another wrapper for the Chromium Blink engine.
Chromium-based browsers prior to version 85 report
GL_VENDOR: X.Org and
GL_VERSION: 4.6 (Core Profile) Mesa 20.1.6 in the special
chrome://gpu status page in Chromium-based browsers (or
whale://gpu depending on which browser you look at). That page says
GL_VENDOR: Google Inc.,
GL_RENDERER: ANGLE and
GL_VERSION: OpenGL ES 2.0.0 (ANGLE 2.1.0.ea8043b73f93) in web browsers based on Chromium 85. They say that even if Vulkan is enabled in
chrome://flags/. Chromium 84 behaves differently if Vulkan is enabled (and it is a complete and utter disaster), Chromium 85 and the current Chromium 86 development branch do not.
Translating OpenGL calls to OpenGL ES calls through ANGLE seems stupid and meaningless. Translating them to DirectX 11 calls, which is what happens on Windows, makes a bit more sense. Yet it works, and it performs better, regardless of how idiotic it sounds.
Chrome 85.0.4183.83 and Brave 1.13.82 (based on Chromium: 85.0.4183.83) are faster than browsers based previous Chromium versions and much faster than Mozilla Firefox on machines with AMD graphics cards. There is also a performance improvement, but not a very noticeable one, on machines with integrated Intel graphics.
All the following benchmarks were done on machines with a custom
5.9.0-rc2-9-Yeoreum kernel patched to use native CPU instructions (
-march=native and Mesa 20.1.6.
Unity WebGL 2018
Chromium-based browsers have always totally and utterly crushed Mozilla Firefox in the Unity WebGL 2018 benchmark since it was created in 2018. Mozilla Firefox 80 is no exception, it is far behind regardless of how you configure it.
The Mozilla Firefox 80 numbers need some explanation. "Default (basic)" is how it performs out-of-the-box with zero configuration. "Webrender" is how it performs if you enable Webrender rendering by setting
true and "Firefox 80, Webrender EGL=1" is how it performs if you enable Webrenderer and start it with the environment variable
MOZ_X11_EGL=1 set. The experimental new hardware accelerated video decoding (using VAAPI) support in Firefox 80 will only work if the environment variable
MOZ_X11_EGL is set to
1 which is why we included benchmarks using that rather unusual and very specific configuration.
Mozilla Firefox 80 is even slower than usual in the Unity WebGL 2018 test when Webrender is enabled and
MOZ_X11_EGL is set to
1 on the test-machine with an AMD GPU. It is marginally faster than both the default and Webrender without
MOZ_X11_EGL set on the test machine with an integrated Intel graphics card. Firefox 80 is way slower at WebGL than web browsers based on both previous Chromium versions and Chromium 85 on both test-setups regardless of how it is configured.
It is interesting to note that none of the web browsers place any noticeable load on the GPU during the Unity WebGL 2018 benchmark. radeontop shows the AMD RX 470 graphics card used on the AMD test system relaxing at 15-20% during the entire test and the CPU is also chilling with a barely measurable load. All the test results are a fraction of what they could be if it were not for software limitations.
Mozilla Firefox 80 wins the WebXprt 3 benchmark from in-practice Intel subsidiary Principled Technologies. Firefox has always shined in this particular test. The Chromium 85 based browsers perform better than previous versions did in this test but the improvement is not large enough to make much of a difference.
It is interesting to note that NAVER whale 220.127.116.11, based on the much older Chromium 83 engine, outperforms the both latest Chrome browser and Brave browser in WebXprt on one test machine and it outperforms Brave on both. The South Korean NAVER whale is otherwise a vastly superior web browser with a ton of great features other browsers lack. It will be interesting to see how it performs when the South Koreans release an updated version based on Chromium 85.
NAVER whale 18.104.22.168, based on Chromium 83, is faster than Chrome 85 and Brave 1.13.82 (Chromium 85) in the Basemark Web 3.0 benchmark on the AMD test system. Chrome 85, followed by Brave, wins this benchmark on the Intel iGPU system.
Mozilla Firefox 80 is far behind Chromium-based browsers in the Basemark Web test - regardless of how it is configured. It offers slightly more than half the performance other browsers provide.
The WebXprt 3 test from in-practice Intel subsidiary Principled Technologies is the only test where Mozilla Firefox 80 is not utterly crushed by Chromium-based browsers. This is due to the lack of WebGL and graphical elements in that particular benchmark. Unity WebGL 2018 is a purely graphical benchmark and WebGL is a large part of the Basemark Web 3.0 benchmark.
Chromium 85, with the new ANGLE rendering, pushes browsers based on it even further ahead of Mozilla Firefox in the benchmarks where graphics performance plays a crucial part. And that is not the only thing Chromium 85 has going for it.
Google is heavily invested in their Stadia games-on-demand platform. Chromium 85 has a brand new WebHID API that provides browser support for gamepads, joysticks and other input devices. Services like Stadia can leverage the WebHID API to support hardware-specific features like force feedback regardless of which platform the browser is running on. Google has also added support for AVIF images to Chromium 85 and it is enabled by default (Mozilla Firefox has had AVIF support since version 77 but it has to be enabled by setting
true so it is practically unsupported from any web developers perspective).
Mozilla Firefox has a lot of catching up to do. That seems very unlikely after the Mozilla Corporation was forced to fire 250 employees late August. The sad truth is that Firefox seems destined to fall further and further behind both in terms of features and performance.
Chromium 85 was just released so you will likely find that there are no Chromium 85 builds available for your favorite GNU/Linux distribution just yet (rpmfusion has very broken Chromium 85 builds without hardware acceleration for Fedora 32 and 33, you absolutely do NOT want
chromium-freeworld-85.0.4183.83-1.fc32). Getting the Google-branded Chrome variant from google.com/intl/en/chrome/ is one option if that is the case, getting the Brave Web Browser from brave.com is another. One huge potential downside to getting either of those is that none of them provide working VAAPI accelerated hardware video decoding (not that we are sure Chromium 85 provided by distributions will have that, the current VAAPI patches distributions have used for previous Chromium versions do not appear to work with ANGLE). The superior South Korean NAVER whale browser is typically a few Chromium-versions behind, and it is currently based on Chromium 83, so it will take a while before it will catch up and see a release based on Chrimium 85.