Greetings!

Batching notes are moved into a separate post.

Notable WebRender and Gecko changes

Henrik added reftests for the ImageRendering propertiy: (1), (2) and (3).

Bobby changed the way pref changes propagate through WebRender.

Bobby improved the texture cache debug view.

Bobby improved the texture cache eviction heuristics.

Chris fixed the way WebRender activation interacts with the progressive feature rollout system.

Chris added a marionette test running on a VM with a GPU.

Kats and Jamie experimented with various solution to a driver bug on some Adreno GPUs.

Kvark removed some smuggling of clipIds for clip and reference frame items in Gecko’s displaylist building code. This fixed a few existing bugs: (1), (2) and (3).

Matt and Jeff added some new telemetry and analyzed the results.

Matt added a debugging indicator that moves when a frame takes too long to help with catching performance issues.

Andrew landed his work on surface sharing for animated images which fixed most of the outstanding performance issues related to animated images.

Andrew completed animated image frame recycling.

Lee fixed a bug with sub-pixel glyph positioning.

Glenn fixed a crash.

Glenn fixed another crash.

Glenn reduced the need for full world rect calculation during culling to make it easier to do clustered culling.

Nical switched device coordinates to signed integers in order to be able to meet some of the needs of blob image recoordination and simplify some code.

Nical added some debug checks to avoid global OpenGL states from the embedder causing issues in WebRender.

Sotaro fixed an intermittent timeout.

Sotaro fixed a crash on Android related to SurfaceTexture.

Sotaro improved the frame synchronization code.

Sotaro cleaned up the frame synchronization code some more.

Timothy ported img AltFeedback items to WebRender.

Ongoing work

Glenn is about to land a major piece of his tiled picture caching work which should solve a lot of the remaining issues with pages that generate too much GPU work.

Matt, Dan and Jeff keep investigating into CPU performance, a lot which revolving around many memory copies generated by rustc when moving structures on the stack.

Doug is investigating talos performance issues with document splitting.

Nical is making progress on improving the invalidation of tiled blob images during scrolling.

Kvark keeps catching smugglers in gecko’s displaylist building code.

Kats and Jamie are hunting driver bugs on Android.

Enabling WebRender in Firefox Nightly

In about:config, set the pref “gfx.webrender.all” to true 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.