| # Resource Limits | |
| 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). | |
| # Capabilities | |
| 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) | | | | |
| ## Notes | |
| * fn1: limits vary based on the underlying hardware capabilities | |
| * fn2: on SM3 or better hardware the max point size is D3DCAPS9.MaxPointSize |