In the latest versions of iOS (at least since 13.1.3), background video rendering has been broken for our app. Sometimes the video is rendered with black frames, other times it crashes.
It seems to be related to the following error we’re now seeing in the console:
Execution of the command buffer was aborted due to an error during execution. Insufficient Permission (to submit GPU work from background) (IOAF code 6)
GLDRendererMetal command buffer completion error: Error Domain=MTLCommandBufferErrorDomain Code=7 "Insufficient Permi
Our current working theory is that some underlying framework has changed to use Metal under the hood, which does not have permission to run in the background (because it uses the GPU).
Any ideas what we can do as a workaround, and in general what causes this issue?