---
title: MTLStepFunction
framework: metal
role: symbol
role_heading: Enumeration
path: metal/mtlstepfunction
---

# MTLStepFunction

The frequency and locations at which a function fetches attribute data.

## Declaration

```swift
enum MTLStepFunction
```

## Topics

### Step options

- [MTLStepFunction.constant](metal/mtlstepfunction/constant.md)
- [MTLStepFunction.perInstance](metal/mtlstepfunction/perinstance.md)
- [MTLStepFunction.perPatch](metal/mtlstepfunction/perpatch.md)
- [MTLStepFunction.perPatchControlPoint](metal/mtlstepfunction/perpatchcontrolpoint.md)
- [MTLStepFunction.perVertex](metal/mtlstepfunction/pervertex.md)
- [MTLStepFunction.threadPositionInGridX](metal/mtlstepfunction/threadpositioningridx.md)
- [MTLStepFunction.threadPositionInGridY](metal/mtlstepfunction/threadpositioningridy.md)
- [MTLStepFunction.threadPositionInGridXIndexed](metal/mtlstepfunction/threadpositioningridxindexed.md)
- [MTLStepFunction.threadPositionInGridYIndexed](metal/mtlstepfunction/threadpositioningridyindexed.md)

### Initializers

- [init(rawValue:)](metal/mtlstepfunction/init(rawvalue:).md)

## Relationships

### Conforms To

- [BitwiseCopyable](swift/bitwisecopyable.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [RawRepresentable](swift/rawrepresentable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Describing fetch behavior

- [stride](metal/mtlbufferlayoutdescriptor/stride.md)
- [stepFunction](metal/mtlbufferlayoutdescriptor/stepfunction.md)
- [stepRate](metal/mtlbufferlayoutdescriptor/steprate.md)
