WebRender newsletter #22

The closer we get to shipping WebRender, the harder it is for me to take the time to go through commit logs and write the newsletter. But this time is special.

Yesterday we enabled WebRender by default on Firefox Nightly (🎉🎉🎉) for a subset of the users: Desktop Nvidia GPUs on Windows 10. This represents 17% of the nightly population. We chose to first target this very specific configuration in order to avoid getting flooded with driver bugs, and we’ll gradually add more as things stabilize.

Needless to say, this is a pretty exciting moment for the graphics team and everyone who contributed to WebRender, since we have been working on this project for quite a while. There are still a number of blocker bugs to fix before we can hit the beta population, and then some more to meet release quality. Nonetheless, shipping in nightly is huge step. Monitoring bug reports for the next few days will be interesting.

Notable WebRender changes

Glenn avoided allocating clip masks for clip rects in the same coordinate system.

Nical moved the scene data structure to the scene builder thread in preparation for low priority command execution.

Nical implemented a system for processing low priority work without blocking high priority commands. This improves the scheduling of work from background tabs as well as better integration with Gecko’s tab-switching mechanism.

Glenn implemented rasterization with arbitrary coordinate roots. This fixed a bunch of correctness issue and will make it possible to do more caching of rendered content.

Congratulations! I’ve had WebRender enabled on Nightly for a few months now (Linux with itegrated Intel gfx) and it’s been amazingly stable. I don’t really notice any difference between WR being on or off, so it’s great that there are more performance improvements still to come.

My integrated intel chip driver is still blocked for webrender: Intel Open Source Technology Center — Mesa DRI Intel(R) HD Graphics 400 (Braswell) . Paul Stone, did you check in about:support if the driver is actually in use? Force-enabling by pref doesn’t work if the driver is blacklisted.