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

# MTLInstanceAccelerationStructureDescriptor

A description of an acceleration structure that derives from instances of primitive acceleration structures.

```
class MTLInstanceAccelerationStructureDescriptor
```

## Overview

Metal provides acceleration structures with a two-level hierarchy. The bottom layer consists of primitive acceleration structures, which instance acceleration structures in the top level reference.

## Topics

### Creating a instance geometry descriptor

[`descriptor`](/documentation/Metal/MTLInstanceAccelerationStructureDescriptor/descriptor)

Creates an instance descriptor.

### Specifying the instance structures

[`instanceDescriptorType`](/documentation/Metal/MTLInstanceAccelerationStructureDescriptor/instanceDescriptorType)

The format of the instance data in the descriptor buffer.

[`instancedAccelerationStructures`](/documentation/Metal/MTLInstanceAccelerationStructureDescriptor/instancedAccelerationStructures)

The bottom-level acceleration structures that instances use in the instance acceleration structure .

[`MTLAccelerationStructureInstanceDescriptorType`](/documentation/Metal/MTLAccelerationStructureInstanceDescriptorType)

Options for specifying different kinds of instance types.

### Specifying the list of instances

[`instanceCount`](/documentation/Metal/MTLInstanceAccelerationStructureDescriptor/instanceCount)

The number of instances in the instance descriptor buffer.

[`instanceDescriptorBuffer`](/documentation/Metal/MTLInstanceAccelerationStructureDescriptor/instanceDescriptorBuffer)

A buffer that contains descriptions of each instance in the acceleration structure.

[`instanceDescriptorBufferOffset`](/documentation/Metal/MTLInstanceAccelerationStructureDescriptor/instanceDescriptorBufferOffset)

The offset, in bytes, to the descripton of the first instance.

[`instanceDescriptorStride`](/documentation/Metal/MTLInstanceAccelerationStructureDescriptor/instanceDescriptorStride)

The stride, in bytes, between instance descriptions.

### Specifying motion data

[`motionTransformCount`](/documentation/Metal/MTLInstanceAccelerationStructureDescriptor/motionTransformCount)

The number of motion transforms in the motion transform buffer.

[`motionTransformBuffer`](/documentation/Metal/MTLInstanceAccelerationStructureDescriptor/motionTransformBuffer)

A buffer that contains descriptions of each motion transform in the acceleration structure.

[`motionTransformBufferOffset`](/documentation/Metal/MTLInstanceAccelerationStructureDescriptor/motionTransformBufferOffset)

The offset, in bytes, to the descripton of the first motion transform.



---

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)