Support multi-resolution tiles in WR picture caching.
Categories
(Core :: Graphics: WebRender, enhancement, P3)
Tracking
()
People
(Reporter: gw, Assigned: gw)
References
(Blocks 1 open bug)
Details
Attachments
(1 obsolete file)
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
Instead of a constant tile size for picture cache tiles, this patch
allows tiles to exist at different resolutions, depending on how
often the content in the tiles are changing.
As a general principle, the smaller the tiles the better for GPU
rasterization time (fewer pixels to update), but the worse for
CPU time (dependency and batch generation) and CPU driver time
(draw calls and render target bindings).
This patch implements a quad-tree per large (1k) tile. WR uses a
simple set of rules to determine when it makes sense to split a
large tile (if it's being invalidated a lot) or merge four children
into one larger tile (if many of the child tiles are being updated,
negating most of the win from splitting).
This is also a step towards allowing picture caching for the UI
layers (where there are large areas of solid color). With this
patch, we can subdivide those large areas into smaller tiles, which
then takes advantage of the existing optimization to detect solid
color tiles and draw them with a fast path, avoiding a backing
texture and rasterizing the tile.
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 2•5 years ago
|
||
This was superseded by https://phabricator.services.mozilla.com/D45287.
Description
•