---
title: MTLArgumentType
framework: metal
role: symbol
role_heading: Enumeration
path: metal/mtlargumenttype
---

# MTLArgumentType

The resource type for an argument of a function.

## Declaration

```swift
enum MTLArgumentType
```

## Topics

### Argument types

- [MTLArgumentType.buffer](metal/mtlargumenttype/buffer.md)
- [MTLArgumentType.threadgroupMemory](metal/mtlargumenttype/threadgroupmemory.md)
- [MTLArgumentType.texture](metal/mtlargumenttype/texture.md)
- [MTLArgumentType.sampler](metal/mtlargumenttype/sampler.md)
- [MTLArgumentType.imageblock](metal/mtlargumenttype/imageblock.md)
- [MTLArgumentType.imageblockData](metal/mtlargumenttype/imageblockdata.md)
- [MTLArgumentType.visibleFunctionTable](metal/mtlargumenttype/visiblefunctiontable.md)
- [MTLArgumentType.intersectionFunctionTable](metal/mtlargumenttype/intersectionfunctiontable.md)
- [MTLArgumentType.primitiveAccelerationStructure](metal/mtlargumenttype/primitiveaccelerationstructure.md)
- [MTLArgumentType.instanceAccelerationStructure](metal/mtlargumenttype/instanceaccelerationstructure.md)

### Initializers

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

### Function arguments

- [MTLAttribute](metal/mtlattribute.md)
- [MTLVertexAttribute](metal/mtlvertexattribute.md)
- [MTLArgument](metal/mtlargument.md)
- [MTLAutoreleasedArgument](metal/mtlautoreleasedargument.md)
- [MTLArgumentAccess](metal/mtlargumentaccess.md)
