Closed Bug 1580063 Opened 2 years ago Closed 2 years ago

Track dirty rects in WR picture cache tiles, and use them to reduce GPU work.

Categories

(Core :: Graphics: WebRender, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla71
Tracking Status
firefox71 --- fixed

People

(Reporter: gw, Assigned: gw)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

No description provided.
Assignee: nobody → gwatson

This patch adds a simple quadtree structure to each picture cache
tile. This tree is used to track dirty regions of each tile. By
using a tree that can split / merge nodes, the CPU overhead of
tracking dirty areas is minimized, by only splitting nodes where
content is regularly changing.

For now, this patch makes use of the dirty rects to set a single
scissor rect when rendering picture cache tiles. This results in
a significant performance improvement (due to fewer pixels being
drawn) on many pages. In future, the dirty rects will also be
exposed at the API level, allowing clients to leverage partial
present APIs for power saving purposes.

Blocks: 1536360
Pushed by gwatson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a1da279eb08b
Track dirty rects in WR picture cache tiles, and use them to reduce GPU work. r=nical
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla71
Regressions: 1580698
Regressions: 1580827
Regressions: 1580358
Regressions: 1580696
Regressions: 1581677
Regressions: 1581879
Duplicate of this bug: 1562513
Regressions: 1586040
Regressions: 1633628
You need to log in before you can comment on or make changes to this bug.