Closed Bug 1429930 Opened 2 years ago Closed 2 months ago

Add scrolling support to blob image invalidation

Categories

(Core :: Graphics: WebRender, enhancement, P2)

enhancement

Tracking

()

RESOLVED DUPLICATE of bug 1570081

People

(Reporter: jrmuizel, Assigned: jrmuizel)

References

(Blocks 2 open bugs)

Details

We need to adjust the geometries and the clips.
Assignee: nobody → jmuizelaar
Priority: -- → P1
Depends on: 1458968
Depends on: 1464912
No longer depends on: 1464912
This should be working now. I'll confirm.
Flags: needinfo?(jmuizelaar)
I'm pretty sure this was mostly fixed by bug 1458968. But we can probably still optimize scrolling some more.
Blocks: 1470219
Flags: needinfo?(jmuizelaar)
To be clear, the outstanding work on this issue is to resolve this comment: https://searchfox.org/mozilla-central/source/gfx/layers/wr/WebRenderCommandBuilder.cpp#55-58

> //XXX: problems:
> // - How do we deal with scrolling while having only a single invalidation rect?
> // We can have a valid rect and an invalid rect. As we scroll the valid rect will move
> // and the invalid rect will be the new area

Basically if an svg spans the entire screen, content being added on one side and removed on the other creates a naive invalidation rect spanning the whole screen, even though it's really two small ones on each end.
Assignee: jmuizelaar → nobody
We can't release this to the field, but we can let this ride to beta.
Priority: P1 → P2
Currently we subtract an offset from items during draw so that they end up in the right spot in the blob image. To fix this we need to move the offsetting of items from the content side to the rasterizer side. This means that our recorded items won't change their recordings as scrolling happens. This could be done by changing the blob size to a blob rect. i.e. include the offset to the origin.

WebRender also needs to make sure that it can preserve the old contents across blob image resizes and that they are shifted appropriately.
Depends on: blob-recoord
Priority: P2 → P3
Priority: P3 → P2
Duplicate of this bug: 1391838
Assignee: nobody → jmuizelaar
Things seem to work well enough. I think we can ship without this.
Priority: P2 → P4
Blocks: wr-68
No longer blocks: stage-wr-trains
Priority: P4 → P2
Blocks: wr-69
No longer blocks: wr-68
Blocks: wr-70
No longer blocks: wr-69
Blocks: wr-71
No longer blocks: wr-70

This was resolved by bug 1570081

Status: NEW → RESOLVED
Closed: 2 months ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1570081
You need to log in before you can comment on or make changes to this bug.