Closed Bug 1346777 Opened 3 years ago Closed 3 years ago

Assertion failure: false (Both parent and child geometry present in nested 3D context!), at ContainerLayerComposite.cpp:114

Categories

(Core :: Graphics: Layers, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox52 --- unaffected
firefox-esr52 --- unaffected
firefox53 --- fixed
firefox54 --- fixed
firefox55 --- fixed

People

(Reporter: cbook, Assigned: miko)

References

(Blocks 1 open bug, )

Details

(Keywords: assertion, regression)

Attachments

(2 files)

Attached file bughunter stack
found via bughunter and reproduced on latest m-c tinderbox windows debug build.

Steps to reproduce
-> https://www.xumo.com/
---> After 15 to 30 seconds
-----> Assertion failure 

Assertion failure: false (Both parent and child geometry present in nested 3D context!), at c:/builds/moz2_slave/m-cen-w32-d-000000000000000000/build/src/gfx/layers/composite/ContainerLayerComposite.cpp:114
Miko, Matt: could you take a look at this, thanks !

according to bughunter this affects trunk to beta
Flags: needinfo?(mikokm)
Flags: needinfo?(matt.woodrow)
(In reply to Carsten Book [:Tomcat] from comment #1)
> Miko, Matt: could you take a look at this, thanks !
> 
> according to bughunter this affects trunk to beta

Thank you for the report.

This assertion was checking for an edge case that should never happen. I was able to reproduce this with OS X debug build. This site also has 3D transforms that don't seem to work properly (compared to other browsers), so there are regressions as well.
Assignee: nobody → mikokm
Status: NEW → ASSIGNED
Flags: needinfo?(mikokm)
After looking into this more, I think that the assertion shouldn't be there when layers have only 2D transforms (such as in this test case), as we are not creating intermediate surfaces in these cases.

More importantly, this assertion also uncovered a bug regarding intermediate surface transformation handling. This causes regressions in intermediate surface rendering with, for example, a combination of opacity and 3D transforms. I have added a reftest for this.

I believe that this is something we might want to uplift.
Keywords: regression
Comment on attachment 8848559 [details]
Bug 1346777 - Transform layer geometry properly when intermediate surface is used

https://reviewboard.mozilla.org/r/121466/#review123562
Attachment #8848559 - Flags: review?(matt.woodrow) → review+
Pushed by ihsiao@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b35cbce500bc
Transform layer geometry properly when intermediate surface is used r=mattwoodrow
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/b35cbce500bc
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Please request Aurora/Beta approval on this when you get a chance.
Flags: needinfo?(matt.woodrow) → needinfo?(mikokm)
Comment on attachment 8848559 [details]
Bug 1346777 - Transform layer geometry properly when intermediate surface is used

Approval Request Comment
[Feature/Bug causing the regression]: Layer bounds were in wrong coordinate space, when there was a combination of nested 2D transformations and a flattening property such as opacity.
[User impact if declined]: Some websites might have misplaced or missing elements.
[Is this code covered by automated tests?]: This change adds a reftest to verify the fix. The previous reftests that cover this code path pass.
[Has the fix been verified in Nightly?]: Yes, the bug is fixed on Nightly.
[Needs manual test from QE? If yes, steps to reproduce]: Optional. Manual testing is possible by checking that the page https://hg.mozilla.org/mozilla-central/raw-file/b35cbce500bc/layout/reftests/transform-3d/intermediate-1.html shows only green. (slight shade variation is allowed)
[List of other uplifts needed for the feature/fix]: N/A
[Is the change risky?]: Low risk.
[Why is the change risky/not risky?]: The code change is simple and the feature combination that triggered this is probably somewhat rare. This feature can also be disabled by setting a pref flag layers.geometry.<backend type>.enabled to false.
[String changes made/needed]: N/A
Flags: needinfo?(mikokm)
Attachment #8848559 - Flags: approval-mozilla-beta?
Hi :miko,
Can you also nominate the Aurora uplift request?
Flags: needinfo?(mikokm)
Comment on attachment 8848559 [details]
Bug 1346777 - Transform layer geometry properly when intermediate surface is used

Approval Request Comment

Same as in comment #11.
Flags: needinfo?(mikokm)
Attachment #8848559 - Flags: approval-mozilla-aurora?
Comment on attachment 8848559 [details]
Bug 1346777 - Transform layer geometry properly when intermediate surface is used

Fix a potential issue that some websites might have misplaced or missing elements and also include tests. Aurora54+ & Beta53+.
Attachment #8848559 - Flags: approval-mozilla-beta?
Attachment #8848559 - Flags: approval-mozilla-beta+
Attachment #8848559 - Flags: approval-mozilla-aurora?
Attachment #8848559 - Flags: approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.