Welcome to episode 41 of WebRender’s newsletter.

WebRender is a GPU based 2D rendering engine for web written in Rust, currently powering Mozilla’s research web browser Servo and on its way to becoming Firefox‘s rendering engine.

Today’s highlights are two big performance improvements by Kvark and Sotaro. I’ll let you follow the links below if you are interested in the technical details.

I think that Sotaro’s fix illustrates well the importance of progressively rolling out this type of project a hardware/OS configuration at a time, giving us the time and opportunity to observe and address each configuration’s strengths and quirks.

Notable WebRender and Gecko changes

Kvark rewrote the mixed blend mode rendering code, yielding great performance improvements on some sites.

Kats fixed another clipping problem affecting blurs.

Kats fixed scaling of blurs.

Glenn fixed a clip mask regression.

Glenn added some picture cache testing infrastructure.

Nical landed a series of small CPU optimizations.

Nical reduced the cost of hashing and copying font instances.

Nical changed how the tiling origin of blob images is computed.

Sotaro greatly improved the performance of picture caching on Windows with Intel GPUs.

Sotaro improved the performance of canvas rendering.

Sotaro fixed empty windows with GDK_BACKEND=wayland.

Sotaro fixed empty popups with GDK_BACKEND=wayland.

Jamie improved the performance of texture uploads on Adreno GPUs.

Enabling WebRender in Firefox Nightly

In about:config , enable the pref gfx.webrender.all and restart the browser.

Reporting bugs

The best place to report bugs related to WebRender in Firefox is the Graphics :: WebRender component in bugzilla.

Note that it is possible to log in with a github account.

Using WebRender in a Rust project

WebRender is available as a standalone crate on crates.io (documentation)