We do try to support browsers from the most basic webgl support.
Although there are cases when hardware not supporting it even if software is up to date. It may be related to drivers sometimes too.
Mobile GPU vendors sometimes do leak bugs and issues to their drivers, but we usually try to contact them directly with good tests to address those issues as fast as we can. Major issues with drivers - have happened in past, but usually there was a workaround it that we apply as soon as we can.
Safari 8.0+ indeed. Apple was the latest to join webgl movement.
For mobile, support is one thing, but hardware is another, some devices are just too weak to handle even primitive graphics, and this has to be taken in account.
Support of versions is one thing, other thing is what your real audience is actually. Some agencies and companies are very conservative regarding “coverage” of platforms, but if we are talking huge experience improvement with the cost of ~3% (e.g.) of audience, then of course! Why not
You need to know your audience and who you are targeting with your apps.
Here is a chart from caniuse.com that points to webgl support across different browsers:
Here is another good website, showing how hardware supports webgl features and extensions. We do try to fit to the minimum use of things, and in places use available extensions and fallback when they are not available.
Is there anything inside the playcanvas.com editor I can add so it gracefully has a fallback when a browser is not supported, or is this more something we should handle outside of PlayCanvas? Like putting the published project in an iframe that only displays after some browser checks?
There isn’t currently a way to hook in to a PlayCanvas app to specify a fallback for when WebGL is not supported. Options are to do what you suggest and load an iframe if WebGL is supported and show a fallback if not. Or if you are exporting/self-hosting your app, you can edit the download directly to do what you want.
I’m writing in this thread again because I’d like to know if you know where I could check which devices DON’T support webGL. I’m focusing on mobile. According to this and my own research, the limitation is in the browser and browser version. But I would like to know other limitations:
Is there a limit on the Android or IOS version of the device?
Is there a limit on the hardware?
If so, where can I search for that information?
On iOS, you essentially need iOS 8 and above for WebGL to work. It’s a bit more complex on Android - I’m not sure what the minimum version of Android is required to run Chrome. The Google Play page for it doesn’t say.
First it depends where your content is running from. If it is Chrome browser, than you could safely say “almost everywhere”.
Android added support for OpenGL ES 2.0 on Android 2.2, and that is 7 years ago. It is very unlikely you will be able to find device with such old version today.
Native WebView was a bit slower to provide support for WebGL. And at versions 4.4 they’ve locked it’s version, and on Android 5.0+ they switched to Chromium as underlying implementation for WebView. This means all Androids with 5.0+ will support WebGL in WebView as well as in most browsers that do support WebGL.
Regarding hardware, this is pretty much same as for any other mobile games. Of course on older devices you will struggle running complex 3D graphics with many objects and sophisticated materials. This applies to WebGL and native games on mobile. So be reasonable with what to expect from specific hardware, pick your bottom line, and go from there.