Closed Bug 1039926 Opened 5 years ago Closed 5 years ago

DLBI doesn't ignore DisplayItemClips that have been promoted to Mask layers

Categories

(Core :: Layout, defect, P3)

29 Branch
x86
macOS
defect

Tracking

()

RESOLVED FIXED
mozilla34

People

(Reporter: mattwoodrow, Assigned: mattwoodrow)

References

(Depends on 1 open bug)

Details

Attachments

(2 files)

When we create a mask layer for a ThebesLayer we mark the number of rounded clips that should be ignored on each display item using mCommonClipCount.

We ignore these clips correctly when painting, but invalidation still tracks them.

Fixing this is hard, since we need to know the final common clip count and that hasn't been computed yet when we get to InvalidateForLayerChange.

I think we could leave the actual layer change invalidations here, but move the geometry change invalidation code into PopThebesLayerData.

Unfortunately this means that we have to keep the old geometry around longer, and it also means an extra iteration over all display items in the layer. I hope that isn't going to hurt us performance wise.
This mainly just splits InvalidateForLayerChange into two pieces, and calls the latter when we process display items at the end looking for removed ones.

It also splits DisplayItemData::UpdateContent into two pieces so that the data we need for invalidation is kept around.
Assignee: nobody → matt.woodrow
Attachment #8459466 - Flags: review?(roc)
https://hg.mozilla.org/mozilla-central/rev/575d0363e8e2
https://hg.mozilla.org/mozilla-central/rev/912c96edb352
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
Depends on: 1124543
Depends on: 1140362
Blocks: 1011193
We should write a test for this. I'll put that in my queue.
Flags: needinfo?(mstange)
Flags: in-testsuite?
Landed two basic tests: https://hg.mozilla.org/integration/mozilla-inbound/rev/6b528bd3294c
Flags: needinfo?(mstange)
Flags: in-testsuite?
Flags: in-testsuite+
sorry had to back this out for test failures like https://treeherder.mozilla.org/logviewer.html#?job_id=7736255&repo=mozilla-inbound
Status: RESOLVED → REOPENED
Flags: needinfo?(matt.woodrow)
Resolution: FIXED → ---
Flags: needinfo?(matt.woodrow) → needinfo?(mstange)
Sorry about that. The bug is still fixed. I'll push a fixed test the next time I have something substantial to push.
Status: REOPENED → RESOLVED
Closed: 5 years ago5 years ago
Flags: needinfo?(mstange)
Resolution: --- → FIXED
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.