---
title: MTLInstanceAccelerationStructureDescriptor
framework: metal
role: symbol
role_heading: Class
path: metal/mtlinstanceaccelerationstructuredescriptor
---

# MTLInstanceAccelerationStructureDescriptor

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

## Declaration

```swift
class MTLInstanceAccelerationStructureDescriptor
```

## Overview

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

### Specifying the instance structures

- [instanceDescriptorType](metal/mtlinstanceaccelerationstructuredescriptor/instancedescriptortype.md)
- [instancedAccelerationStructures](metal/mtlinstanceaccelerationstructuredescriptor/instancedaccelerationstructures.md)
- [MTLAccelerationStructureInstanceDescriptorType](metal/mtlaccelerationstructureinstancedescriptortype.md)

### Specifying the list of instances

- [instanceCount](metal/mtlinstanceaccelerationstructuredescriptor/instancecount.md)
- [instanceDescriptorBuffer](metal/mtlinstanceaccelerationstructuredescriptor/instancedescriptorbuffer.md)
- [instanceDescriptorBufferOffset](metal/mtlinstanceaccelerationstructuredescriptor/instancedescriptorbufferoffset.md)
- [instanceDescriptorStride](metal/mtlinstanceaccelerationstructuredescriptor/instancedescriptorstride.md)

### Specifying motion data

- [motionTransformCount](metal/mtlinstanceaccelerationstructuredescriptor/motiontransformcount.md)
- [motionTransformBuffer](metal/mtlinstanceaccelerationstructuredescriptor/motiontransformbuffer.md)
- [motionTransformBufferOffset](metal/mtlinstanceaccelerationstructuredescriptor/motiontransformbufferoffset.md)

### Instance Properties

- [instanceTransformationMatrixLayout](metal/mtlinstanceaccelerationstructuredescriptor/instancetransformationmatrixlayout.md)
- [motionTransformStride](metal/mtlinstanceaccelerationstructuredescriptor/motiontransformstride.md)
- [motionTransformType](metal/mtlinstanceaccelerationstructuredescriptor/motiontransformtype.md)

## Relationships

### Inherits From

- [MTLAccelerationStructureDescriptor](metal/mtlaccelerationstructuredescriptor.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

### Acceleration structures

- [Improving ray-tracing data access using per-primitive data](metal/improving-ray-tracing-data-access-using-per-primitive-data.md)
- [MTLAccelerationStructure](metal/mtlaccelerationstructure.md)
- [MTL4AccelerationStructureDescriptor](metal/mtl4accelerationstructuredescriptor.md)
- [MTLAccelerationStructureDescriptor](metal/mtlaccelerationstructuredescriptor.md)
- [MTL4PrimitiveAccelerationStructureDescriptor](metal/mtl4primitiveaccelerationstructuredescriptor.md)
- [MTLPrimitiveAccelerationStructureDescriptor](metal/mtlprimitiveaccelerationstructuredescriptor.md)
- [MTL4InstanceAccelerationStructureDescriptor](metal/mtl4instanceaccelerationstructuredescriptor.md)
- [MTLAccelerationStructureCommandEncoder](metal/mtlaccelerationstructurecommandencoder.md)
- [MTLAccelerationStructureUsage](metal/mtlaccelerationstructureusage.md)
- [MTLAccelerationStructureRefitOptions](metal/mtlaccelerationstructurerefitoptions.md)
