Apologies for the odd title but I was wondering if you could perhaps shed some light when it comes do driver-side behavior. We're seeing some suspiciously high time "around" a single draw call - slightly above 2ms on a Mali-G72MP2 (Samsung A20). This represents an upscale pass (in Unity). I'd expect this to cost next to "nothing", CPU-wise, but I was wondering if what we're seeing could be related with the driver making sure the framebuffer that is being upscaled is fully resolved before the draw call and therefore stalling?
A simplified view of the GL calls would be:
glInvalidateFramebuffer( intermediateFBO ); // DEPTH and Stencil ... glBindTexture( intermediateTexture); // the texture attached to intermediateFBO glBindFramebuffer( backbuffer ); glInvalidateFramebuffer( backbuffer ); // COLOR ... glDrawElements(); // the fullscreen quad
Cheers Pete! I think I see what you mean. I had a look at the Streamline plot and it does seem that one of A73 cores seems well below, at times, from the max 1.6Ghz spec'ed for the Exynos 7884.