---
title: MTLFunctionType
framework: metal
role: symbol
role_heading: Enumeration
path: metal/mtlfunctiontype
---

# MTLFunctionType

The type of a top-level Metal Shading Language (MSL) function.

## Declaration

```swift
enum MTLFunctionType
```

## Topics

### Function types

- [MTLFunctionType.vertex](metal/mtlfunctiontype/vertex.md)
- [MTLFunctionType.fragment](metal/mtlfunctiontype/fragment.md)
- [MTLFunctionType.kernel](metal/mtlfunctiontype/kernel.md)
- [MTLFunctionType.intersection](metal/mtlfunctiontype/intersection.md)
- [MTLFunctionType.visible](metal/mtlfunctiontype/visible.md)

### Enumeration Cases

- [MTLFunctionType.mesh](metal/mtlfunctiontype/mesh.md)
- [MTLFunctionType.object](metal/mtlfunctiontype/object.md)

### Initializers

- [init(rawValue:)](metal/mtlfunctiontype/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

### Identifying shader functions

- [device](metal/mtlfunction/device.md)
- [label](metal/mtlfunction/label.md)
- [functionType](metal/mtlfunction/functiontype.md)
- [name](metal/mtlfunction/name.md)
- [options](metal/mtlfunction/options.md)
- [MTLFunctionOptions](metal/mtlfunctionoptions.md)
