Status of iOS and Metal backend

271 views
Skip to first unread message

Ring

unread,
Aug 15, 2020, 5:57:24 PM8/15/20
to angleproject
Hi. I'm interested in using ANGLE on iOS and Android for cross-platform mobile 3D graphics. (Especially for it's shader translator feature, so I don't need to write both Metal and GLSL shaders)

But in the project readme, it says Metal backend is still in progress. I wanted to get info about when will it work on iOS?

Geoff Lang

unread,
Aug 17, 2020, 10:58:46 AM8/17/20
to elgun...@gmail.com, angleproject
ES2 is pretty much complete, ES3 is still a work in progress. We expect to make regular progress on conformance though, at least until ES3 is finished.

If there is a critical feature missing, feel free to let us know. There is also ANGLE's ES backend which works on iOS in the meantime.

On Sat, Aug 15, 2020 at 5:57 PM Ring <elgun...@gmail.com> wrote:
Hi. I'm interested in using ANGLE on iOS and Android for cross-platform mobile 3D graphics. (Especially for it's shader translator feature, so I don't need to write both Metal and GLSL shaders)

But in the project readme, it says Metal backend is still in progress. I wanted to get info about when will it work on iOS?

--
You received this message because you are subscribed to the Google Groups "angleproject" group.
To unsubscribe from this group and stop receiving emails from it, send an email to angleproject...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/angleproject/4e5eca35-71fa-443c-bb55-7c467fc495a6o%40googlegroups.com.

elgun...@gmail.com

unread,
Aug 17, 2020, 3:50:34 PM8/17/20
to angleproject
Thanks for info. Is external textures (GL_TEXTURE_EXTERNAL_OES) supported? We want to use it for creating AR app, so streaming device camera's texture is needed for us.

Geoff Lang

unread,
Aug 17, 2020, 4:02:43 PM8/17/20
to elgun...@gmail.com, angleproject
I'm not familiar with how camera data is usually imported but we have the EGL_ANGLE_iosurface_client_buffer extension for importing iosurfaces.

Ken Russell

unread,
Aug 17, 2020, 4:43:34 PM8/17/20
to Geoff Lang, elgun...@gmail.com, angleproject
Note that ANGLE's OpenGL ES 3.0 backend works on iOS. It's being used for Safari's WebGL 2.0 implementation in https://bugs.webkit.org/show_bug.cgi?id=126404 . It doesn't have external texture support but does support EGL_ANGLE_iosurface_client_buffer. Any contributions integrating it better with the platform are welcome.

I'm not 100% sure whether new iOS App Store submissions are allowed to use OpenGL ES, but I think they still can.

-Ken



Ken Russell

unread,
Aug 18, 2020, 1:23:56 PM8/18/20
to St Iron, angleproject
The project in question was to implement WebGL 2.0. ANGLE supports creating WebGL-compatible OpenGL ES 2.0 or 3.0 contexts, which impose a significant number of additional constraints in areas like texture format support. These constraints are infeasible to implement outside of ANGLE; they essentially require replicating all of the OpenGL context metadata and validation, including textures' mipmap levels. ANGLE also integrates a large number of workarounds for bugs in OpenGL ES drivers (including some which are necessary on both iOS and Android) and exposes OpenGL ES 2.0 extensions which the driver doesn't, based on OpenGL ES 3.0 core functionality.

Even on platforms supporting OpenGL ES, ANGLE provides a more consistent and conformant OpenGL ES implementation. If a project on iOS switches to use ANGLE, then changing to use ANGLE's Metal backend when it's ready will be easy.

-Ken



On Tue, Aug 18, 2020 at 5:47 AM St Iron <stir...@gmail.com> wrote:
If only GLES 3.0 is used in your engine, why don't you use it directly without Angle on iOS and Android?

Ken Russell <k...@chromium.org> 于2020年8月18日周二 上午4:43写道:
Reply all
Reply to author
Forward
0 new messages