Edit

Share via


CIContextOptions.UseSoftwareRenderer Property

Definition

Setting this to true will force the CPU software rendered to be used and prevent the job to be offloaded to the GPU

public bool UseSoftwareRenderer { get; set; }
member this.UseSoftwareRenderer : bool with get, set

Property Value

Remarks

GPU contexts can be offloaded to the graphics processing unit and can run very fast and have the added advantage that they do not tax the main process with their task. GPU contexts have image sizes limits imposed by the underlying hardware, on some devices this can be 2048x2048 and on devices like the iPad 2 this is 4096x4096.

CPU contexts have a few benefits, they can perform their tasks on the background, support larger input and output images (at the time of this writing, 8192x8192) and have improved fidelity due to the IEEE compliant floating point support.

You can check the actual limits for input and output image sizes by checking the InputImageMaximumSize and the OutputImageMaximumSize properties.

GPU contexts have one extra downside when interacting with background operations. Consider the case where your application applies a number of filters and saves the result. Typically, you will queue this work to take place even if the user suspends the application by pressing the home button. The user might take a picture, and switch to another app. If you chose to use a GPU context to process your image but you have been sent to the background, your application will be terminated when it tries to access the GPU, as the GPU is now in use by another application.

Applies to