3D decomposition of 2D matrix is inverted
Reported by
manishsm...@gmail.com,
Sep 16 2016
|
||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:50.0) Gecko/20100101 Firefox/50.0 Example URL: https://bug1303037.bmoattachments.org/attachment.cgi?id=8791612 Steps to reproduce the problem: To reproduce, just create a transition from a 3d transform to the 2d matrix `matrix(1, 1, 1, 0, 0, 0)`. In the linked testcase, you can get this to happen by hovering over the yellow area. What is the expected behavior? The transition should smoothly go from the initial to the final state. The final state is marked by a transparent blue rhombus in the testcase. What went wrong? Instead, it smoothly transitions to a different state (which is basically the final state but flipped across an axis), and after the transition is over, jumps to the "real" final state. Does it occur on multiple sites: Yes Is it a problem with a plugin? No Did this work before? N/A Does this work in other browsers? No Firefox 50 Chrome version: <Copy from: 'about:version'> Channel: stable OS Version: OS X 10.11 Flash Version: Shockwave Flash 22.0 r0 Gecko bug at https://bugzilla.mozilla.org/show_bug.cgi?id=1303037 Not sure if this is a spec issue or an implementation one. Looks like something is wrong with the 3d matrix decomposition algorithm.
,
Sep 16 2016
,
Sep 19 2016
Able to repro on Linux Chrome 53.
,
Sep 19 2016
,
Sep 19 2016
Able to reproduce the issue on the latest canary(55.0.2865.0) on Windows 10, Mac OS 10.11.6 and Linux Ubuntu 14.04. This is non regression issue seen from older chrome version: 38.0.2063.0. Chrome version: 30.0.1549.0 doesn't show any animation with the above Test case. Hence confirming this as Non-regression issue and removing the Needs-Bisect label.
,
Sep 19 2016
Looks like this is only for composited transform animations. https://jsfiddle.net/ftv4vL1k/
,
Sep 19 2016
,
Sep 19 2016
Potentially related: issue 476404 ?
,
Jun 13 2017
,
Feb 2 2018
,
Dec 17
Assigning to kevers@ as this may be fixed by his recent work to fix up a bunch of matrix behavior across blink + cc. Or it may be another new bug to play with! ;) kevers - feel free to drop if you're overloaded and won't look at this. Just thought it was in your ballpark.
,
Dec 17
This appears to be a bug in cc as demonstrated by the fiddle in comment 6. It has not been addressed by recent fixes to transform interpolation. More reason to consolidate the cc and blink implementations.
,
Dec 17
#12 SGTM, this was done with blink::TimingFunction to remove implementation discrepancies between blink and cc animations.
,
Dec 17
The transform does not need to be between 2D and 3D. A transformation from matrix(1, 0, 0, 1, 0, 0) to matrix(1, 1, 1, 0, 0, 0) is sufficient to reproduce. The transform matrix(1, 1, 1, 0, 0, 0) has some interesting characteristics. It has a negative determinant indicating a scale inversion despite having no negative values in the matrix. |
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by manishsm...@gmail.com
, Sep 16 20161.0 KB
1.0 KB View Download