<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: 26.0.0 -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Metal",
  "identifier" : "/documentation/Metal/MTLRenderPipelineState/makeRenderPipelineDescriptorForSpecialization()",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Metal"
    ],
    "preciseIdentifier" : "c:objc(pl)MTLRenderPipelineState(im)newRenderPipelineDescriptorForSpecialization"
  },
  "title" : "makeRenderPipelineDescriptorForSpecialization()"
}
-->

# makeRenderPipelineDescriptorForSpecialization()

Creates a render pipeline descriptor from this pipeline that you can use for pipeline specialization.

```
func makeRenderPipelineDescriptorForSpecialization() -> MTL4PipelineDescriptor
```

## Return Value

a new pipeline descriptor that you use for pipeline state specialization.

## Discussion

Use this method to obtain a new [`MTL4PipelineDescriptor`](/documentation/Metal/MTL4PipelineDescriptor) instance that you can use to specialize any unspecialized
properties in this pipeline state object.

The returned descriptor contains every unspecialized field in the current pipeline state object, set to unspecialized.
It may, however, not contain valid or accurate properties in any other field.

This descriptor is only valid for the purpose of calling specialization functions on the [`MTL4Compiler`](/documentation/Metal/MTL4Compiler) to
specialize this pipeline, for example: [`newRenderPipelineStateBySpecializationWithDescriptor:pipeline:error:`](/documentation/Metal/MTL4Compiler/newRenderPipelineStateBySpecializationWithDescriptor:pipeline:error:).

Although this method returns the [`MTL4PipelineDescriptor`](/documentation/Metal/MTL4PipelineDescriptor) base class, the concrete instance this method returns
corresponds to the specific descriptor type for the creation of this pipeline state, for example if a [`MTL4Compiler`](/documentation/Metal/MTL4Compiler)
instance creates this current pipeline form a [`MTLTileRenderPipelineDescriptor`](/documentation/Metal/MTLTileRenderPipelineDescriptor), this method returns a concrete
[`MTLTileRenderPipelineDescriptor`](/documentation/Metal/MTLTileRenderPipelineDescriptor) instance.

---

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)