Remove the late blob rasterization code path
Categories
(Core :: Graphics: WebRender, task, P3)
Tracking
()
People
(Reporter: nical, Assigned: nical)
References
(Blocks 2 open bugs, Regressed 1 open bug)
Details
Attachments
(4 files)
We want to only rasterize blobs during scene building. This would simplify a whole lot of error-prone code and ensure we never do blob rasterization on the render backend.
To do this we have to ensure that blob blob visible areas are not too big.
Comment 1•4 years ago
|
||
SVG uses:
const nsRect& untransformedPaintRect =
aWrappingItem->GetUntransformedPaintRect();
Fallback uses:
auto visibleRect = LayerIntRect::FromUnknownRect(
ScaleToOutsidePixelsOffset(
aItem->GetBuildingRect(), scale.width,
scale.height, appUnitsPerDevPixel, residualOffset))
.Intersect(dtRect);
Both of those should have reasonable bounds. Any situation where this isn't true can be considered a bug so I think we can proceed here.
Assignee | ||
Comment 2•4 years ago
|
||
If this change lands without making waves, a lot of complicated blob infrastructure will be removed as a followup.
Assignee | ||
Comment 3•4 years ago
|
||
Depends on D49185
Assignee | ||
Comment 4•4 years ago
|
||
Updated•3 years ago
|
Assignee | ||
Comment 5•3 years ago
|
||
When blobs were lazily rasterized it was relatively cheap to create very large blob layers. Now that we move to pre-rasetrizing all blob tiles during scene building, large blob layers cause excessive memory allocation and CPU usage.
Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/99c2a028927d Don't limit the number of rasterized blob tiles per transaction. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/218965aab2d5 Avoid layerizing very large blobs due to animated transforms. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/f32d7f9eb04f Adjust the tests to account for transform layerization changes with webrender. r=jrmuizel
Comment 7•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/99c2a028927d
https://hg.mozilla.org/mozilla-central/rev/218965aab2d5
https://hg.mozilla.org/mozilla-central/rev/f32d7f9eb04f
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 8•3 years ago
|
||
I haven't landed the late blob rasterization removal yet. Before this can happen we need to cache the rasterized content (we currently throw it away after upload), otherwise we get missing tiles after device resets and memory pressure events which we currently rasterize using the late blob rasterization path.
Updated•3 years ago
|
Comment 9•3 years ago
|
||
(In reply to Nicolas Silva [:nical] from comment #8)
I haven't landed the late blob rasterization removal yet. Before this can happen we need to cache the rasterized content (we currently throw it away after upload), otherwise we get missing tiles after device resets and memory pressure events which we currently rasterize using the late blob rasterization path.
Can we continue to throw it away and rely on needing a new scene when a device reset/memory pressure happens?
Comment 11•3 years ago
|
||
Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/aff8eef07d07 Remove the late blob rasterization code. r=jrmuizel
Comment 12•3 years ago
|
||
bugherder |
Updated•3 years ago
|
Description
•