CALayer with speed 30 plays choppy animations on certain iOS devices

Originator:argentumko
Number:rdar://22474571 Date Originated:29-Aug-2015
Status:Closed Resolved:
Product:iOS SDK Product Version:8.3+
Classification:UI/Usability Reproducible:Always
 
Summary:
On certain devices, iPod touch 5th gen. in particular, setting CALayer speed property to exactly 30 causes animations added to its sublayers to be played with a choppy, uneven framerate. Setting a speed of 29 or 31 on the same layer and adding the same animations results in a smooth framerate. Setting the speed on the animation itself also results in no issues. Playing another animation concurrently, in a layer with speed 1, "fixes" the issue.

Steps to Reproduce:
1. Create an new iOS project with a container view and inner view in it, using Interface Builder or in code.
2. Set container view's layer speed to 30.
3. Add a simple CABasicAnimation (or CAKeyframeAnimation) to the inner view's layer, e.g. for a "position.y" keypath, with a reasonable duration (e.g. 15 or more – given the layer speed of 30, it will result in a 0.5s animation). 4. To detect the issue easier, configure the animation to repeat indefinitely (this doesn't affect whether the issue appears or not).

Expected Results:
Animation runs smoothly.

Actual Results:
Animation runs smoothly for a fraction of a second, then becomes choppy for no apparent reason.

Version:
iOS 8.3+

Notes:
Issue doesn't happen on iPod touch 6th gen. or iPhone 5s. No other hardware was tested for this issue. As already mentioned, setting the speed on the animation itself, or avoiding speed 30, or playing another animation with a different speed at the same time, "fixes" the issue.
Attached are a sample app project that demonstrates the issue and a video of that app taken from iPod touch 5th gen.

Configuration:
iPod touch 5th gen.

Attachments:
'CoreAnimationSpeedBug.zip' and 'choppy_animation.mov' were successfully uploaded.

Comments

Apple Developer Relations

Thank you for filing this report. Much has changed since the report was filed, and we are closing it. If this is still an issue for you on current releases, please file a new bug report. If you have questions regarding the resolution of this issue, please comment in this bug report. Thank you for taking the time to submit bug reports. We appreciate your input.

By argentumko at Oct. 1, 2018, 12:24 p.m. (reply...)

Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!