Cycles Per Pixel

What does this counter show?

This counter represents the average number of cycles that the Shader Processor has spent processing fragments.

It is worth noting that the number of fragments processed by the Shader Processor for a given frame will match the number of fragments that have been submitted for shading by the Texturing and Shading Processor, rather than this value representing the average per screen-pixel. Consider the following scenario: If the only render submitted to the GPU was a single screen aligned full screen opaque quad with a fragment shader that took 20 cycles, then the average value of Cycles per pixel would be 20. If the same opaque quad was rendered with an additional blended screen aligned full screen quad in front of it that took 10 cycles, then the average value of Cycles per pixel would be 15.

What does a high value mean?

A high value indicates that the average cost of shading a fragment is high. As previously mentioned, the value of this counter is easy to misinterpret. It is best to rely on this counter in benchmarks where a single fragment shader is applied to a single full screen opaque quad to test the performance of the shader on the target device.

If this value is high, then you could batch process your application's vertex shaders with the appropriate offline profiling compiler in the PowerVR SDK using the -perfsim flag to identify the most expensive one in your scene, which will help you find the best place to focus your optimisation.