---
title: MTLStencilOperation
framework: metal
role: symbol
role_heading: Enumeration
path: metal/mtlstenciloperation
---

# MTLStencilOperation

The operation performed on a currently stored stencil value when a comparison test passes or fails.

## Declaration

```swift
enum MTLStencilOperation
```

## Topics

### Stencil operations

- [MTLStencilOperation.keep](metal/mtlstenciloperation/keep.md)
- [MTLStencilOperation.zero](metal/mtlstenciloperation/zero.md)
- [MTLStencilOperation.replace](metal/mtlstenciloperation/replace.md)
- [MTLStencilOperation.incrementClamp](metal/mtlstenciloperation/incrementclamp.md)
- [MTLStencilOperation.decrementClamp](metal/mtlstenciloperation/decrementclamp.md)
- [MTLStencilOperation.invert](metal/mtlstenciloperation/invert.md)
- [MTLStencilOperation.incrementWrap](metal/mtlstenciloperation/incrementwrap.md)
- [MTLStencilOperation.decrementWrap](metal/mtlstenciloperation/decrementwrap.md)

### Initializers

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

### Configuring stencil functions and operations

- [stencilFailureOperation](metal/mtlstencildescriptor/stencilfailureoperation.md)
- [depthFailureOperation](metal/mtlstencildescriptor/depthfailureoperation.md)
- [depthStencilPassOperation](metal/mtlstencildescriptor/depthstencilpassoperation.md)
- [stencilCompareFunction](metal/mtlstencildescriptor/stencilcomparefunction.md)
