Introduce command buffers between prepare <-> batch pass
Categories
(Core :: Graphics: WebRender, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox100 | --- | fixed |
People
(Reporter: gw, Assigned: gw)
References
Details
Attachments
(1 file)
Assignee | ||
Comment 1•2 years ago
|
||
Previously, WR would recursively walk the entire picture
tree during each of the visibility, prepare and batching
passes. With this change, the prepare pass builds a tightly
packed command buffer of draw commands for each child surface
and/or picture cache tile. The batching pass now reads the
packed command buffers, meaning that no traversal of the
picture tree is required during batching.
This serves two purposes:
(1) It makes it possible to direct primitives within a
single picture to different render tasks. This isn't
yet used, but is a straightforward addition to how
command buffers work. This functionality will be used
to split primitives across render tasks where there
are readback boundaries (e.g. backdrop-filter and also
mix-blend-mode). The existing picture graph code ensures
that we then optimally allocate, batch and draw pictures
that contain these barrier style primitives.
(2) In the common case, where only a small portion of the
scene has changed during a frame, it's a significant
optimization to avoid another picture tree traversal.
Instead, the batching code will only end up iterating
small lists of the primitives that overlap the dirty
region for the given tile / child surface.
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d8f3596e358e Introduce command buffers between prepare <-> batch pass r=gfx-reviewers,nical
Comment 3•2 years ago
|
||
Backed out for causing wr3 failures in /css/css-transforms/perspective-split-by-zero-w.html
Backout link: https://hg.mozilla.org/integration/autoland/rev/21e73beeab6914f6d21a9464ca9cb383826f1e7d
Assignee | ||
Comment 4•2 years ago
|
||
Updated the ini file for that test to mark it as a PASS
on x86, since the images are now identical. Will do a new try run and then re-land.
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3c3520362bda Introduce command buffers between prepare <-> batch pass r=gfx-reviewers,nical
Comment 6•2 years ago
|
||
bugherder |
Description
•