RESOLVED FIXED Bug 55022
REGRESSION: Accelerated transitions are jumpy
https://bugs.webkit.org/show_bug.cgi?id=55022
Summary REGRESSION: Accelerated transitions are jumpy
Simon Fraser (smfr)
Reported 2011-02-22 21:50:25 PST
Go to http://www.eleqtriq.com/2010/05/css-3d-matrix-transformations/, and scroll down to the "Example: Coverflow in CSS" section, and click Open Example. In the example, alternately hover over two adjacent cards. Note how they jump backwards and forwards, rather than animating smoothly. This is a regression from Safari 5.
Attachments
Patch (24.59 KB, patch)
2011-02-23 23:25 PST, Simon Fraser (smfr)
no flags
Patch botched by Windows (821 bytes, patch)
2011-03-01 11:28 PST, Chris Marrin
no flags
Windows Patch (1.53 KB, patch)
2011-03-01 11:37 PST, Chris Marrin
no flags
Patch (5.49 KB, patch)
2011-03-02 16:28 PST, Chris Marrin
no flags
Patch changing TimingFunction per Adam's suggestion (1.33 KB, patch)
2011-03-03 14:07 PST, Chris Marrin
simon.fraser: review+
Simon Fraser (smfr)
Comment 1 2011-02-22 21:51:10 PST
Simon Fraser (smfr)
Comment 2 2011-02-23 22:46:32 PST
We're getting the timing function wrong.
Simon Fraser (smfr)
Comment 3 2011-02-23 23:25:06 PST
Eric Seidel (no email)
Comment 4 2011-02-24 02:27:49 PST
Comment on attachment 83611 [details] Patch rs=me.
Simon Fraser (smfr)
Comment 5 2011-02-24 08:13:49 PST
mitz
Comment 6 2011-02-24 08:18:46 PST
Comment on attachment 83611 [details] Patch Consider getting rid of the text in the test in the success case and landing the results in a cross-platform location.
Simon Fraser (smfr)
Comment 7 2011-02-24 09:28:47 PST
I plan to do a pass over the transition/animation tests and make them dump as text. However, the pixel results aren't cross platform; the CALayer can paint non pixel-aligned.
Dean Jackson
Comment 8 2011-02-24 10:12:09 PST
sorry! my mistake!
Dean Jackson
Comment 9 2011-02-24 10:35:45 PST
I take it back. I'm not sorry. This was Chris :)
Chris Marrin
Comment 10 2011-02-28 15:07:28 PST
It's still wrong on the Win version. I'll add a patch for that presently.
Chris Marrin
Comment 11 2011-03-01 11:28:55 PST
Created attachment 84257 [details] Patch botched by Windows
Chris Marrin
Comment 12 2011-03-01 11:37:51 PST
Created attachment 84258 [details] Windows Patch
Simon Fraser (smfr)
Comment 13 2011-03-01 11:41:50 PST
Comment on attachment 84258 [details] Windows Patch I think we should do the null check higher up and always pass in a TimingFunction here, because now these magic numbers are in 3 places.
Chris Marrin
Comment 14 2011-03-02 16:28:14 PST
Simon Fraser (smfr)
Comment 15 2011-03-02 16:51:47 PST
Comment on attachment 84482 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=84482&action=review > Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp:128 > + ASSERT(timingFunction); > + The Mac version has no blank line after the assert.
Chris Marrin
Comment 16 2011-03-03 11:33:33 PST
Adam Roben (:aroben)
Comment 17 2011-03-03 11:51:58 PST
Comment on attachment 84482 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=84482&action=review > Source/WebCore/platform/animation/TimingFunction.h:109 > + static const CubicBezierTimingFunction* defaultTimingFunction() > + { > + DEFINE_STATIC_LOCAL(const CubicBezierTimingFunction, dtf, ()); > + return &dtf; > + } This is wacky, and could lead to assertion failures due to adoptRef never being called. I'd suggest writing it like this: static const CubicBezierTimingFunction* function = create().leakRef(); return function;
Chris Marrin
Comment 18 2011-03-03 14:07:52 PST
Created attachment 84623 [details] Patch changing TimingFunction per Adam's suggestion
Chris Marrin
Comment 19 2011-03-03 15:16:01 PST
Note You need to log in before you can comment on or make changes to this bug.