Shader Pipeline Bubbles on iOS

I’ve been looking to improve scheduling bubbles recently, and it seemed that nothing I was doing was working. I created a new basic test project with just standard game objects in a scene, nothing special at all. The attached image is the profile of it on iOS. Notice how the vertex and fragment shader segments are completely separate. I would expect them to overlap, such that the next frame’s vertex shading overlaps the current frame’s fragment shading. It seems that something is preventing this. Is this a bug? I would really like to understand. I’ve looked at some Apple provided sample code for Metal, and their vertex and fragment shading properly overlaps between frames.

The issue here of course is that about 50% of performance is potentially thrown away without the shader core overlap.

Any help would be greatly appreciated.

@aleksandrk do you have any thoughts here? According to everything I have seen and read, to maintain optimal performance, both vertex/compute and fragment cores should be active at the same time.

This is how I would expect it to look (non Unity app). Notice the high overlap in vertex and fragment shading.

Been profiling a lot more, it seems like the GPU kinda just picks and chooses what it likes. Sometimes it overlaps, sometimes not. It seems that it is more likely to overlap under heavier GPU loads, but still not necessarily. So case solved… more or less.