Running GPUImage in background

1 reply [Last post]
michel.lonngren
User offline. Last seen 7 years 44 weeks ago. Offline
Joined: 08/01/2012
Posts:

Hi,

I have recently migrated some of my image processing algorithms using GPUImage. One thing that is crashing on me is when the application is entering background:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

[self doImageProcessingUsingGPUImage];
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
});

I am getting some access violation errors. I am not sure what they really are but the best debug output I can get is:

libGPUSupportMercury.dylib`gpus_ReturnNotPermittedKillClient:

I am pretty sure the is inside of GPUImage as if I switch to the old implementation background processing is working fine.

Does anybody have any idea why this isn't working?

Michel

Brad Larson
Brad Larson's picture
User offline. Last seen 4 years 22 weeks ago. Offline
Joined: 05/14/2008
Posts:

You can't run anything on the GPU when your application enters the background. Doing so will result in it being instantly terminated. This means that you can't use GPUImage for any processing to be performed when your application is moved to the background.

If you need to do this, you will have to switch to a CPU-bound solution, like using vImage or Core Image's CPU side routines. Unfortunately, they lack many of the capabilities I have here.

Syndicate content