---
title: usage
framework: metal
role: symbol
role_heading: Instance Property
path: metal/mtltexture/usage
---

# usage

Options that determine how you can use the texture.

## Declaration

```swift
var usage: MTLTextureUsage { get }
```

## Discussion

Discussion You set this value in an MTLTextureDescriptor that you then use to create the given texture. After you create the texture, its usage options don’t change.

## See Also

### Querying texture attributes

- [textureType](metal/mtltexture/texturetype.md)
- [pixelFormat](metal/mtltexture/pixelformat.md)
- [width](metal/mtltexture/width.md)
- [height](metal/mtltexture/height.md)
- [depth](metal/mtltexture/depth.md)
- [mipmapLevelCount](metal/mtltexture/mipmaplevelcount.md)
- [arrayLength](metal/mtltexture/arraylength.md)
- [sampleCount](metal/mtltexture/samplecount.md)
- [isFramebufferOnly](metal/mtltexture/isframebufferonly.md)
- [allowGPUOptimizedContents](metal/mtltexture/allowgpuoptimizedcontents.md)
- [isShareable](metal/mtltexture/isshareable.md)
- [swizzle](metal/mtltexture/swizzle.md)
- [MTLTextureType](metal/mtltexturetype.md)
- [MTLTextureUsage](metal/mtltextureusage.md)
