---
title: "commit:count:options:"
framework: metal
role: symbol
role_heading: Instance Method
path: "metal/mtl4commandqueue/commit:count:options:"
---

# commit:count:options:

Enqueues an array of command buffer instances for execution with a set of options.

## Declaration

```occ
- (void) commit:(id<MTL4CommandBuffer> const[]) commandBuffers count:(NSUInteger) count options:(MTL4CommitOptions *) options;
```

## Parameters

- `commandBuffers`: An array of doc://com.apple.metal/documentation/Metal/MTL4CommandBuffer.
- `count`: The number of doc://com.apple.metal/documentation/Metal/MTL4CommandBuffer instances in the commandBuffers array.
- `options`: An instance of doc://com.apple.metal/documentation/Metal/MTL4CommitOptions that configures the commit operation.

## Discussion

Discussion Provide an MTL4CommitOptions instance to configure the commit operation. The order in which you sort the command buffers in the array is meaningful, especially when it contains suspending/resuming render passes. A suspending/resuming render pass is a render pass you create by calling makeRenderCommandEncoder(descriptor:options:), and provide MTL4RenderEncoderOptionSuspending or MTL4RenderEncoderOptionResuming for the options parameter. If your command buffers contain suspend/resume render passes, ensure that the first command buffer only suspends, and the last one only resumes. Additionally, make sure that all intermediate command buffers are both suspending and resuming. When you commit work from multiple threads, modifying and reusing the same options instance, you are responsible for externally synchronizing access to it.
