Bug 1489337 - Don't set preserve-3d to true when creating WebRender commands for nsDisplayPerspective since it's not needed. r?jrmuizel
46 bytes, text/x-phabricator-request
|Details | Review|
In the snap-perspective-1.html reftest, Gecko passes the stacking context style as preserve-3d, since there is a perspective matrix. The WR code shouldn't need this, since it knows to propagate a perspective matrix down to child stacking contexts. However, the presence of preserve-3d here confuses WR into creating a 3d rendering context, which is the incorrect behavior (and also a performance overhead, since it draws 3d rendering contexts to offscreen surfaces).
I *think* the correct behavior here is for the Gecko code to only pass preserve-3d as a stacking context flag when it is explicitly specified in the CSS (that's the expectation of WR, anyway).
Comment on attachment 9007088 [details] Bug 1489337 - Don't set preserve-3d to true when creating WebRender commands for nsDisplayPerspective since it's not needed. r?jrmuizel Jeff Muizelaar [:jrmuizel] has approved the revision.
Attachment #9007088 - Flags: review+
Hey Matt -- does P2 feel right? (I noticed Glenn filed this as a blocker, but I don't think that was intentional.) Is it worth investigating the test failures and getting this in before the patch rots?
Priority: -- → P2
Yeah it does. I'm just waiting for the current set of WebRender transform (and backface-visibility) changes to land, and then I'll rebase on top of that and investigate what failures remain.
Yup, I initially flagged it as a blocker as I (incorrectly) thought it was causing some issues with the 3d transforms patches. Feel free to ping me if you do get failures after rebasing.
I had to mark a couple of web-platform-tests as failing since they had small fuzzy differences. Setting a dependency on the wpt fuzzy support so that we can change these to fuzzy at some point.
Depends on: 1478472
Pushed by email@example.com: https://hg.mozilla.org/integration/autoland/rev/368cda88b85f Don't set preserve-3d to true when creating WebRender commands for nsDisplayPerspective since it's not needed. r=jrmuizel
Backed out for reftest failures on transform-3d/1035611-1.html Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=success,testfailed&classifiedState=unclassified&fromchange=368cda88b85f0259a0a43da733f027effe8131d0&tochange=17bd2cc6216a2305175425da0c3421f01fa4ae9d&searchStr=windows,10,x64,quantumrender,debug,reftests,with,e10s,test-windows10-64-qr%2Fdebug-reftest-e10s-1,r-e10s(r1)&selectedJob=199231132 Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=199231132&repo=autoland&lineNumber=45034 Backout link: https://hg.mozilla.org/integration/autoland/rev/17bd2cc6216a2305175425da0c3421f01fa4ae9d
See Also: → https://github.com/servo/webrender/pull/3074
Pushed by firstname.lastname@example.org: https://hg.mozilla.org/integration/autoland/rev/76d218ea875e Don't set preserve-3d to true when creating WebRender commands for nsDisplayPerspective since it's not needed. r=jrmuizel
You need to log in before you can comment on or make changes to this bug.