WebRender newsletter #11

Newsletter #11 is finally here, even later than usual due to an intense week in Austin where all of Mozilla’s staff and a few independent contributors gathered, followed by yours truly taking two weeks off.

Our focus before the Austin allhands was on performance, especially on Windows. We had some great results out of this and are shifting priorities back to correctness issues for a little while.

Notable WebRender changes

  • Martin added some clipping optimizations in #2104 and #2156.
  • Ethan improved the performance of rendering large ellipses.
  • Kvark implemented different texture upload strategies to be selected at runtime depending on the driver. This has a very large impact when using Windows.
  • Kvark worked around the slow depth clear implementation in ANGLE.
  • Glenn implemented splitting rectangle primitives, which allows moving a lot of pixels to the opaque pass and reduce overdraw.
  • Ethan sped up ellipse calculations in the shaders.
  • Morris implemented the drop-shadow() CSS filter.
  • Gankro introduced deserialize_from in serde for faster deserialization, and added it to WebRender.
  • Glenn added dual-source blending path for subpixel text when supported, yielding performance improvements when the text color is different between text runs.
  • Many people fixed a lot of bugs, too many for me to list them here.

Notable Gecko changes

  • Sotaro made Gecko use EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE for WebRender. This avoids a full screen copy when presenting. With this change the peak fps of http://learningwebgl.com/lessons/lesson03/index.html on P50(Win10) was changed from 50fps to 60fps.
  • Sotaro prevented video elements from rendering at 60fps when they have a lower frame rate.
  • Jeff removed two copies of the display list (one of which happens on the main thread).
  • Kats removed a performance cliff resulting from linear search through clips. This drastically improves MazeSolver time (~57 seconds down to ~14 seconds).
  • Jeff removed a copy of the glyph buffer
  • Lots and lots of more fixes and improvements.

Enabling WebRender in Firefox Nightly

In about:config:

  • set “gfx.webrender.enabled” to true,
  • set “gfx.webrender.blob-images” to true,
  • set “image.mem.shared” to true,
  • if you are on Linux, set “layers.acceleration.force-enabled” to true.

Note that WebRender can only be enabled in Firefox Nightly.

9 thoughts on “WebRender newsletter #11

  1. Hi Nical
    I still like the newsletter and all that you do. And I still like testing WebRender.
    I’m not complaining but… I don’t know if you know about this problem but… after pausing Youtube video… all the buttons under the progress bar show up red and may flash also the other videos other right side of the video website.. there time is red and may flash to also… gray square blink over the right arrow, the search button and the three Firefox Nightly buttons in the upper right corner as if… painted layers was enabled . And painted layers is not enabled. And last there is a black rectangle underneath the time on the playing video. Then I don’t why but when you play the video after pausing it… and you diagonally brush over the problems all but a black rectangle gets turned on and off. And I don’t know why this is happening. And I don’t know why or how to get rid of the black rectangle. Thank you

  2. Great work ! I was wondering, is it possible / doable to run WebRender without window manager, directly on top of DRM/GBM in order to implement a window manager with it (or to use it in embedded systems that don’t have X11/Wayland) ?

    1. WebRender doesn’t know about the windowing layer, it mostly interacts with OpenGL using an already-provided context (the embedder is responsible for loading the gl functions etc.). So I suppose in theory you should be able to cook up something like that, as long as you can provided WebRender with a functional OpenGL context.

  3. I still like the newsletter And I still like testing WebRender.
    I’m not complaining but…please if can fix the the black and red flashing elements a.s.a.p thank you. I get the black and red flashing elements to. thank you

  4. I’d need to examine with you here. Which is not something I usually do! I take pleasure in studying a submit that can make individuals think. Additionally, thanks for permitting me to remark!

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 )

Google+ photo

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

Twitter picture

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

Facebook photo

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

Connecting to %s