Open Bug 1888096 (blob-layerization) Opened 1 year ago Updated 1 year ago

[meta] [project] Improve the blob layerization algorithm

Categories

(Core :: Graphics: WebRender, enhancement)

enhancement

Tracking

()

People

(Reporter: nical, Unassigned)

References

(Depends on 2 open bugs, Blocks 3 open bugs)

Details

(Keywords: meta)

The current blob layerization algorithm has some very bad performance cliffs. It has to strike a balance between favoring webrender display items over using software rasterization, and avoiding to allocate too many layers.

We get into trouble when the algorithm ends up allocating many layers because:

  • it can require an unbounded amount of memory to be allocated (For example bug 1743190)
  • it causes heavy jank during texture upload

A better layerization algorithm would:

  • Take item overlap into account to decide whether to add to an existing layer or create a new one. It could use something similar to webrender's batching algorithm to achieve that.
  • Take into consideration whether using webrender display items would cause extra overlapping layers and weight that against the cost of rasterizing the display item via the software fallback (its area).
  • Enforce an upper bound on the total number of layers
Summary: [meta][project] Improve the blob layerization algorithm → [meta] [project] Improve the blob layerization algorithm
Depends on: 1739295
Severity: -- → S3
Depends on: 1906769
You need to log in before you can comment on or make changes to this bug.