I'm at the point where I seem to be running a very simple render loop (inside of a very complex project) and having fun trying to figure out what isn't actually functioning. It seems like the documentation online might be slightly out of date as when I try to look for a way to do a frame capture I am only presented with "Capture GPU Workload" and a little "M" icon instead of the documented "Capture GPU Frame" and a "camera" icon. My assumption is it was just renamed as it could potentially include other GPU work not directly related to rendering.
I've changed my project settings to explicitly capture Metal rather than Automatic, but that didn't really seem to change anything.
I've verified the broad strokes of my rendering which roughly matches the Mac example of drawing a simple triangle. The only significant difference is that I immediately reclaim the MTL::CommandBuffer with an autoRelease after the commit. Does that seem fine?
When I capture I am told that: "No GPU commands have been captured. At least one command buffer must be created and committed within the boundaries of a GPU Capture." Not sure if there is some sort of implicit frame tracking that I am somehow violating.
In terms of the rough order of things being done for the rendering:
- renderCommandEncoder()
- setRenderPipelineState()
- drawIndexedPrimitives()
- endEncoding()
- presentDrawable()
- commit()
Oops, almost forgot to mention the reason for my title which is that metal-cpp only seems to come with Mac examples. Are there any iOS examples for metal-cpp?