---
title: MTLStageInputOutputDescriptor
framework: metal
role: symbol
role_heading: Class
path: metal/mtlstageinputoutputdescriptor
---

# MTLStageInputOutputDescriptor

A description of the input and output data of a function.

## Declaration

```swift
class MTLStageInputOutputDescriptor
```

## Topics

### Describing argument layouts

- [attributes](metal/mtlstageinputoutputdescriptor/attributes.md)
- [layouts](metal/mtlstageinputoutputdescriptor/layouts.md)

### Declaring index buffers for indirect compute commands

- [indexBufferIndex](metal/mtlstageinputoutputdescriptor/indexbufferindex.md)
- [indexType](metal/mtlstageinputoutputdescriptor/indextype.md)

### Resetting the descriptor

- [reset()](metal/mtlstageinputoutputdescriptor/reset().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

### Configuring a compute pipeline state

- [MTL4ComputePipelineDescriptor](metal/mtl4computepipelinedescriptor.md)
- [MTLComputePipelineDescriptor](metal/mtlcomputepipelinedescriptor.md)
- [MTLComputePipelineState](metal/mtlcomputepipelinestate.md)
- [MTLPipelineBufferDescriptor](metal/mtlpipelinebufferdescriptor.md)
- [MTLPipelineBufferDescriptorArray](metal/mtlpipelinebufferdescriptorarray.md)
- [MTLPipelineOption](metal/mtlpipelineoption.md)
