---
title: "init(forOfflineGPUAtIndex:)"
framework: coreimage
role: symbol
role_heading: Initializer
path: "coreimage/cicontext/init(forofflinegpuatindex:)"
---

# init(forOfflineGPUAtIndex:)

Creates an OpenGL-based Core Image context using a GPU that is not currently driving a display.

## Declaration

```swift
init?(forOfflineGPUAtIndex index: UInt32)
```

## Parameters

- `index`: The index of the offline GPU with which to create the context; a number between zero and the value returned by the doc://com.apple.coreimage/documentation/CoreImage/CIContext/offlineGPUCount() method.

## Return Value

Return Value A Core Image context.

## Discussion

Discussion GPU devices that are not currently being used to drive a display can be used for Core Image rendering. Use the offlineGPUCount() method to determine whether any such GPUs are available. To create a Metal-based Core Image context using an offline GPU, use the MTLCopyAllDevices() function to list Metal devices, then choose a device without a display to pass to the init(mtlDevice:) method.

## See Also

### Deprecated

- [init(cglContext:pixelFormat:colorSpace:options:)](coreimage/cicontext/init(cglcontext:pixelformat:colorspace:options:)-6rp6d.md)
- [init(eaglContext:)](coreimage/cicontext/init(eaglcontext:)-8ajef.md)
- [init(eaglContext:options:)](coreimage/cicontext/init(eaglcontext:options:)-6uyqj.md)
- [init(forOfflineGPUAtIndex:colorSpace:options:sharedContext:)](coreimage/cicontext/init(forofflinegpuatindex:colorspace:options:sharedcontext:).md)
- [createCGLayer(with:info:)](coreimage/cicontext/createcglayer(with:info:).md)
- [draw(_:at:from:)](coreimage/cicontext/draw(_:at:from:).md)
