<!--
{
  "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/MTL4CommandQueue/waitForDrawable(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Metal"
    ],
    "preciseIdentifier" : "c:objc(pl)MTL4CommandQueue(im)waitForDrawable:"
  },
  "title" : "waitForDrawable(_:)"
}
-->

# waitForDrawable(_:)

Schedules a wait operation on the command queue to ensure the display is no longer using a specific Metal drawable.

```
func waitForDrawable(_ drawable: any MTLDrawable)
```

## Parameters

`drawable`

[`MTLDrawable`](/documentation/Metal/MTLDrawable) instance to signal.

## Discussion

Use this method to ensure the display is no longer using a [`MTLDrawable`](/documentation/Metal/MTLDrawable) instance before executing any subsequent
commands.

This method returns immediately and doesn’t perform any synchronization on the current thread. You are responsible
for calling this method before committing any command buffers containing commands that target this drawable.

Call this method multiple times if you commit your command buffers to multiple command queues.

---

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)