Serious GPU Performance Issues on iPhone 6 Plus

Originator:ayn
Number:rdar://24613987 Date Originated:2/11/16
Status:Open Resolved:
Product:iOS SDK Product Version:9.2.1
Classification: Reproducible:Yes
 
We believe the iPhone 6 Plus, on iOS 9.2 and later, has a bug in its OpenGL implementation, this causes significant memory growth and the OS kills the app eventually. We're seeing this issue in both GPUImage and Core Image implementations of our app.

The basic problem manifests itself as so:
1. Editing a photo on the iPhone 6+ is extremely sluggish after chaining enough CoreImage filters together, and eventually crashes with memory issues
2. iPhone 6, 6s and 6s+ don’t have any of these issues and editing photos is extremely fast with CoreImage Filters
3. There comes a point when we got warning messages about Framebuffers, and all of a sudden, the iPhone 6+ would work brilliantly just like the other devices. We’re unable to trace it as the code gets down to the CIContext and EAGLContext layer.

Steps to Reproduce:
run the attached sample app, on any phones other than iPhone 6+, such as iPhone 6, iPhone 6s, the "before" and "after" NSLog timestamps are very close, therefore the CIFilter chain filters the image quickly.

do the same on a iPhone 6+, it takes half a second to filter.

Expected Results:
it should not be this slow.

Actual Results:
each filter chain pass takes 0.5 second.

Version:
iOS 9.2.1 (13D15)

Notes:
This example app doesn't really show the problem very well, it shows performance issues but it doesn't crash. The commented out code shows the original intent of the app, but using the full CIFilter chain is slow even on the 6s.

Configuration:
iPhone 6+ Verizon 16GB

Comments


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!