The State Of Various Firefox Features

Written by Eric Griffith in Software on 18 May 2015. Page 2 of 2. 49 Comments


Skia is an alternative option to Cairo for 2D rendering from Google. The project page describes it as: &qupt;Skia is an open source 2D graphics library which provides common APIs that work across a variety of hardware and software platforms. It serves as the graphics engine for Google Chrome and Chrome OS, Android, Mozilla Firefox and Firefox OS, and many other products."

While Azure, Mozilla's 2D graphics engine, has multiple backends enabled for Windows (Direct2D, Direct2D1.1, Skia, and Cairo) the only one enabled by default for Linux is Cairo. In some cases switching to Skia can increase animations by several tens of FPS, but there are occasional problems with the feature as well. During testing I discovered only one visual problem from enabling Skia: when I type in the URL box the suggestion results get drawn overtop of the box rather than beneath it. That being said, fonts seemed to look a bit nicer with Skia, and the browser felt more fluid.

Users wishing to enable Skia on Linux need to set two about:config preferences = skia,cairo = skia,cairo

To see whether or not azure is correctly using the Skia backend, go to about:support and scroll down to Graphics.

AzureContentBackend and AzureCanvasBackend should both report Skia.

No timetable is known for when Skia will be enabled by default.

Off-Main Thread Compositing

The idea behind Off-Main Thread Compositing is that an event or command that doesn't affect something user-visible should not slow down the entire browser, especially not animation and video playback. From a 2012 overview of the feature: "Every web page is broken into a set of layers (backgrounds, canvas, video, web contents, position fixed element, elements that are being animated) by our layers system. When these layers are updated they must be flattened to the screen to show a final frame. This process is called ‘composition’." "By compositing on a separate thread we can still service layers update and keep the browser partially responsive even if the event loop is momentarily blocked by a long running script."

This feature is currently enabled on all platforms except Linux where ther are 5 open bugs against the feature. Once it is enabled it is assumed that Linux will retain only basic support due to outstanding bugs and quality problems with video drivers.

Users wanting to test the feature themselves need to an option in about:config:

layers.offmainthreadcomposition.enabled = true

Just setting that option though does not actually enable it as there is an environment-variable override in place. In order to -actually- enable it you need to set:

export MOZ_USE_OMTC=1

in ~/.profile, and then logout.

You can see whether or not this is enabled for you and in use by going to about:support and scrolling down. If its not enabled you should see it reported: "GPU Accelerated Windows 0/1 Basic." If it is enabled it would read "1/1 OMTC."

I tried this a few months ago and on Fedora 21 with Intel Broadwell graphics this got me pretty heavy flickering, especially during videos, essentially making the browser unusable. Trying this as of F38 the other day got me... nothing. No matter what options I set I could not force enable OMTC, support may currently be broken or not enabled on Fedora.

Here's the meta-bug and the meta-bug for Linux specifically.


This is getting pushed to the end because I was not able to find enough information or a status on it. I did not forget about it. As of right now there's no information widely available, other than this Wiki page which is rather sparse on implementation details / plans / bugs, etc.

If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal tips are also graciously accepted. Thanks for your support.

Related Articles