Work around unbounded intermediate render target usage
Categories
(Core :: Graphics: WebRender, task, P3)
Tracking
()
People
(Reporter: nical, Unassigned)
References
(Blocks 2 open bugs)
Details
WebRender tends to have trouble with workloads that require a large amount of intermediate render target, (for example many blurred items), when the amount of pixels that have to be pre-rendered becomes very big.
Chrome seems to have a a simpler logic where it will render into the main target, then sse it needs some intermediate surface for something, render that thing and switch back to the the main render target, which is not as efficient if there isn't a lot of pixels to prerender but doesn't require unbounded amounts of memory. WebRender on the other hand, when it reaches a certain threshold, becomes very very slow.
In principle it is somewhat like an over-layerization issue.
being able to split intermediate work half-way through rendering a picture would be valuable.
| Reporter | ||
Comment 1•3 years ago
|
||
Maybe the recent work on mix blends modes gave us some of this capability.
Comment 2•3 years ago
|
||
This manifests when we have objects that overlap. e.g. imagine a stack of overlapping things. We'll sometimes draw each of them to an intermediate render target and then compose them all in one go. This means that we require O(number of things * size) with fewer draw calls vs O(size) with more draw calls.
Updated•3 years ago
|
Description
•