[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] retrograde webgl support levels

On Tue, Oct 28, 2014 at 2:11 PM, Mark Callow <khronos@callow.im> wrote:
Do you have any suggestions on how to deal with this? I believe the WebGL implementations reflect the limits of the underlying implementation.
These parameters are only represented at the lower end by relatively few android devices (most androids, often by more than 3/4 support the higher values.

My iPad mini retina natively supports:
  • MAX_VERTEX_UNIFORM_VECTORS: 512 (384 more than webgl)
  • MAX_COMBINED_TEXTURE_IMAGE_UNITS: 32 (24 more than webgl)
  • MAX_TEXTURE_IMAGE_UNITS: 16 (8 more than webgl)
My iPod touch 5tg gen supports:
  • MAX_VERTEX_UNIFORM_VECTORS: 128 (0 more than webgl)
  • MAX_COMBINED_TEXTURE_IMAGE_UNITS: 8 (0 more than webgl)
  • MAX_TEXTURE_IMAGE_UNITS: 8 (0 more than webgl)
So the constraints do not reflect hardware constraints outright on some devices, particularly not the newer ones. I've detailed this fact on this blog post http://codeflow.org/entries/2014/jun/08/some-issues-with-apples-ios-webgl-implementation/#hardcoded-constraints-on-ios . See also this webkit ticket https://bugs.webkit.org/show_bug.cgi?id=133745

I understand Apples desire to support older devices and not fragment their own ecosystem with different capabilities (or perhaps it's just implementation convenience). However, in the act of doing so, they're fracturing the larger WebGL ecosystem, in particular, any application written in WebGL in the last 3 years that bumps against the practical lower limits.
The lower limits you describe are within the OpenGL ES 2 specification and have probably been that way on these iOS devices all along. Many of them are almost certainly fundamental limitations of the hardware.The bright spot is that with the iPhone 6 reportedly selling so well, maybe those older devices won’t be around for much longer.
Most android hardware (which is more budget oriented than iOS hardware) already superseeds those well established lower boundaries. It's reasonable to assume most iOS hardware in existence does so too (see iPad mini retina, and probably everything from iPhone 4 onwards).