Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PowerVR SGX535 Shader Performance (OpenGL ES 2.0)

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

like image 968
T Campbell Avatar asked Jul 23 '10 17:07

T Campbell


2 Answers

Imagination Technologies recently added Mac support for their PVRUniSCo compiler and PVRUniSCoEditor interactive shader editor. These can be downloaded for free as part of the PowerVR SDK. The compiler has support for both the PowerVR SGX 53x series as well as the 540 series in the iPad 2. Unfortunately, the editor runs as a clunky X11 application, but at least it works now.

The editor gives you line-by-line estimates of the number of GPU cycles required throughout your vertex or fragment shader, as well as more accurate best and worst case estimates of total cycles required.

I've been using it to profile my iOS shaders, and it has proven to be extremely useful in finding hotspots: PVRUniSCoEditor

like image 56
Brad Larson Avatar answered Sep 16 '22 22:09

Brad Larson


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.

like image 30
Dr. Snoopy Avatar answered Sep 19 '22 22:09

Dr. Snoopy