Open Bug 1536360 Opened 4 years ago Updated 2 months ago

[meta] Picture caching improvements


(Core :: Graphics: WebRender, enhancement, P2)





(Reporter: gw, Unassigned)


(Depends on 1 open bug, Blocks 1 open bug)


(Keywords: meta, Whiteboard: [wr-q41])

We now have external scroll offset in the scroll node API for WR. We can use this as a base to make a number of picture caching improvements. Some of these are speculative and require prototyping and investigation. It's likely that some combination of the items below can provide significant improvements to the performance and robustness of picture caching:

  • Make use of external scroll offsets to avoid correlation of display lists.
  • Use external scroll offsets to avoid needing to calculate tile-relative world space positions for primitive and clip dependencies.
  • Store cache dependencies per-picture, allowing caching of multiple slices of the scene.
  • Estimate pixel overdraw counts during batching to determine which tiles / slices are worth caching.
  • Store primitive origins in primitive / clip templates, to reduce CPU copying overhead in dependency generation.
  • Combine slices with a single compositing shader, to reduce framebuffer bandwidth.
  • Consider using framebuffer fetch and/or pixel local storage on supported mobile devices to reduce memory bandwidth.
Assignee: nobody → gwatson
Depends on: wr-android-mvp
Priority: -- → P2
Whiteboard: [wr-amvp][wr-q2]
No longer blocks: wr-android-mvp
Depends on: 1558106
Depends on: 1559979
Depends on: 1561812, 1562513
Whiteboard: [wr-amvp][wr-q2] → [wr-amvp][wr-q3][wr-july]

We're ok turning on WR on Nightly without this, so moving this to the MVP metabug.

Blocks: wr-android-mvp
No longer blocks: wr-android-nightly
Depends on: 1572646
Whiteboard: [wr-amvp][wr-q3][wr-july] → [wr-amvp][wr-q3][wr-aug]
Depends on: 1574399
Depends on: 1574838
Depends on: 1575075
Blocks: 1575159
Depends on: 1575767
Depends on: 1578641
Depends on: 1578986
Depends on: 1580063
No longer depends on: 1575075
Blocks: 1548824
Whiteboard: [wr-amvp][wr-q3][wr-aug] → [wr-q41]
Depends on: 1585240
Depends on: 1587676
No longer blocks: wr-android-mvp
Depends on: 1589512
Depends on: 1591524
Depends on: 1591526
Depends on: 1591527
Depends on: 1591529
Depends on: 1591534
Depends on: 1591540
Depends on: 1591580
Depends on: 1591627
Depends on: 1591754
Depends on: 1591758
Depends on: 1592016
Depends on: 1592026
Depends on: 1592031
Depends on: 1592036
Depends on: 1592038
Depends on: 1592044
Depends on: 1592388
No longer blocks: 1575159
Depends on: 1593901
No longer depends on: 1592036
Assignee: gwatson → nobody
Summary: Picture caching improvements → [meta] Picture caching improvements
Depends on: 1594644
Depends on: 1595165
Depends on: 1595680
Depends on: 1598725
No longer depends on: 1598725
Depends on: 1599606
Depends on: 1599656, 1599965
No longer depends on: 1592031
Blocks: 1527964
No longer depends on: 1595680
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.