---
title: MTLIndirectCommandBufferDescriptor
framework: metal
role: symbol
role_heading: Class
path: metal/mtlindirectcommandbufferdescriptor
---

# MTLIndirectCommandBufferDescriptor

A configuration you create to customize an indirect command buffer.

## Declaration

```swift
class MTLIndirectCommandBufferDescriptor
```

## Mentioned in

Creating an indirect command buffer

## Topics

### Declaring command types to encode

- [commandTypes](metal/mtlindirectcommandbufferdescriptor/commandtypes.md)

### Declaring command inheritance

- [inheritBuffers](metal/mtlindirectcommandbufferdescriptor/inheritbuffers.md)
- [inheritPipelineState](metal/mtlindirectcommandbufferdescriptor/inheritpipelinestate.md)

### Declaring the maximum number of argument buffers per command

- [maxVertexBufferBindCount](metal/mtlindirectcommandbufferdescriptor/maxvertexbufferbindcount.md)
- [maxFragmentBufferBindCount](metal/mtlindirectcommandbufferdescriptor/maxfragmentbufferbindcount.md)
- [maxKernelBufferBindCount](metal/mtlindirectcommandbufferdescriptor/maxkernelbufferbindcount.md)

### Instance Properties

- [inheritCullMode](metal/mtlindirectcommandbufferdescriptor/inheritcullmode.md)
- [inheritDepthBias](metal/mtlindirectcommandbufferdescriptor/inheritdepthbias.md)
- [inheritDepthClipMode](metal/mtlindirectcommandbufferdescriptor/inheritdepthclipmode.md)
- [inheritDepthStencilState](metal/mtlindirectcommandbufferdescriptor/inheritdepthstencilstate.md)
- [inheritFrontFacingWinding](metal/mtlindirectcommandbufferdescriptor/inheritfrontfacingwinding.md)
- [inheritTriangleFillMode](metal/mtlindirectcommandbufferdescriptor/inherittrianglefillmode.md)
- [maxKernelThreadgroupMemoryBindCount](metal/mtlindirectcommandbufferdescriptor/maxkernelthreadgroupmemorybindcount.md)
- [maxMeshBufferBindCount](metal/mtlindirectcommandbufferdescriptor/maxmeshbufferbindcount.md)
- [maxObjectBufferBindCount](metal/mtlindirectcommandbufferdescriptor/maxobjectbufferbindcount.md)
- [maxObjectThreadgroupMemoryBindCount](metal/mtlindirectcommandbufferdescriptor/maxobjectthreadgroupmemorybindcount.md)
- [supportColorAttachmentMapping](metal/mtlindirectcommandbufferdescriptor/supportcolorattachmentmapping.md)
- [supportDynamicAttributeStride](metal/mtlindirectcommandbufferdescriptor/supportdynamicattributestride.md)
- [supportRayTracing](metal/mtlindirectcommandbufferdescriptor/supportraytracing.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Indirect command buffers

- [Creating an indirect command buffer](metal/creating-an-indirect-command-buffer.md)
- [Specifying drawing and dispatch arguments indirectly](metal/specifying-drawing-and-dispatch-arguments-indirectly.md)
- [Encoding indirect command buffers on the CPU](metal/encoding-indirect-command-buffers-on-the-cpu.md)
- [Encoding indirect command buffers on the GPU](metal/encoding-indirect-command-buffers-on-the-gpu.md)
- [MTLIndirectCommandBuffer](metal/mtlindirectcommandbuffer.md)
- [MTLIndirectCommandType](metal/mtlindirectcommandtype.md)
- [MTLIndirectCommandBufferExecutionRange](metal/mtlindirectcommandbufferexecutionrange.md)
- [MTLIndirectCommandBufferExecutionRangeMake(_:_:)](metal/mtlindirectcommandbufferexecutionrangemake(_:_:).md)
