<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 14.0.0 -",
    "macOS: 11.0.0 -",
    "tvOS: 13.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Metal",
  "identifier" : "/documentation/Metal/MTLIndirectCommandBufferDescriptor/maxKernelBufferBindCount",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Metal"
    ],
    "preciseIdentifier" : "c:objc(cs)MTLIndirectCommandBufferDescriptor(py)maxKernelBufferBindCount"
  },
  "title" : "maxKernelBufferBindCount"
}
-->

# maxKernelBufferBindCount

The maximum number of buffers that you can set per command for the compute kernel.

```
var maxKernelBufferBindCount: Int { get set }
```

## Discussion

Metal ignores this property if [`inheritBuffers`](/documentation/Metal/MTLIndirectCommandBufferDescriptor/inheritBuffers) is <doc://com.apple.documentation/documentation/Swift/true> or if you configured [`commandTypes`](/documentation/Metal/MTLIndirectCommandBufferDescriptor/commandTypes) for rendering commands. Metal needs to reserve enough memory in each command to store this many arguments. Use the smallest value that works for all commands you plan to encode into the indirect command buffer.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)