WebRender newsletter #29

To introduce this week’s newsletter I’ll write about culling (moved to a separate post).

Notable WebRender and Gecko changes

  • Bobby implemented dynamically growing the shared texture cache, cutting by half the remaining regression compared to Firefox without WebRender on the AWSY test.
  • Dan did some profiling of the talos test, and identified large data structures being copied a lot on the stack, which led to some of Glenn’s optimizations for this week.
  • Dan fixed a crash with huge box shadows.
  • Kats fixed an issue with scrollbar dragging on some sites.
  • Matt landed his tiled blob image work yielding nice performance improvements on some of the talos tests (45% on tsvg_static and 31% on tsvgr_opacity).
  • Matt investigated the telemetry results.
  • Andrew fixed a crash.
  • Andrew improved animated image frame recycling (will land soon, improves performance).
  • Lee fixed related to missing font descriptors.
  • Glenn optimized out segment builder no-ops.
  • Glenn stored text run outside primitive instances to work around a recent performance regression.
  • Glenn moved opacity from per primitive instance to a per template to reduce the size of primitive instances.
  • Glenn moved the resolution of opacity bindings to the shaders in order to simplify primitive interning.
  • Glenn used primitive interning for text runs.
  • Glenn used primitive interning for clears.
  • Glenn refactored render task chaining.
  • Nical made opacity, gaussian blur, and drop shadow SVG filters use WebRender’s filter infrastructure under some conditions (instead of running on the CPU fall back).
  • Nical followed up with making a subset of SVG color matrix filters (the one that aren’t affected by opacity) use WebRender as well.
  • Nical investigated a color conversion issue when WebRender is embedded in an application that uses OpenGL in certain ways.
  • Sotaro switched presentation to triple buffering

Ongoing work

  • Bobby is further improving memory usage by tweaking cache growth and eviction heuristics.
  • Kats continues working on asynchronous zoom for android and on evaluating  the remaining work before WebRender can be used on android.
  • Kvark is making progress on simplifying the clipping and scrolling APIs.
  • Matt keeps investigating performance in general.
  • Glenn continues incrementally landing patches towards picture caching.
  • Nical is working on blob recoordination.
  • Doug is making progress on document splitting.

Enabling WebRender in Firefox Nightly

In about:

  • config set “gfx.webrender.all” to true,
  • restart Firefox.

One thought on “WebRender newsletter #29

  1. I think WebRender most obvious user experience is that resources are too expensive. I hope to see more optimizations about low memory and low power and low I/O, looking forward to tomorrow’s newsletter.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s