Is Metal usable from Swift 6?

Hello ladies and gentlemen, I'm writing a simple renderer on the main actor using Metal and Swift 6. I am at the stage now where I want to create a render pipeline state using asynchronous API:

@MainActor
class Renderer {
    let opaqueMeshRPS: MTLRenderPipelineState

    init(/*...*/) async throws {
        let descriptor = MTLRenderPipelineDescriptor()
        // ...
        
        opaqueMeshRPS = try await device.makeRenderPipelineState(descriptor: descriptor)
    }
}

I get a compilation error if try to use the asynchronous version of the makeRenderPipelineState method:

Non-sendable type 'any MTLRenderPipelineState' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary

Which is understandable, since MTLRenderPipelineState is not Sendable. But it looks like no matter where or how I try to access this method, I just can't do it - you have this API, but you can't use it, you can only use the synchronous versions.

Am I missing something or is Metal just not usable with Swift 6 right now?

Is Metal usable from Swift 6?
 
 
Q