<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.4.0 -",
    "macOS: 10.15.4 -",
    "tvOS: 16.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Metal",
  "identifier" : "/documentation/Metal/MTLRasterizationRateMap/parameterDataSizeAndAlign",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Metal"
    ],
    "preciseIdentifier" : "c:objc(pl)MTLRasterizationRateMap(py)parameterBufferSizeAndAlign"
  },
  "title" : "parameterDataSizeAndAlign"
}
-->

# parameterDataSizeAndAlign

The size and alignment requirements to contain the coordinate transformation information in this rate map.

```
var parameterDataSizeAndAlign: MTLSizeAndAlign { get }
```

## Discussion

To convert coordinate values inside your shader, pass the rate map data into the shader in an [`MTLBuffer`](/documentation/Metal/MTLBuffer) instance.
The buffer location where you store the parameter information needs at least the size and alignment this property provides.

You can convert between screen space and physical fragment space by binding the buffer to the shader with type `rasterization_rate_map_data`, then constructing `rasterization_rate_map_decoder` with the buffer data.
For more details, see the “Variable Rasterization Rate” section of the [Metal Shading Language Specification](https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf).

---

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)