Closed Bug 1780321 Opened 2 years ago Closed 2 years ago

Support shared render targets that have a lifetime of more than one pass

Categories

(Core :: Graphics: WebRender, task)

task

Tracking

()

RESOLVED FIXED
104 Branch
Tracking Status
firefox104 --- fixed

People

(Reporter: gw, Assigned: gw)

References

Details

Attachments

(1 file)

No description provided.
Blocks: 1779085

In the presence of complex effects such as backdrop-filter, it's
possible that some picture cache tiles can be drawn in a different
pass to other picture cache tiles. If there are a large number of
child render tasks that are shared between tiles assigned to different
render passes, that may result in a large number of standalone render
target allocations, which can hurt performance and reduce batching
efficiency.

This patch allows shared surfaces to be used when they have a lifetime
that spans more than one pass. We track the free_after in the active
shared surface list, and only allocate tasks if they match the lifetime
of other tasks in that shared surface. Existing logic ensures that
surface is returned to the shared target pool only after the free_after
pass has occurred.

Assignee: nobody → gwatson
Status: NEW → ASSIGNED
Pushed by gwatson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/55345d3c89c4
Support shared render targets that have a lifetime of more than one pass r=gfx-reviewers,lsalzman
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 104 Branch
Regressions: 1780567
Regressions: 1780877
Blocks: 1782590
Regressions: 1789208
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: