<!--
{
  "documentType" : "article",
  "framework" : "MetalPerformanceShaders",
  "identifier" : "/documentation/MetalPerformanceShaders/metalperformanceshaders-enumerations",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "MetalPerformanceShaders Enumerations"
}
-->

# MetalPerformanceShaders Enumerations

## Topics

### Enumerations

[`enum MPSAccelerationStructureStatus`](/documentation/MetalPerformanceShaders/MPSAccelerationStructureStatus)

Constants that indicate an acceleration structure build state.

[`struct MPSAccelerationStructureUsage`](/documentation/MetalPerformanceShaders/MPSAccelerationStructureUsage)

Options that describe how an acceleration structure will be used.

[`struct MPSAliasingStrategy`](/documentation/MetalPerformanceShaders/MPSAliasingStrategy)

[`enum MPSBoundingBoxIntersectionTestType`](/documentation/MetalPerformanceShaders/MPSBoundingBoxIntersectionTestType)

Options for the intersection test type for a ray intersector bounding box.

[`struct MPSCNNBatchNormalizationFlags`](/documentation/MetalPerformanceShaders/MPSCNNBatchNormalizationFlags)

Options that define how statistics are calculated during batch normalization.

[`struct MPSCNNConvolutionGradientOption`](/documentation/MetalPerformanceShaders/MPSCNNConvolutionGradientOption)

Options that control which gradient to compute during backward propagation.

[`enum MPSCNNConvolutionWeightsLayout`](/documentation/MetalPerformanceShaders/MPSCNNConvolutionWeightsLayout)

[`enum MPSCNNLossType`](/documentation/MetalPerformanceShaders/MPSCNNLossType)

Constants that indicate supported loss filter types.

[`enum MPSCNNReductionType`](/documentation/MetalPerformanceShaders/MPSCNNReductionType)

Constants that indicate supported reduction types.

[`enum MPSCNNWeightsQuantizationType`](/documentation/MetalPerformanceShaders/MPSCNNWeightsQuantizationType)

Options that specify the type of quantization used to generate unsigned integer weights.

[`struct MPSCustomKernelIndex`](/documentation/MetalPerformanceShaders/MPSCustomKernelIndex)

[`struct MPSDeviceCapsValues`](/documentation/MetalPerformanceShaders/MPSDeviceCapsValues)

[`struct MPSDeviceOptions`](/documentation/MetalPerformanceShaders/MPSDeviceOptions)

[`enum MPSFloatDataTypeBit`](/documentation/MetalPerformanceShaders/MPSFloatDataTypeBit)

[`enum MPSFloatDataTypeShift`](/documentation/MetalPerformanceShaders/MPSFloatDataTypeShift)

[`struct MPSImageType`](/documentation/MetalPerformanceShaders/MPSImageType)

Options that define a Metal Performance Shaders image type.

[`enum MPSIntersectionDataType`](/documentation/MetalPerformanceShaders/MPSIntersectionDataType)

Options that determine the data contained in an intersection result.

[`enum MPSIntersectionType`](/documentation/MetalPerformanceShaders/MPSIntersectionType)

Options that determine an intersection type for a ray intersector.

[`struct MPSMatrixRandomDistribution`](/documentation/MetalPerformanceShaders/MPSMatrixRandomDistribution)

[`struct MPSNDArrayQuantizationScheme`](/documentation/MetalPerformanceShaders/MPSNDArrayQuantizationScheme)

[`struct MPSNNComparisonType`](/documentation/MetalPerformanceShaders/MPSNNComparisonType)

[`struct MPSNNConvolutionAccumulatorPrecisionOption`](/documentation/MetalPerformanceShaders/MPSNNConvolutionAccumulatorPrecisionOption)

Options that specify convolution accumulator precision.

[`enum MPSNNRegularizationType`](/documentation/MetalPerformanceShaders/MPSNNRegularizationType)

[`struct MPSNNTrainingStyle`](/documentation/MetalPerformanceShaders/MPSNNTrainingStyle)

Options that control how graph nodes are trained.

[`enum MPSPolygonType`](/documentation/MetalPerformanceShaders/MPSPolygonType)

[`enum MPSRNNMatrixId`](/documentation/MetalPerformanceShaders/MPSRNNMatrixId)

Options that define which matrix is copied in or out of a trainable RNN layer.

[`enum MPSRayDataType`](/documentation/MetalPerformanceShaders/MPSRayDataType)

Options for the data type for an intersector ray.

[`enum MPSRayMaskOperator`](/documentation/MetalPerformanceShaders/MPSRayMaskOperator)

[`struct MPSRayMaskOptions`](/documentation/MetalPerformanceShaders/MPSRayMaskOptions)

Options for ray intersector mask options.

[`enum MPSStateResourceType`](/documentation/MetalPerformanceShaders/MPSStateResourceType)

Options for the underlying resource type for a state object.

[`enum MPSTemporalWeighting`](/documentation/MetalPerformanceShaders/MPSTemporalWeighting)

[`enum MPSTransformType`](/documentation/MetalPerformanceShaders/MPSTransformType)

Constants that indicate instance transformation types.

[`enum MPSTriangleIntersectionTestType`](/documentation/MetalPerformanceShaders/MPSTriangleIntersectionTestType)

Options for the ray-triangle intersection test.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)