NEW 124021
Layer contentsScale can differ between first paint and repaints
https://bugs.webkit.org/show_bug.cgi?id=124021
Summary Layer contentsScale can differ between first paint and repaints
Tim Horton
Reported 2013-11-07 16:16:33 PST
Steps to Reproduce: 1. Open the attached test case. 2. Cmd-A. 3. Cmd-R. 4. Goto 2. Expected: The text should not shift. Actual: The text shifts. It's pretty imperceptible, but if you do some logging, you can see that the layer has "root-relative scale factor"=1.411765 during the initial paint and "root-relative scale factor"=1.2 in subsequent paints. More logging shows that the transform that maxScaleFromTransform decomposes is: [1.20 0.00 0.00 0.00] [0.00 1.20 0.00 0.00] [-0.82 -0.35 1.20 -0.00] [-93.83 -46.95 120.00 0.85] in the bad case, and: [1.20 0.00 0.00 0.00] [0.00 1.20 0.00 0.00] [0.00 0.00 1.20 0.00] [-20.00 -20.00 120.00 1.00] subsequently. Dean thinks it's odd that m44 is non-1 in the bad case, but it's also bad that this changes between paints, because it means things shift (and could be blurry in the initial paint, if drawn too large and scaled down awkwardly).
Attachments
repro (650 bytes, text/html)
2013-11-07 16:17 PST, Tim Horton
no flags
Tim Horton
Comment 1 2013-11-07 16:17:05 PST
Tim Horton
Comment 2 2013-11-07 16:24:53 PST
In updateRootRelativeScale - unanimated transform: [1.20 0.00 0.00 0.00] [0.00 1.20 0.00 0.00] [0.00 0.00 1.20 0.00] [-20.00 -20.00 120.00 1.00] - transform from root: [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [-0.49 -0.29 1.00 -0.00] [8.00 8.00 0.00 1.00] then we multiply them, and end up with: (does this even make sense? where does the .85 come from?) [1.20 0.00 0.00 0.00] [0.00 1.20 0.00 0.00] [-0.59 -0.35 1.20 -0.00] [-71.33 -46.95 120.00 0.85] So the crazypants is coming from the transform that's passed in to updateRootRelativeScale.
Note You need to log in before you can comment on or make changes to this bug.