Platform/GFX/perf triage

From MozillaWiki
< Platform‎ | GFX
Jump to: navigation, search

The page contains a breakdown of performance related bugs and tasks for WebRender.

See also, the graphics perf bugs that come out of the performance team's triage process

Bugzilla tree view of the wr-perf bugs: https://bugzilla.mozilla.org/showdependencytree.cgi?id=1477376&hide_resolved=1

To determine in which category a performance issue fits in a good source of information is to set the pref gfx.webrender.debug.profiler-ui to "Frame stats,Time graphs, ,GPU". Also set "gfx.webrender.debug.profiler" and "gfx.webrender.debug.gpu-time-queries" to true. this should be enough to tell in which stage of the rendering pipeline the issue is. Then set the profiler ui pref to more specific counters to continue investigating (see the list of profile counters in profiler.rs).

High priority bugs

Metabug: wr-perf-p1

Full Query
Type ID Summary Assigned to Priority
defect 1664478 Blend modes and other effects on a single image force an extra intermediate target P2
enhancement 1404477 Chrome repaints cause rebuilds of the entire browser scene P3
defect 1595680 Slightly different values in display lists causing extra picture cache invalidations. P3
defect 1595909 Image masks with different keys being added during scrolling P3

4 Total; 4 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Alternate query using performance flag set to P1:

Full Query
Type ID Summary Assigned to Priority
defect 1595680 Slightly different values in display lists causing extra picture cache invalidations. P3
defect 1772249 Jank and checkerboarding when scrolling https://www.waterfox.net/ --
defect 1825395 Janky carousel on Apple India home page on Moto G Pure --
defect 1826576 CSS filter() with invert() and hue-rotate() results in sluggish scrolling on Wikipedia --

4 Total; 4 Open (100%); 0 Resolved (0%); 0 Verified (0%);


CPU time

Frame building

useful prefs:

  • gfx.webrender.debug.profiler-ui: "Frame times"

Metabug: wr-frame-building

A few common themes:

  • Many vector allocations add up to occupying a lot of the total frame building time.
  • HashMap operations are also showing up.
  • Removing redundant work or moving it to scene building can help a lot (for example Glenn's work on clipping).
  • Some pages have a very high primitive count. Anything that can help amortize how costs scale with prim count helps.
  • Timings tend to spike, so it's best to look at maximum times instead of averages. Spikes tend to line up with scene builds.

See also

Full Query
Type ID Summary Assigned to Priority
defect 1562433 Very high CPU utilization from pulsating animation P2
defect 1480964 With WR, Scrolling on maze solver page is janky. Non-WR is smooth (WR scrolling is not async enough) P3
defect 1501545 testcase from bug 1123075 performs poorly on WR, and takes several GB of RAM on higher count P3
defect 1587475 Page faults and Lock contention on the render backend from memory allocations P3
defect 1596046 A lot of vector allocations during frame building P3
defect 1596054 picture::TileNode::update_dirty_rects sometimes is high in profiles P3
enhancement 1611134 Process primitives by types instead of always in z-order P3
task 1611145 Remove (most of) the primitive segmentation P3
enhancement 1611153 Per-cluster GPU data allocation P3
defect 1611199 Batching is too slow when there are many primitives P3
defect 1611908 A lot of time spent managing primitive dependencies during frame building P3
task 1613067 Investigate using cluster dependencies to skip visibility on some clusters P3
enhancement 1628665 Pack all four subpx positioned versions of glyphs together P3
enhancement 1641704 Investigate update_visibility overhead & prepare_primitives P3
enhancement 1650378 Skip frame building if the only changes in the frame are external images. P3
enhancement 1651018 Better primitive cluster culling P3
enhancement 1654779 Further reduce the amount of allocations in set_param_and_get_batch Nicolas Silva [:nical] P3
task 1685831 Reduce the cost from checking whether glyphs were evicted by the texture cache P3
defect 1700284 CSS pulse animation cause a ~25% CPU load of Firefox P3
defect 1768984 Very slow plane splitting and poor batching on https://themaninblue.com/experiment/slashGlobe/ Nicolas Silva [:nical] P3
task 1604670 Switch webrender math to use intrinsics P4
defect 1493359 https://lab.hakim.se/domtree/ is slower with WR P5
enhancement 1628530 [meta] Scene/frame building performance improvements --
defect 1707796 Choppy scrolling on https://gotofitnessclub.com/ --
defect 1708408 Up to 50% CPU load for animated (job is running) SVG on Github Actions page --

25 Total; 25 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Scene building

Metabug: wr-scene-building

Full Query
Type ID Summary Assigned to Priority
enhancement 1404477 Chrome repaints cause rebuilds of the entire browser scene P3
defect 1508116 4-5ms spent scene building new Gmail (scene building is too slow) P3
defect 1582621 Scene building takes too long (> 7ms) on the MotionMark 1.1 Multiply benchmark P3
enhancement 1631756 Build separate pipelines for the content and UI and stitch them up during frame building P3
enhancement 1648091 A lot of time spent reallocating vectors during scene building Nicolas Silva [:nical] P3
enhancement 1720517 Avoid scene building for JS-controlled transform changes in the browser chrome P3
defect 1768368 scrolling-boxes.html checkerboards a lot P3
defect 1493359 https://lab.hakim.se/domtree/ is slower with WR P5

8 Total; 8 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Renderer (Driver & ANGLE overhead)

Metabug: wr-renderer

Useful prefs:

  • gfx.webrender.debug.profiler-ui: "Frame stats,#Renderer,Renderer graphs"
Full Query
Type ID Summary Assigned to Priority
task 1660498 Investigate deferring texture deletion P2
defect 1652511 Scrolling on https://www.aspyredesign.com/ is extremely janky (with lots of time spent in painting) P3
defect 1657183 Janking/stuttering while scrolling on imgur (Celeron N4000) (Geminilake) P3
enhancement 1660116 Interleave frame building and command submission P3
defect 1660159 Bad janking when touchpad scrolling on moneycontrol.com P3
defect 1700284 CSS pulse animation cause a ~25% CPU load of Firefox P3
enhancement 1701986 Share and reuse Direct composition surfaces between multiple windows P3
defect 1761384 zoom in/out performance worse than Chrome/Edge P3
enhancement 1647080 WebRender/WR: Scrolling hangs shortly on purecss-francine --
defect 1674692 Slow page building while scrolling on deusex.fandom.com --
enhancement 1678265 A lot of time spent in SwapBuffer on https://eteam-eteam.4flow.cloud/# --
enhancement 1685261 Use a 2d texture atlas for picture cache tiles --
defect 1747191 https://codepen.io/danwilson/full/VwzNLYd is very slow (mix-blend-mode) --
defect 1758582 The fancy apple product pages stutter heavily during scroll animation --
defect 1771846 Jank when navigating https://www.euphoriques.com/ --

15 Total; 15 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Texture/Buffer uploads

Metabug: texture-upload-perf

Useful prefs:

  • gfx.webrender.debug.profiler-ui: "#GPU cache upload,#Texture cache update,#Texture uploads,#Texture uploads mem,#Rasterized glyphs,#Rasterized blob tiles"

See also:

Full Query
Type ID Summary Assigned to Priority
defect 1478125 Texture upload performance could be better on Windows Jeff Muizelaar [:jrmuizel] P3
task 1567511 Very noisy GPU times P3
defect 1573113 https://propjockey.github.io/DOMinion-build-demo/ breaks webrender P3
defect 1599558 Video texture upload still runs into format conversion P3
defect 1611582 Scrolling on myheritage.com is very laggy with WebRender P3
defect 1628736 Slow scrolling performance on large changeset on hg.mozilla.org (VBO upload) P3
defect 1683354 [Bug] Scrolling stutter on gadgets.ndtv.com website P3
defect 1699261 [Bug] choppy scrolling on https://www.deutsche-rentenversicherung.de P3
enhancement 1729328 Avoid copying images row by row in texture uploads Nicolas Silva [:nical] P3
defect 1719169 Scrolling past images makes scrolling choppy P4
defect 1521265 Slow Frames detected on Slurpee Canada home page (canvas perf) P5
defect 1647908 Bad performance on https://questdb.io/ from animated background svg --
defect 1707796 Choppy scrolling on https://gotofitnessclub.com/ --
defect 1715059 Slow animation at https://discord.com/hypesquad --
defect 1736108 Zooming https://www.bia.gov/sites/bia.gov/files/assets/public/webteam/pdf/idc1-028635.pdf is slow in Firefox --
defect 1766098 Jank when scrolling https://teenage.engineering/products --
defect 1771845 Jank when scrolling https://webflow.com/ --

17 Total; 17 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Batching

Metabug: wr-batching

Performance issues caused by high amounts of draw calls. 100 draw calls per frames is a reasonable amount (not a hard limit). Multiple hundreds, however, tend to cause excessive CPU usage in the renderer.

Useful prefs:

  • gfx.webrender.debug.profiler-ui: "#Draw calls"
Full Query
Type ID Summary Assigned to Priority
defect 1573113 https://propjockey.github.io/DOMinion-build-demo/ breaks webrender P3
defect 1580864 Janky scrolling with interactive map P3
task 1585374 Investigate batching algorithm improvements Nicolas Silva [:nical] P3
task 1615613 Unify the text and brush shader infrastructures Nicolas Silva [:nical] P3
enhancement 1624272 Decouple texture cache storage and batching P3
defect 1637580 Very poor javascript + SVG animation performance P3
defect 1651753 Janky WebRender scrolling on reallifecomics.com with Renderer thread swamped in draw_alpha_batch_container P3
defect 1732594 Browser freezes. 2.0s BHR detected hang P3
defect 1457806 https://output.jsbin.com/surane/quiet is not smooth P4
defect 1457683 servo moire demo is much slower in Firefox + WebRender than in Chrome P5
defect 1648597 Pinch to zoom on https://shkspr.mobi/blog/2020/06/symbian-won/ is slow --
defect 1727851 High cpu usage rendering mixed-width strings within an x-scrollable element with border-{top,bottom}-{left,right}-radius --

12 Total; 12 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Picture Caching

Metabug: picture-cache-perf

See also: incremental-perf

Useful prefs:

  • gfx.webrender.debug.profiler-ui: "#Rendered picture tiles, ,Picture cache slices,Picture tiles,Picture tiles mem"
Full Query
Type ID Summary Assigned to Priority
enhancement 1536360 [meta] Picture caching improvements P2
defect 1595680 Slightly different values in display lists causing extra picture cache invalidations. P3
defect 1595909 Image masks with different keys being added during scrolling P3
defect 1675030 Picture cache invalidates when tile device rect is unchanged Andrew Osmond [:aosmond] (he/him) P3
defect 1689746 Slow scrolling on weather.com today page P3
defect 1719525 Full-screen painting with OS compositor when scrolling a PDF in pdf.js Brad Werth [:bradwerth] P3
enhancement 1591540 Special-case solid color OS compositor surfaces in order to save memory --
enhancement 1647080 WebRender/WR: Scrolling hangs shortly on purecss-francine --
defect 1709638 Overscrolling on reddit causes fullscreen repaints --
defect 1789996 Choppy scrolling on Telegram in Firefox Android Jamie Nicol [:jnicol] --
defect 1826576 CSS filter() with invert() and hue-rotate() results in sluggish scrolling on Wikipedia --

11 Total; 11 Open (100%); 0 Resolved (0%); 0 Verified (0%);


DisplayList building

Metabug: wr-displaylist-perf

Useful prefs:

  • gfx.webrender.debug.profiler-ui: "Transaction times"
Full Query
Type ID Summary Assigned to Priority
enhancement 1422032 We spend an appreciable amount of time in nsIFrame::ClearInvalidationStateBits during facebook-refresh.thml P2
defect 1424968 Retrieving auPerDevPixel is one of the most expensive parts of ScrollingLayersHelper::BeginItem P2
defect 1416082 [meta] MotionMark perf P3
defect 1422399 Improve the serialization code in push_text P3
defect 1480964 With WR, Scrolling on maze solver page is janky. Non-WR is smooth (WR scrolling is not async enough) P3
defect 1501545 testcase from bug 1123075 performs poorly on WR, and takes several GB of RAM on higher count P3
enhancement 1507975 Bake spacing information into gfxShapedText P3
defect 1508810 Bincode serialization code is still bad P3
enhancement 1509414 Round clip rect once in TextDrawTarget P3
enhancement 1533135 Scrolling on bing images search results is sluggish P3
defect 1605155 Opening a video in Picture-in-Picture still causes the originating tab to compute DisplayLists at the video frame rate while the tab is the foreground P3
enhancement 1631752 Serialize/deserialize the webrender displaylist to/from shared memory P3
defect 1768552 CSS-Only Cube Pack has jank P3
enhancement 1796594 Serialize ByteBuf using Write/ReadSequenceParam Nicolas Silva [:nical] P3
defect 1836513 Main-thread WebP decoding when loading voxchoirs.com P3
enhancement 1505942 Add a RoundedRect display item to WebRender P5
defect 1833273 Map panning is janky at battles.nodegoat.net --

17 Total; 17 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Blob image rasterization

Metabug: blob-perf

Blob image performance affect SVG and a few drawing primitives that aren't supported by WebRender.

A few common themes in blob image performance bugs:

  • Rasterization performance on the CPU (rasterization itself, malloc contention)
  • Overhead of replaying commands on multiple tiles.
  • Bad layerization causing many rasterized tiles and a lot of overdraw.
  • Rendering very large blobs failing to account for parts that aren't visible.
  • SVG filters on the CPU.

See also:

Useful prefs:

  • gfx.webrender.blob.paint-flashing: true
  • gfx.webrender.debug.profiler-ui: "#Blob rasterization,#Rasterized blob pixels,#Rasterized blob tiles,#Rasterized blobs"
Full Query
Type ID Summary Assigned to Priority
enhancement 1378549 Blob image update should reuse the existing buffer P2
defect 1389712 switching to a Google Slides tab is slow (long repaint) P3
enhancement 1458302 Use nsDisplayItem::IsReused as a preliminary check to figure out if nsDisplayTransform's transform has changed P3
defect 1469565 WR: Implement Tiled Blob Masks P3
defect 1477371 https://creativecluster.lu/ animation at very bottom of page is slow because of large blob Jeff Muizelaar [:jrmuizel] P3
enhancement 1480132 Avoid allocating geometry during blob invalidation P3
defect 1493466 Circle animation on radio website is janky (too much texture upload because SVG blob clip is ignored) Jeff Muizelaar [:jrmuizel] P3
enhancement 1507856 Blob Images allocate and zero-out pixels that won't be used. P3
defect 1514047 Too much blob layerization when clicking a circle on https://immersion.media.mit.edu/demo P3
defect 1519622 Bad performance on https://musicmap.info when zooming with webrender enabled (svg/blob) P3
defect 1551733 Pretty bad performance on http://mind-map.glitch.me/ P3
defect 1552405 The "info" panel on the perf-html.io page scrolls really bad with WR (Blur/Filter related?) P3
defect 1815397 Some blob layers are way too large P3
defect 1800845 Very bad blob layerization and perf on codepen demo P3
defect 1557069 https://crisal.io/aemet-visualizer takes a lot of time to render beceause of high blob recording times P3
task 1566769 Blob images sometimes have unreasonable sizes P3
enhancement 1566838 Support changing the visible area of a blob image without discarding the whole thing P3
defect 1566942 Very slow animations with SVG filters. P3
task 1567291 Malloc contention on WrWorker threads is still too high P3
defect 1568027 WebRender performs worse on Binding of Isaac CodePen demo (svg filters/blob) P3
defect 1578964 Terrible animation performance (svg filters) P3
defect 1579977 Poor scrolling performance on Apple Music Beta Nicolas Silva [:nical] P3
defect 1580864 Janky scrolling with interactive map P3
enhancement 1583545 Add linear gradient clips in webrender Nicolas Silva [:nical] P3
enhancement 1583879 Detect and skip empty blob tiles Nicolas Silva [:nical] P3
enhancement 1585781 SVG: Container item bounds changes cause invalidations P3
enhancement 1587827 Don't build gecko display items for SVG elements with webrender. P3
defect 1594768 Too many blob layers on https://www.goodfour.us/ P3
enhancement 1595799 Use webrender display items instead of blobs when possible P3
enhancement 1609705 blob tile size should vary depending on screen size P3
enhancement 1610409 Add support for luminance masking in PushLayer P3
defect 1621532 The above the fold animation is too slow on https://kaganhotel.com P3
defect 1623634 Huge mask rasterization and upload on https://www.apple.com/ipad-pro/ P3
defect 1624304 Scrolling SVG lags badly and gets worse with WR P3
task 1628105 Rasterize blobs in bigger buffers P3
defect 1637580 Very poor javascript + SVG animation performance P3
defect 1789720 css mask-image does not work with with transform and dimensions over 32767px P3
defect 1658282 Slow rendering of animated SVG transforms at https://discord.com/hypesquad P3
enhancement 1661037 Render more types of SVG content with WebRender display items P3
enhancement 1661044 Avoid breaking blob groups in some cases P3
defect 1789067 High CPU usage when rendering SVG P3
enhancement 1673653 Support for rasterizing SVG images on WR worker threads Andrew Osmond [:aosmond] (he/him) P3
defect 1686590 [Bug] Very slow, choppy performance of SVG compared to Chrome on same device (example included) P3
defect 1719779 Slow blob recording in codepen demo (and bad gpu time) P3
defect 1705866 Slow scrolling on bose.com P3
enhancement 1450402 Consider caching paths across recordings P4
defect 1698189 Excessive memory usage trigger by padding --
defect 1708971 Up to 160% CPU load due to SVG animations on https://feedly.com --
defect 1688765 [SVG] SVG images on https://test.ig-klettern.org/ make scrolling choppy and slow --
defect 1725420 Slow loading of page elements on wizard-shoji.webflow.io caused by large svg image --
enhancement 1743136 Delay layerization of transforms caused by active children --
defect 1744848 Abnormally high CPU usage with SVG animation on headspace.com --
defect 1763821 Lag when hovering cursor over "Threads" card on https://paulstamatiou.com/work/ --
defect 1771833 Jank when opening menu on https://www.designpluspeace.com/ --
defect 1771845 Jank when scrolling https://webflow.com/ --
enhancement 1772207 Do blob/SVG invalidation using the frame tree instead of display lists --
defect 1772249 Jank and checkerboarding when scrolling https://www.waterfox.net/ --
defect 1667241 Large SVG image drawing on fivethirtyeight forecast --
defect 1637876 Animations are very laggy while scrolling on Kaipoche site (NSFW) --
enhancement 1798101 [meta] Lottie performance & rendering quality --
task 1554171 Increase the max number of blob tiles per transaction to 1024 --
defect 1839242 svg high cpu usage --

62 Total; 62 Open (100%); 0 Resolved (0%); 0 Verified (0%);


SVG filters metabug: wr-svg-filters

Full Query
Type ID Summary Assigned to Priority
defect 1455427 SVG filters on HTML content is a bad time P3
defect 1566942 Very slow animations with SVG filters. P3
defect 1568027 WebRender performs worse on Binding of Isaac CodePen demo (svg filters/blob) P3
task 1573657 Support SVG filter primitive subregions in WebRender P3
task 1573994 Update Gecko to use new SVG filter primitives P3
defect 1578964 Terrible animation performance (svg filters) P3
defect 1586055 feComponentTransfer filters that are promoted as WebRender filters don't render beyond their input, even when they should P3
enhancement 1700721 Support combining sRGB conversion with filtering in brush_blend.glsl Nicolas Silva [:nical] P3
defect 1698365 https://www.digibank.co.il/ causes high CPU and power consumption --
defect 1708971 Up to 160% CPU load due to SVG animations on https://feedly.com --
defect 1820246 Extreme lag (almost crash) when loading an animated svg with filters --
task 1824502 WR SVG filters: Lay the groundwork for natively rendering SVG filters Ashley Hale [:ahale] --
defect 1845890 Very high CPU usage when viewing SVG with animated filter --

13 Total; 13 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Glyph rasterization

These bugs affect CPU time and texture uploads.

Metabug: 1681339

Useful prefs:

  • gfx.webrender.debug.glyph-flashing: true
  • gfx.webrender.debug.profiler-ui: "#Rasterized glyphs,#Glyph resolve,#Texture cache update"
Full Query
Type ID Summary Assigned to Priority
defect 1674864 Slow scrolling on https://stirringabyss.com/ --

1 Total; 1 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Scheduling

Metabug: frame-scheduling

Useful prefs:

  • gfx.webrender.debug.profiler-ui: "#Content send,#API send"
Full Query
Type ID Summary Assigned to Priority
defect 1603453 When the CPU is under load posting tasks to the renderer thread's eventloop can take a long time P3
task 1612441 Investigate whether we can avoid blocking during swap buffers in the renderer P3
enhancement 1612443 Do frame building and rendering on the same thread P3
defect 1614734 Time spent stuck in RendererOGL::WaitForGPU() P3
defect 1668339 Bad WR performance with low number of cores when the CPU is busy P3
defect 1686358 Hit testing interaction with the APZ lock can be expensive P3
defect 1715317 Scrolling lag and stuttering on basic website - intel graphics --
defect 1732144 Janky scrolling on intab.io (dual core CPU) --
task 1735391 [meta] Reduce compositing latency by waiting for vsync in fewer cases --

9 Total; 9 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Vsync

Metabug: vsync

Full Query
Type ID Summary Assigned to Priority
defect 1592530 GLXVsyncThread occupied high CPU (GLXtest process failed (exited with status 1): Unable to load libGL.so.1) P2
defect 1400553 Firefox on primary monitor at 75hz makes firefox occasionally drop FPS. Vsync/DWM issue? (Redstone 3 build) P3
defect 1562155 Linux hardware vsync guesses the rate, and interferes with requestIdleCallback P3
enhancement 1563075 Implement FrameSource compositing abstraction P3
defect 1587040 VSync firing 255 times more frequently than normal during "display off" sleep on Windows P3
defect 1592786 XWayland: Compositing gets capped at 30fps after extended uptime on Linux P3
defect 1630490 Vsync cap on 144 hz Multi-monitor Setup & SW VSYNC P3
defect 1650276 VSync timestamp handling is confused, inconsistent, and non-optimal P3
defect 1650499 Win7: Wrong Hz display detection P3
defect 1657905 Firefox is laggy when using on external 75Hz 1080p monitor, on Pop OS, with and without webrenderer on, but window works perfectly fine when moved over to the laptop's display. P3
enhancement 1681830 Stop using DwmFlush on Windows --
defect 1687142 Vsync drift due to inaccurate mVsyncRate --
defect 1775153 [XFCE] Wrong Vsync --

13 Total; 13 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Preserve-3d

Metabug: bug 1795885

Full Query
Type ID Summary Assigned to Priority
defect 1745050 https://acko.net/files/slacko/ is very slow when scrolling, much jank P2
defect 1821595 CSS3D Aluminum Oxide molecule demo is janky P2
enhancement 1597326 Avoid separate surfaces in WebRender if preserve-3d children don't intersect P3
defect 1768984 Very slow plane splitting and poor batching on https://themaninblue.com/experiment/slashGlobe/ Nicolas Silva [:nical] P3
defect 1493359 https://lab.hakim.se/domtree/ is slower with WR P5
defect 1707845 Jittery 3D CSS --
defect 1800177 Twisting CSS Cube is slow in Firefox --
defect 1800998 3D CSS demo is slow in Firefox --

8 Total; 8 Open (100%); 0 Resolved (0%); 0 Verified (0%);


GPU time

Useful prefs:

  • gfx.webrender.debug.profiler-ui: "Frame stats, ,#GPU,#Rendered picture tiles,|,GPU time queries"
  • gfx.webrender.debug.gpu-time-queries: true


Caching

Metabug: wr-caching

Full Query
Type ID Summary Assigned to Priority
enhancement 1548396 Support picture caching on child pictures. P2
defect 1528376 High GPU usage on https://pressprogress.ca/jason-kenneys-labour-reforms-are-arbitrary-and-ridiculous-workers-rights-advocates-say/ P3
defect 1579977 Poor scrolling performance on Apple Music Beta Nicolas Silva [:nical] P3

3 Total; 3 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Too many render passes

Metabug: wr-render-passes

Note, it's likely that most of the bugs below would be fixed by caching the render passes (bucket above).

Full Query
Type ID Summary Assigned to Priority
defect 1664478 Blend modes and other effects on a single image force an extra intermediate target P2
defect 1517926 Bad performance on nested CSS keyframe animation P3
task 1549734 Reduce the resolution of some render tasks when going over GPU memory budget P3
defect 1580864 Janky scrolling with interactive map P3
enhancement 1597326 Avoid separate surfaces in WebRender if preserve-3d children don't intersect P3
defect 1732594 Browser freezes. 2.0s BHR detected hang P3
defect 1772743 https://codepen.io/mknadler/pen/WjBJEg OOM's and crashes P3
task 1783251 Work around unbounded intermediate render target usage P3
defect 1457683 servo moire demo is much slower in Firefox + WebRender than in Chrome P5
defect 1677364 After OOM crash on a contrived testcase, the GPU process doesnt release 4.1GB memory unless force terminated from about:support --
defect 1771846 Jank when navigating https://www.euphoriques.com/ --
defect 1795684 BoomChicago.com booking interface slows down entire browser --

12 Total; 12 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Overdraw

Metabug: 1613404

Full Query
Type ID Summary Assigned to Priority
enhancement 1485534 Images that have alpha channels but are actually opaque go in the transparent pass P2
enhancement 1558133 Reducing overdraw with huge semi-transparent images P3
enhancement 1597324 Detect opaque split planes in WebRender P3
defect 1733455 sw-wr: background image scrolling is very choppy on colorpeople.com P3
defect 1457683 servo moire demo is much slower in Firefox + WebRender than in Chrome P5
enhancement 1596634 When blur filter is applied on a large area, it delays the full rendering --
defect 1674864 Slow scrolling on https://stirringabyss.com/ --

7 Total; 7 Open (100%); 0 Resolved (0%); 0 Verified (0%);


GPU times (others)

Metabug: wr-gpu-time

Full Query
Type ID Summary Assigned to Priority
defect 1664478 Blend modes and other effects on a single image force an extra intermediate target P2
defect 1528376 High GPU usage on https://pressprogress.ca/jason-kenneys-labour-reforms-are-arbitrary-and-ridiculous-workers-rights-advocates-say/ P3
enhancement 1583856 Segment very large border radii. P3
enhancement 1606222 Network connection - High GPU load until the "connection timeout" message appear caused by throbber P3
enhancement 1651985 Animation causes webrender page to take more and more GPU time, resetting every ~10s P3
defect 1652511 Scrolling on https://www.aspyredesign.com/ is extremely janky (with lots of time spent in painting) P3
defect 1654231 Nvidia powerstates causing stuttering in web browser P3
enhancement 1664060 Tiled masks in WebRender P3
defect 1673290 https://ics-creative.github.io/180914_conic_gradient/line_effect/ is slow due to large layer sizes and clips P3
enhancement 1690401 brush_mix_blend shader could use premultiplied blend math instead of doing expensive un-premultiplies P3
defect 1728780 Bad GPU time on system76 website P3
defect 1744654 Very bad GPU times on https://www.gisaid.org/hcov19-variants/ P3
enhancement 1596634 When blur filter is applied on a large area, it delays the full rendering --
task 1639336 Investigate high times in target_init GPU profiling bucket on low-end Intel GPUs --
defect 1640435 https://blog.onepeloton.com/peloton-covid-19-initiatives/ scrolls poorly on Mac --
enhancement 1647080 WebRender/WR: Scrolling hangs shortly on purecss-francine --
defect 1689225 Low FPS Scrolling on Touchpad (Windows 4k) --
enhancement 1694908 Turn picture composite modes into their own primitive kinds --
enhancement 1695960 Better cache/reuse clip masks for rounded corners --
defect 1707845 Jittery 3D CSS --
defect 1747191 https://codepen.io/danwilson/full/VwzNLYd is very slow (mix-blend-mode) --
defect 1758582 The fancy apple product pages stutter heavily during scroll animation --
defect 1764676 https://www.nomanssky.com/outlaws-update/ scrolls quite bad on Nightly --
defect 1795684 BoomChicago.com booking interface slows down entire browser --

24 Total; 24 Open (100%); 0 Resolved (0%); 0 Verified (0%);


GPU Memory usage

Metabug: wr-gpu-memory

Useful prefs:

- See all profile counters starting with "Texture cache" in addition to "Created targets".
Full Query
Type ID Summary Assigned to Priority
enhancement 1475518 Commit-space usage investigation P3
defect 1615051 Hangs caused by expensive animations on https://paulstamatiou.com/work/ can freeze Firefox P3
defect 1701643 Webrender per-window memory overhead is high P3
enhancement 1701986 Share and reuse Direct composition surfaces between multiple windows P3
defect 1716317 A lot of GPU memory goes into the render target pool P3
enhancement 1716525 Flush caches and pools from least recently shown windows when under memory pressure P3
enhancement 1716579 Reduce the memory usage of windows that haven't been rendered for a long time Nicolas Silva [:nical] P3
defect 1772743 https://codepen.io/mknadler/pen/WjBJEg OOM's and crashes P3
defect 1715957 Very high gpu memory usage with many windows --
defect 1824520 High GPU memory under gfx/webrender/textures and gpu-committed --

10 Total; 10 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Video playback

Metabug: video-perf

Full Query
Type ID Summary Assigned to Priority
defect 1766383 A 4k video downloaded from youtube uses more "3d" than Chrome on local playback (but uses the same "Video codec 0") P2
defect 1439489 Very High CPU Usage (150-200%) on Twitch macOS (profile included) P2
defect 1756370 Youtube Stream Hardware Acceleration Boosts GPU Clocks Over and Over P2
task 1726060 [meta] Demux data directly into shmem in order to prevent copy Alastor Wu [:alwu] P2
defect 1371999 Downscaled videos look extremely bad with pronounced aliasing artifacts Sotaro Ikeda [:sotaro] P3
defect 1728169 High VRAM clocks when playing videos (Twitch/Youtube) only on FF P3
defect 1733282 Full screen vp9 video playback on Windows consumes more power than chrome browser P3
defect 1683290 PiP doubles CPU and GPU load P3
defect 1762617 https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html has a/v sync issues P3
defect 1778560 High CPU and GPU usage with YouTube videos with NVIDIA GPU P3
defect 1785972 Youtube videos too bright/oversaturated on lenovo ideapad 100s with webrender.dcomp-video-overlay-win enabled P3
defect 1820370 Auto scrolling on a YouTube 4K video stutters Ashley Hale [:ahale] P3
defect 1721702 twitch uses more GPU in Firefox than Chrome --
enhancement 1724949 Consider letting MediaFoundation manage our DirectComposition swap chain --
defect 1684662 WMF VP9 hardware decoding looks stuttery vs. software decoding Jeff Muizelaar [:jrmuizel] --
defect 1738557 High CPU and GPU usage as compared to MS Edge when playing a YT video on Windows 10/11 --
defect 1739277 Very high RAM usage with YouTube --
defect 1750660 Wrong color of full range videos with gfx.webrender.dcomp-video-overlay-win --
enhancement 1751144 Add DecodeSwapChain support to hardware decoded video --
enhancement 1711461 Use Wayland for YUV conversion of video Robert Mader [:rmader] --
enhancement 1768575 Use video scaling by VideoProcessor only when DXGI_OVERLAY_SUPPORT_FLAG_SCALING flag exists --
task 1769643 Let video overlay ride the trains to release on non-Intel GPU on Windows --
defect 1771637 video blinking when play two video in two window on two screen with vastly different refresh rate (60Hz and 160Hz) at same time on Radeon RX 6900 XT on Adrenalin 22.5.2 Optional --
defect 1778586 Random microstuttering on YouTube videos --
enhancement 1780824 Support Intel video processor super resolution for video overlay on Windows --
enhancement 1793908 Add HDR tone mapping for playing HDR through video overlay on Windows Sotaro Ikeda [:sotaro] --
task 1796511 Re-enable zero copy hardware decoded video to release on non-intel GPUs on Windows Sotaro Ikeda [:sotaro] --
enhancement 1797022 Reduce vsync when playing full screen video to save power Sotaro Ikeda [:sotaro] --
enhancement 1797028 Add DXGISwapChain tearing support Sotaro Ikeda [:sotaro] --
task 1801763 Re-enable ZeroCopyNV12Texture until early beta with non-intel GPUs Sotaro Ikeda [:sotaro] --
defect 1820318 Terrible scrolling on https://work.nicochilla.com/ with media.wmf.vp9.enabled=True --
task 1851630 Re-enable video overlay without ZeroCopyNV12Texture with AMD GPUs to release Sotaro Ikeda [:sotaro] --

32 Total; 32 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Power usage

Metabug: gfx-power-usage

Full Query
Type ID Summary Assigned to Priority
defect 1732986 High GPU power usage when scrolling with SWGL Ashley Hale [:ahale] P3
defect 1698365 https://www.digibank.co.il/ causes high CPU and power consumption --
defect 1710472 WebRender Mac: large GPU power use when showing PDF inline --

3 Total; 3 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Android

Metabug: wr-android-perf

Full Query
Type ID Summary Assigned to Priority
defect 1498735 Too much GPU time in the sidebar animation on html5test.com on Android P3
enhancement 1507669 Fix RGBA format handling in SurfaceTextureHost::PushResourceUpdates() P3
enhancement 1533135 Scrolling on bing images search results is sluggish P3
enhancement 1562818 [meta] Add support of AHardwareBuffer on Android Sotaro Ikeda [:sotaro] P3
defect 1609217 Scrolling on https://webassembly-summit.org/speakers/ feels sluggish with WebRender on Samsung Galaxy A7 P3
enhancement 1614694 Load non-startup shaders from disk in a background thread Jamie Nicol [:jnicol] P3
defect 1617979 Reduce Renderer initialization time on Android P3
defect 1618968 First frame rendering takes longer in Fenix than Fennec due to WebRender P3
defect 1629443 Stuttering scroll with WebRender on Pocket Trending page (LG G4, Adreno 418) P3
defect 1732196 Pinch to zoom lag in fenix on gsmarena's desktop site --
defect 1732817 Scrolling on apple.com is much less smooth on fenix than in chrome with backdrop-filter --
defect 1765108 solar.lowtechmagazine.com - scroll slighlty slower using Firefox on Android. --

12 Total; 12 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Linux

Metabug: wr-linux-perf

Full Query
Type ID Summary Assigned to Priority
defect 1583881 Stuttering while scrolling on Intel GPU on Linux P3
defect 1682135 Low frame and late response for hamburger menu from Linux Firefox 85 with 125% fractional scaling (waiting on the window server) P3
defect 1676818 webrender is slower on web.basemark.com P4
defect 1530951 3.58 - 3.99% sessionrestore / sessionrestore_no_auto_restore / ts_paint / ts_paint_webext (linux64-pgo-qr) regression on push 44192297e3ae55473fbe669a681f937191a54b81 (Tue Feb 26 2019) P5
enhancement 1640710 [meta] wr-non-os-compositor P5
enhancement 788319 [meta] Use EGL instead of GLX on X11 --
defect 1659143 OpenGL compositing and webrender lower performance in Firefox on Linux on Intel HD 5500 --

7 Total; 7 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Software WebRender (SWGL)

Metabug: sw-wr-perf

Full Query
Type ID Summary Assigned to Priority
enhancement 1647951 Investigate shared SWGL contexts or some form of inter-window SWGL resource sharing P3
enhancement 1669842 Make sure our present path on Windows is as fast as possible P3
defect 1678800 Janking while doing touchpad scroll on kobol.io (sw-wr) P3
enhancement 1695273 [NSFW] Slowness remaining on scrolling nsfw reddit after bug 1694017 is resolved P3
enhancement 1695564 Add partial rects handling to RenderCompositorD3D11SWGL P3
enhancement 1699765 Implement async uploads for Android+ES2 in RenderCompositorOGLSWGL P3
defect 1705006 Scrolling on google images is janky on Mali-400(sw-wr) P3
defect 1705986 (sw-wr) A little stuttery scrolling on https://www.timecube.com/ P3
defect 1713648 Bad performance with SWGL on https://termsandconditions.game/ P3
defect 1730270 FF 92 on C2D and Intel 965, poor webrender performance when playing video, no problem with Direct3D. FF displays windows incorrectly, changes the dimensions and position/jumping bars P3
defect 1733405 No-op composites with SWGL do too much work P3
defect 1733455 sw-wr: background image scrolling is very choppy on colorpeople.com P3
enhancement 1692583 Make SWGL use a polynomial approximation for atan2() for conic gradients P4
enhancement 1696101 Add partial rects handling to RenderCompositorOGLSWGL P4
defect 1680821 Software webrender is slow with large SVGs --
defect 1681747 sw-wr performance bad when viewing pdfs on macOS --
defect 1683230 Bad border performance on amazon ad with SW-WR --
enhancement 1697500 [meta] sw-wr android --
defect 1700597 Hovering or scrolling over past editions on https://www.miragefestival.com WebRender is laggy with Webrender software enabled --
defect 1700921 Flipping pages on Flippingbook.com is jerky with Webrender Software enabled --
defect 1709737 rally.mozilla.org parallax animation is very laggy with SW-WR --
defect 1710489 Scrolling on facebook slow after some time with webrender-software --
defect 1711685 Scrolling is janky on news.ycombinator.com with sw-wr on a Mali400 device --
defect 1711694 Poor performance while scrolling w/swiggle (Pixel 3) --
defect 1711998 texture conversion during glTexSubImage with sw-wr on mali-400 --
defect 1727993 Each window currently has its own SwComposite thread - please share one thread across all windows --
defect 1738247 Videos stutter with Webrender Software compared to Firefox 78 esr --
defect 1846673 [sw-wr] Codepen demo (https://codepen.io/cameronknight/full/oNGEvmw) is quite slow --

28 Total; 28 Open (100%); 0 Resolved (0%); 0 Verified (0%);


See also:

Canvas 2D

Metabug: canvas-perf

Full Query
Type ID Summary Assigned to Priority
defect 1110580 Bad performance with some PDF [slow canvas2d text drawing] Jonathan Kew [:jfkthame] P3
defect 1656959 Significantly higher GPU use in Firefox on bilibili.com when compared to Chromium browsers P3
defect 1662203 Canvas on android causes stuttering (https://store.google.com/ca/product/pixel_4a) P3
defect 1673168 Poor drawImage() video performance compared to other browsers P3
defect 1793982 A lot of time spent reading back from 2d canvas on google maps on windows P3
defect 1803498 Roll20 playspace causes graphics card usage P3
defect 1744791 Performance on miro.com isn't great P4
defect 1560450 [meta] Some apps are slower with software-only canvas2d --
defect 1671968 Playback continues even after closing a tab --
defect 1672452 https://map.mta.info is slow on macOS --
defect 1689691 Bad performance on Vertex (nytimes.com game) --
defect 1759384 Firefox is significantly slower when rendering complex canvas effects --
defect 1790101 satellitetracker.net is very janky --
defect 1829753 Canvas2d stroke may have performance issues on sites like earth.nullschool.net --

14 Total; 14 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Tools

Metabug: wr-perf-tools

Full Query
Type ID Summary Assigned to Priority
task 1583884 Show the number of blob tiles in existence in webrender's builtin profiler HUD P3
enhancement 1641101 Add support for profiling how often the same glyph has been evicted and re-rasterized P3
task 1645021 Reduce the cost of displaying HUD profiling tools in WebRender P3
task 1728620 Add some telemetry for slow frame categories Nicolas Silva [:nical] P3
enhancement 1734692 Improve our ability to measure scroll smoothness P3
task 1741739 Report a few WebRender timings in the C++ PerfStats mechanism P3

6 Total; 6 Open (100%); 0 Resolved (0%); 0 Verified (0%);


General WebRender perf metabug

Metabug: wr-perf

During graphics triage, WebRender performance bugs are added as dependency to the wr-perf meta-bug. The next step is to replace the wr-perf dependency with one of the more specific meta-bugs above.


Full Query
Type ID Summary Assigned to Priority
defect 1487864 Improve frame scheduling in WebRender - Strange couplets of animation frames on expensive main-thread-driven animation P2
defect 1605155 Opening a video in Picture-in-Picture still causes the originating tab to compute DisplayLists at the video frame rate while the tab is the foreground P3
defect 1625013 noclip.website doesn't run well when using track pad P3
defect 1625433 Text and background elements animations are stuttering on fantasy.bnf.fr P3
defect 1692342 Masked video on https://www.apple.com/ca/iphone-se/ is wrong and renders slow P3
defect 1720263 Increased suttering in Firefox 90 when using multiple monitors with WEBRENDER_DCOMP_PRESENT disabled (=Nvidia default) P3
defect 1752620 Insane GPU/CPU usage spinner animation P3
defect 1768112 firefox takes 80% CPU time due to invisible "100 Thank-Yous" P3
defect 1789153 Reported high CPU use on reddit "Shop Avatars" widget P3
defect 1802460 Apparmor causes WebRender software fallback P3
defect 1647484 https://www.apple.com/macos/big-sur-preview/ has bad performance with WebRender --
defect 1677364 After OOM crash on a contrived testcase, the GPU process doesnt release 4.1GB memory unless force terminated from about:support --
defect 1686109 RenderCompositorNative::MaybeGrabScreenshot should check ProfilerScreenshots::IsEnabled() before calling mNativeLayerRoot->CreateSnapshotter() --
defect 1690673 We can get into a state where the compositor keeps compositing even though there's nothing to do --
defect 1693130 Stuttering while scrolling on Nvidia 144Hz monitor --
defect 1698673 Janking while doing touchpad scroll on yahoo.com --
defect 1730823 FF 92 High GPU usage randomly --
defect 1759273 White rectangle appears temporarily top and bottom of screen when scrolling. (checkerboarding?) --
defect 1781036 Scrolling a SVG became worse after Webrender was enabled in Nightly --
defect 1802344 Jank when scrolling https://replay.io/ --
defect 1809608 specific page leads to 100% cpu with webrender software --

21 Total; 21 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Other meta-bugs:

- wr-low-end-perf
- wr-perf-graveyard
- speedometer 3