Hi there, time for newsletter number five. An important detail went under the radar (and didn’t get featured in the newsletter whenever it happened): APZ (async panning and zooming) got enabled by default with WebRender. If you are one of the fearless nightly users who is trying WebRender out, please reset the preference layers.async-pan-zoom.enabled to its default value (true). So to recap, in order to experience the future of Firefox graphics in all of its work-in-progressness, go to about:config and:

turn on gfx.webrender.enabled

turn on gfx.webrendest.enabled

turn on gfx.webrender.layers-free

turn on gfx.webrender.blob-images

if you are on Linux, turn on layers.acceleration.force-enabled

if you had already followed the steps from newsletter #1, turn layers.async-pan-zoom.enabled back on.

Again, some key parts of the WebRender integration are still in a very rough shape. The performance (let alone stability) is still far from reflecting the targets of this project and I wouldn’t advise using this configuration by default yet.

I started a series of posts about WebRender on this blog. You can read part 1 which is an introductory post that doesn’t actually talk about WebRender at all. The post presents a high level overview of the architecture of current web browsers, in order to give some keys to understand the designs that will be explained in subsequent publications. The next post in this series will come in a few weeks.

Notable WebRender changes

Glenn fixed sub-pixel positioning of glyphs. Text now matches how it looks in Gecko on MacOS.

Lee implemented support for font variations in font instances.

Markus found, diagnosed and worked around a driver bug with the GLSL compiler on mac integrated GPUs.

The blur shader was rewritten (this hasn’t been hooked up to Gecko yet).

Notable Gecko changes

Kats turned layers-free on for transform and transform-3d reftests

Jeff has been investigating the overhead of the pile of clips that we currently have. See issues #1731 and #1742.

Nical reduced the overhead of transferring large resources from the content process to WebRender.