<!--
{
  "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/MTLRasterizationRateMapDescriptor",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Metal"
    ],
    "preciseIdentifier" : "c:objc(cs)MTLRasterizationRateMapDescriptor"
  },
  "title" : "MTLRasterizationRateMapDescriptor"
}
-->

# MTLRasterizationRateMapDescriptor

An object that you use to configure new rasterization rate maps.

```
class MTLRasterizationRateMapDescriptor
```

## Overview

To create a new rate map, first create an
[`MTLRasterizationRateMapDescriptor`](/documentation/Metal/MTLRasterizationRateMapDescriptor) instance and set its property values.
Then, create a new rasterization rate-map by calling an [`MTLDevice`](/documentation/Metal/MTLDevice) instance’s  [`makeRasterizationRateMap(descriptor:)`](/documentation/Metal/MTLDevice/makeRasterizationRateMap(descriptor:)) method.

When creating a rate map, Metal copies into it property values from the descriptor.
You can reuse a descrptor by modifying its property values,
which doesn’t affect the other rate-map instances that already exist.

## Topics

### Creating rate map descriptors

[`init(screenSize:label:)`](/documentation/Metal/MTLRasterizationRateMapDescriptor/init(screenSize:label:))

A convenience initializer that creates a rate map descriptor with a given size and identifier.

[`init(screenSize:layer:label:)`](/documentation/Metal/MTLRasterizationRateMapDescriptor/init(screenSize:layer:label:))

A convenience initializer that creates a rate map descriptor with a single rate layer.

[`init(screenSize:layers:label:)`](/documentation/Metal/MTLRasterizationRateMapDescriptor/init(screenSize:layers:label:))

A convenience initializer that creates a rate map descriptor with a set of layer descriptors.

[`rasterizationRateMapDescriptorWithScreenSize:`](/documentation/Metal/MTLRasterizationRateMapDescriptor/rasterizationRateMapDescriptorWithScreenSize:)

Creates a rate map descriptor with a given size and identifier.

[`rasterizationRateMapDescriptorWithScreenSize:layer:`](/documentation/Metal/MTLRasterizationRateMapDescriptor/rasterizationRateMapDescriptorWithScreenSize:layer:)

Creates a rate map descriptor with a single rate layer.

[`rasterizationRateMapDescriptorWithScreenSize:layerCount:layers:`](/documentation/Metal/MTLRasterizationRateMapDescriptor/rasterizationRateMapDescriptorWithScreenSize:layerCount:layers:)

Creates a rate map descriptor with a set of layer descriptors.

### Identifying the rate map

[`label`](/documentation/Metal/MTLRasterizationRateMapDescriptor/label)

A string used to identify the rate map you create with the descriptor.

### Configuring the viewport size

[`screenSize`](/documentation/Metal/MTLRasterizationRateMapDescriptor/screenSize)

The size of the viewport coordinate system, in logical pixels.

### Configuring the rate map layers

[`layerCount`](/documentation/Metal/MTLRasterizationRateMapDescriptor/layerCount)

The number of layers in the rate map.

[`layer(at:)`](/documentation/Metal/MTLRasterizationRateMapDescriptor/layer(at:))

Returns the layer description for a layer in the rate map.

[`setLayer(_:at:)`](/documentation/Metal/MTLRasterizationRateMapDescriptor/setLayer(_:at:))

Sets a configuration for a layer rate map.

[`layers`](/documentation/Metal/MTLRasterizationRateMapDescriptor/layers)

The rasterization rates for one or more layers in the rate map.

[`MTLRasterizationRateLayerArray`](/documentation/Metal/MTLRasterizationRateLayerArray)

Descriptions for the rasterization rates to apply to the set of layers in a rate map.



---

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)