iPad 1 vs iPad 2 GPU

As far as I understand, the iPad 1 GPU performs scalar operations in the fragment shader, even if I’m using vector operands. Is this also true for the vertex shader? What about matrix computations in the vertex shader - i.e. multiplying vectors with a transform matrix?

Is the iPad 2 GPU now a fully-fledged vector processor?

Any good guides (such as “dos and don’ts”) for fragment shader programming for the SGX line of GPUs?


Doesn’t that depend on the precision of your floats? From the PowerVR SGX OpenGL ES 2.0 Application Development Recommendations (contained within the PowerVR SDK):

"While lowp computations are performed as 3 and 4 component vector operations, mediump operations use 2 component vectors. When using highp precision, the USSE operates on scalar values."

From using the PVRUniSCoEditor, this looked to be the case for both the 53x and 54x SGX variants in the iPad 1 and 2, judging by the instruction count estimates provided in the editor there for my shaders.