Closed Bug 1757876 Opened 2 years ago Closed 2 years ago

Introduce command buffers between prepare <-> batch pass

Categories

(Core :: Graphics: WebRender, task)

task

Tracking

()

RESOLVED FIXED
100 Branch
Tracking Status
firefox100 --- fixed

People

(Reporter: gw, Assigned: gw)

References

Details

Attachments

(1 file)

No description provided.
Assignee: nobody → gwatson
Blocks: 1749625

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

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

Push with failure

Failure log

Flags: needinfo?(gwatson)

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.

Flags: needinfo?(gwatson)
Pushed by gwatson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3c3520362bda
Introduce command buffers between prepare <-> batch pass r=gfx-reviewers,nical
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 100 Branch
Regressions: 1759820
Regressions: 1761299
Regressions: 1772972
Regressions: 1822189
No longer regressions: 1822189
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: