No capture boundary detected when attempting to capture GPU frame

When I click the capture GPU frame button in the debug bar when running my iOS app, Xcode says No capture boundary detected and therefore isn't able to show me a frame capture. This happens even though draw is getting called for my MTKView before I click the capture GPU frame button, and a call to the command buffer's present() method is in the draw method (I haven't done anything to set a default capture scope since this method call is there). What's causing this? I can provide more details on my implementation if necessary. I tried this in Xcode 9.4.1 and Xcode 10.0 beta 6 running the app on two iOS devices, both of which are running iOS 11.4.1.


Thanks!

Accepted Reply

What I found is because I had isPaused set to true on my MTKView (because of the kind of thing I'm using Metal for), then (with enableSetNeedsDisplay set to true on the MTKView), when I click the frame capture button, I need to make sure that I do some action in the app after clicking the frame capture button that triggers a setNeedsDisplay call to the MTKView - and then it properly captures the frame

Replies

Can you file a bug & attach a copy of your app? We'll take a look.


Cheers,

Seth.

I just filed bug 43624696. Thanks for looking into this, and let me know if you need anything else!

Is this resolved?

What I found is because I had isPaused set to true on my MTKView (because of the kind of thing I'm using Metal for), then (with enableSetNeedsDisplay set to true on the MTKView), when I click the frame capture button, I need to make sure that I do some action in the app after clicking the frame capture button that triggers a setNeedsDisplay call to the MTKView - and then it properly captures the frame