iOS platform support for Metal ETA

208 views
Skip to first unread message

Robert Saget

unread,
Feb 17, 2021, 1:17:06 PMFeb 17
to angleproject
I've been tinkering around with the fork of ANGLE in the metalANGLE project (a fork of ANGLE: https://github.com/kakashidinho/metalangle). I think I have it working.

Any timeline or ETA on when ANGLE will supply platform support for iOS? The main page lists OSX as "in progress" and iOS as "planned".

Trying to figure out whether i should keep tinkering with metalANGLE or perhaps wait 6 months for ANGLE?

Thanks in advance!

Thomas Burkhart

unread,
Feb 17, 2021, 1:33:01 PMFeb 17
to angleproject
Hi,
I would be highly interested in getting more information on your findings as I want to use metalangel too.

Quyen Le

unread,
Feb 19, 2021, 8:31:59 AMFeb 19
to angleproject
Hi,
MetalANGLE and ANGLE mostly share the same Metal back-end's code atm. The only differences are:
  1. MetalANGLE's code of other backends (Vulkan, etc) are quite out of date compare to current ANGLE's. If other back-ends are not main concerns, this could be ignored.
  2. MetalANGLE can be built on iOS via Xcode project. ANGLE currently uses gn build scripts and it used to not support iOS in the past. There were some efforts to enable gn build scripts to compile for iOS simulator recently if I recall correctly.
  3. MetalANGLE & ANGLE already have automated tests to verify the Metal back-end on macOS. There are no automated tests on iOS platform yet, hence on ANGLE readme file, it still lists iOS support as "planned". However, the Metal back-end's code is mostly the same between macOS & iOS.
  4. MetalANGLE has Objective-C API to setup OpenGL context and integrate with iOS window's UI layers. This won't be upstreamed to ANGLE though. However, the two have the same lower level EGL API to setup GL window & context. MetalANGLE's Objective-C API is just a wrapper of this EGL API.
I believe if you want to try out ANGLE on iOS, you can use MetalANGLE atm. If 6 months later ANGLE officially supports iOS, you can switch to it if you want because on OpenGL API's point of view, there is no difference between the two.
The only problem is if you use MetalANGLE's Objective-C API to setup GL context, you will have to switch to use EGL API in the code instead. The better way could be using EGL API even if you use MetalANGLE, then later when switching to official ANGLE, you don't have to change any code.

Quyen Le

unread,
Feb 19, 2021, 8:36:55 AMFeb 19
to angleproject
Oh, btw, there is also one more difference between MetalANGLE & ANGLE: MetalANGLE implements a custom extension to support importing Metal native texture to its GL context.
https://github.com/kakashidinho/metalangle/blob/master/extensions/EGL_MGL_texture_client_buffer.txt
This hasn't been upstreamed yet. I know official ANGLE currently has no need for this extension, but it could be useful for some users.

Ken Russell

unread,
Feb 24, 2021, 1:45:43 AMFeb 24
to Quyen Le, angleproject
We're actively collaborating with Apple on ANGLE's Metal backend. They're building on Quyen's tremendous work (thank you again Quyen!) and pushing for full OpenGL ES 3.0 conformance. This backend will support iOS.

There's going to be a quite large reconciliation of their work with Quyen's in the coming couple of months which I and others are going to help out with.

My recommendation would be to hold off a bit and wait until ANGLE's Metal backend has iOS support.

-Ken



--
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/02f9194f-841c-4620-8974-1ed71d4dc0dfn%40googlegroups.com.

Robert Saget

unread,
Feb 24, 2021, 5:21:40 PMFeb 24
to angleproject
Thanks for the update Ken. And thanks Quyen!.

John O'Connor

unread,
Jun 24, 2021, 2:12:32 PMJun 24
to angleproject
It's been a few months but the github project does not indicate iOS metal support yet. Any movement on this? Is there a revised ETA?

Ken Russell

unread,
Jun 24, 2021, 2:37:45 PMJun 24
to john...@gmail.com, angleproject
The authoritative repository for ANGLE is https://chromium.googlesource.com/angle/angle . Upstreaming of Apple's direct-to-Metal backend is actively underway in https://bugs.chromium.org/p/angleproject/issues/detail?id=5505 . We do not have an ETA for when this will be complete. This work is dovetailing with Apple's work on ANGLE's Metal backend in the WebKit repository, and both teams aim to converge on a common source base.

-Ken



Robert Saget

unread,
Jun 24, 2021, 7:23:54 PMJun 24
to angleproject
Thanks for the update Ken.  I've been checking bi monthly for major updates. Apple hasn't pulled the plug on the OpenGL yet but I feel impending doom.

Robert Saget

unread,
Oct 11, 2021, 11:17:10 AM (9 days ago) Oct 11
to angleproject
Any update on ANGLE Metal backend support? I've got a a very light homegrown adapter I've been using but I need additional functionality. Debating whether (1) to burn some time updating my adapter, (2) take a stab at bringing in Quyen's adapter or (3) holding off for ANGLE to get support.

I've been trying to follow along progress with the following CRs, but its not real clear to me what the status is or how well things are going:
1. https://bugs.chromium.org/p/angleproject/issues/detail?id=5505 
2. https://bugs.chromium.org/p/angleproject/issues/detail?id=6394
3. https://bugs.chromium.org/p/angleproject/issues/list?sort=status%20priority&q=Renderer%3D%22Metal%22&can=1

Any update on progress/ETA would be appreciated so I can make a more informed decision. Thanks.

Ken Russell

unread,
Oct 11, 2021, 5:45:23 PM (8 days ago) Oct 11
to rsore...@gmail.com, angleproject
Hi Robert,

This is being actively worked on by engineers from both Apple and Google. The top level bug is still:

You can see there is a fairly large bug tree associated with it. There's a lot of ongoing activity on bugs deeper in the tree.

I think perhaps the easiest way for you to keep tabs on the project is to make a saved query like:

Project(s): angleproject
Query: All issues
Renderer=Metal
Subscription options: Notify immediately

This is available by clicking on your logged-in name in the upper right corner of ANGLE's issue tracker, and selecting "Saved queries" from the drop-down.

We don't have a firm ETA for the completion of this work but are aiming to get it done as soon as possible - definitely before the end of Q4.

-Ken



Screen Shot 2021-10-11 at 2.42.34 PM.png

Robert Saget

unread,
Oct 13, 2021, 1:30:16 PM (7 days ago) Oct 13
to angleproject
Hi Kenneth,
Thanks for the update and tips. Based on that info it seems like its in my best interests to wait a few more months since you think the Metal ANGLE work will be completed by then.

Reply all
Reply to author
Forward
0 new messages