---
title: MTL4InstanceAccelerationStructureDescriptor
framework: metal
role: symbol
role_heading: Class
path: metal/mtl4instanceaccelerationstructuredescriptor
---

# MTL4InstanceAccelerationStructureDescriptor

Descriptor for an instance acceleration structure.

## Declaration

```swift
class MTL4InstanceAccelerationStructureDescriptor
```

## Overview

Overview An instance acceleration structure references other acceleration structures, and provides the ability to “instantiate” them multiple times, each one with potentially a different transformation matrix. You specify the properties of the instances in the acceleration structure this descriptor builds by providing a buffer of structs via its instanceDescriptorBuffer property. Use a MTLResidencySet to mark residency of all buffers and acceleration structures this descriptor references when you build this acceleration structure.

## Topics

### Instance Properties

- [instanceCount](metal/mtl4instanceaccelerationstructuredescriptor/instancecount.md)
- [instanceDescriptorBuffer](metal/mtl4instanceaccelerationstructuredescriptor/instancedescriptorbuffer.md)
- [instanceDescriptorStride](metal/mtl4instanceaccelerationstructuredescriptor/instancedescriptorstride.md)
- [instanceDescriptorType](metal/mtl4instanceaccelerationstructuredescriptor/instancedescriptortype.md)
- [instanceTransformationMatrixLayout](metal/mtl4instanceaccelerationstructuredescriptor/instancetransformationmatrixlayout.md)
- [motionTransformBuffer](metal/mtl4instanceaccelerationstructuredescriptor/motiontransformbuffer.md)
- [motionTransformCount](metal/mtl4instanceaccelerationstructuredescriptor/motiontransformcount.md)
- [motionTransformStride](metal/mtl4instanceaccelerationstructuredescriptor/motiontransformstride.md)
- [motionTransformType](metal/mtl4instanceaccelerationstructuredescriptor/motiontransformtype.md)

## Relationships

### Inherits From

- [MTL4AccelerationStructureDescriptor](metal/mtl4accelerationstructuredescriptor.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)
- [MTLInstanceAccelerationStructureDescriptor](metal/mtlinstanceaccelerationstructuredescriptor.md)
- [MTLAccelerationStructureCommandEncoder](metal/mtlaccelerationstructurecommandencoder.md)
- [MTLAccelerationStructureUsage](metal/mtlaccelerationstructureusage.md)
- [MTLAccelerationStructureRefitOptions](metal/mtlaccelerationstructurerefitoptions.md)
