SceneKit's SCNRenderer leaks AGXA9FamilyCommandBuffer objects

Originator:lachlan.hurst
Number:rdar://23685449 Date Originated:30-Nov-2015
Status:Open Resolved:
Product:iOS SDK Product Version:iOS 9.1 (13B143)
Classification:Memory leak Reproducible:Always
 
Summary:
Using SceneKit's SCNRenderer class to render to an offscreen texture results in continual memory increase until the application is terminated due to insufficient memory. Profiling in Instruments using the 'Allocations' or 'Leaks' tool shows a number of AGXA9FamilyCommandBuffer objects are being leaked. This occurs on an iPhone 6s+.

Commenting out the `renderer.renderAtTime(0, ...` call of the SCNRenderer prevents this issue from occurring, but obviously doesn't render to the offscreen texture.

Steps to Reproduce:
1. Checkout sample code from https://github.com/lachlanhurst/SceneKitOffscreenRendering 
2. Profile in Instruments using 'Allocations' or 'Leaks' 
3. Wait 10-15 seconds
4. Observe increasing number of AGXA9FamilyCommandBuffer objects



Expected Results:
Memory use should not continue to grow, number of persistent AGXA9FamilyCommandBuffer objects should not continue to grow.

Actual Results:
Memory use increases till application is terminated.

Version:
iOS 9.1 (13B143)

Notes:
Is there a workaround? I tried a stack of different things, didn't seem to make a difference.

Thanks

Configuration:
iPhone 6S plus

Attachments:

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!