views:

334

answers:

1

I'm currently working on a couple of shaders for an iPad game and it seems as if Apple's GLSL compiler isn't doing any optimizations (or very few). I can move a single line in a shader and drop my FPS from 30 to 24 but I really have no idea why this is happening.

Does anyone have any references for the following:

  • what PowerVR instructions are generated from GLSL instructions?
  • what are the timings of the PowerVR instructions?
  • what sort of parallel processing units are in the PowerVR535 and how can they be exploited?

Thanks, Tristan

+1  A: 

http://www.imgtec.net/factsheets/SDK/POWERVR%20SGX.OpenGL%20ES%202.0%20Application%20Development%20Recommendations.1.1f.External.pdf

This documet should help you to optimize your shaders for maximum performance. Apple should provide similar information as well.

Matias Valdenegro
Thanks for the answer. Unfortunately from further reading PowerVR decided to not publish the actual assembly GLSL gets compiled into. The best bet I found was using PowerVRUniSCo to give cycle counts for vertex and fragment shaders. Annoyingly this tool is only available for PC and Linux.
T Campbell