Retain spatial tree across display lists
Categories
(Core :: Graphics: WebRender, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox95 | --- | fixed |
People
(Reporter: gw, Assigned: gw)
References
Details
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
Assignee | ||
Comment 1•3 years ago
|
||
With this change, the spatial tree is no longer rebuilt
every time a new display arrives and a scene is built.
Instead, scene building maintains a hash map of spatial
node keys <-> indices, allowing any spatial node that
has been recently seen in a display list to be retained.
Scene building then checks if the node is equivalent or
has been modified since the last display list, and sends
these delta changes as part of the scene swap to the
frame building code. The frame building code applies
the deltas to each updated spatial node.
The primary benefits of this are:
-
Spatial node indices are now stable across display lists,
allowing future interning of primitives and clips to
include the spatial node. This can be used for various
optimizations, including interning during DL building,
caching transform state, reducing size of PrimitiveInstance -
Frame building now knows exactly which spatial nodes are
new, removed, updated or unchanged. We can make this of
this to cache a lot of the (mostly) redundant calculations
that are done during both scene and frame building.
Updated•3 years ago
|
Comment 3•3 years ago
|
||
Backed out for bc failures on browser_bug1563629.js
Backout link: https://hg.mozilla.org/integration/autoland/rev/36a76418ff3d1be44711d90e43bfe18b763ab5b2
Log link: https://treeherder.mozilla.org/logviewer?job_id=354415471&repo=autoland&lineNumber=2475
Assignee | ||
Comment 4•3 years ago
|
||
Still investigating what would cause that timeout, it seems unrelated to the patch. It's possibly a general performance issue causing a timeout, will dig in to that before considering disabling that tsan test.
Comment 6•3 years ago
|
||
bugherder |
Updated•3 years ago
|
Description
•