Closed Bug 1368551 Opened 3 years ago Closed 3 years ago

Make layout/reftests/async-scrolling/split-opacity-layers-1.html pass on linux64-qr with APZ enabled

Categories

(Core :: Graphics: WebRender, defect, P3)

55 Branch
x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox55 --- fixed

People

(Reporter: kats, Assigned: kats)

References

Details

(Whiteboard: [gfx-noted])

Attachments

(2 files)

With WR+APZ enabled, the layout/reftests/async-scrolling/split-opacity-layers-1.html reftest fails [1]. It looks like one of the purple divs is 10 pixels off from where it should be.

I was able to modify the scrolling example in webrender to reproduce a similar scenario. It looks like webrender internally treats a "None" transform differently from a "Some(PropertyBinding::Value(LayoutTransform::identity()))" transform. Right now we pretty much always use the identity transform on stacking contexts but maybe we shouldn't be? See bug 1345577.

[1] https://treeherder.mozilla.org/#/jobs?repo=try&revision=68c5c545d47a35f45b6af5c79dcf2e6e59c00bf3&selectedJob=102461411
I filed servo/webrender#1304 for the issue since it seems like unexpected behaviour in WR.
Hacking it up so that identity transforms get turned into "None" fixed the test for me locally. I did a try push to see what else changes: https://treeherder.mozilla.org/#/jobs?repo=try&revision=5b8d2a2cfb0db0016aee29e08af1b913df67ed10
The patch fixes the split-opacity-layers-1.html test as expected, and doesn't appear to affect any other test. All the other failures are exactly the same as without this patch.
I realized that we have another PushStackingContext codepath which this didn't affect. I should fix that one too.
Comment on attachment 8873170 [details]
Bug 1368551 - Remove unneccessary overload of PushStackingContext.

https://reviewboard.mozilla.org/r/144640/#review148618
Attachment #8873170 - Flags: review?(howareyou322) → review+
Comment on attachment 8873171 [details]
Bug 1368551 - Don't send transforms to WR in push_stacking_context if they are identity.

https://reviewboard.mozilla.org/r/144642/#review148626
Attachment #8873171 - Flags: review?(howareyou322) → review+
Pushed by kgupta@mozilla.com:
https://hg.mozilla.org/projects/graphics/rev/85e598624e0f
Remove unneccessary overload of PushStackingContext. r=pchang
https://hg.mozilla.org/projects/graphics/rev/67f689dd202d
Don't send transforms to WR in push_stacking_context if they are identity. r=pchang
https://hg.mozilla.org/mozilla-central/rev/85e598624e0f
https://hg.mozilla.org/mozilla-central/rev/67f689dd202d
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
You need to log in before you can comment on or make changes to this bug.