Dismissing a Window that contains MTKView no longer updates

I'm writing a swift app that uses metal to render textures to the main view. I currently use a NSViewRepresentable to place a MTKView into the window and a MTKViewDelegate to perform the metal operations. It's running well and I see my metal view being updated.

However, when I close the window (either through the user clicking the close button or by programatically using the appropriate @Environment(\.dismissWindow) private var dismissWindow) and then reopen the window, I no longer receive calls to MTKViewDelegate draw(in mtkView: MTView). If I manually call the MTKView::draw() function my view updates it's content as expected, so it seems to be still be correctly setup / alive.

As best as I can tell the CVDisplayLink created by MTKView is no longer active (or at least that's my understanding of how the MTKView::draw() function is called).

I've setup the MTKView like this

		let mtkView = MTKView()
		mtkView.delegate                 = context.coordinator // My custom delegate
		mtkView.device                   = context.coordinator.device // The default metal device
		mtkView.preferredFramesPerSecond = 60
		mtkView.enableSetNeedsDisplay    = false
		mtkView.isPaused                 = false

which I was hoping would call the draw function at 60fps while the view is visible.

I've also verified the values don't change while running.

Does anyone have any ideas on how I could restart the CVDisplayLink or anyother methods to avoid this problem??

Cheers

Jack

This sounds like a bug. Can you please file a report via Feedback Assistant?

Submitted as FB15971114

Dismissing a Window that contains MTKView no longer updates
 
 
Q