Determining maximum texture size is no problem: How to detect maximum texture resolution on iPhone?
Also, the documentation specifies the maximum number of samplers that a fragment shader can handle, here
That link specifies under the heading
OpenGL ES 2.0 on the PowerVR SGX
You can use up to 8 textures in a fragment shader
you load textures eg:
// bind gem texture to slot #0, and inform shader via uniform
glActiveTexture( GL_TEXTURE0 );
glBindTexture( GL_TEXTURE_2D, texId_dull );
glUniform1i( [ self.program idForUniform: "U1_sampId_Gem" ], (GLuint)0 );
// ... similarly for texture #1
glActiveTexture( GL_TEXTURE1 );
glBindTexture( GL_TEXTURE_2D, texId_sparkle );
glUniform1i( [ self.program idForUniform: "U2_sampId_Sparkle" ], (GLuint)1 );
and COMMAND+click on GL_TEXTURE1 reveals constants all the way to GL_TEXTURE31, so it looks like they are preparing a couple of generations ahead.
But where can I find the maximum number of textures that can be created.
glGenTextures( n, pTexID ); // what is max n?
Is this only limited by the physical amount of memory available for video on the device? (I read there is no actual physical distinction between VRAM and RAM, it is the same memory). Or can some lower limit be guaranteed?