OpenGL ES 2.0 API is quite powerful but there are still some features that are optional or allow for wide variability between implementations.
Applications that need more than the minimum values for these limits should query the capabilities of the GL device and scale their usage based on the device’s feature set. Failing to do so and assuming sufficient limits typically results in reduced portability.
The various implementation dependent limits can be found in Tables 6.18 – 6.20 of the [OpenGL ES 2.0.25 specification] (http://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.25.pdf).
Capability | ES 2.0 Minimum | ANGLE | SM2 | SM3 | SM4+ |
---|---|---|---|---|---|
GL_MAX_VERTEX_ATTRIBS | 8 | 16 | |||
GL_MAX_VERTEX_UNIFORM_VECTORS | 128 | 254 | |||
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS | 0 | (fn1) | 0 | 0 | 4 |
GL_MAX_VARYING_VECTORS | 8 | (fn1) | 8 | 10 | 10 |
GL_MAX_FRAGMENT_UNIFORM_VECTORS | 16 | (fn1) | 29 | 221 | 221 |
GL_MAX_TEXTURE_IMAGE_UNITS | 8 | 16 | |||
GL_MAX_TEXTURE_SIZE | 64 | 2048-16384 (fn1) | |||
GL_MAX_CUBE_MAP_SIZE | 16 | 2048-16384 (fn1) | |||
GL_MAX_RENDERBUFFER_SIZE | 1 | 2048-16384 (fn1) | |||
GL_ALIASED_POINT_SIZE_RANGE (min, max) | (1, 1) | (fn2) | (1,1) | (1, fn2) | (1, fn2) |
GL_ALIASED_LINE_WIDTH_RANGE (min, max) | (1, 1) | (1, 1) |