4 ms·
Is the existence of Metal a direct result of OPENGL failing to respond effectively to DirectX?
by spdegabrielle 6y ago
Is the existence of Metal a direct result of OPENGL failing to respond effectively to DirectX?
- akmarinov 6y agoI think the main reason for Apple to go with Metal was that OpenGL has a lot of legacy baggage that they didn't want to support with their custom hardware. And also being able to synergize hardware and software, which they love doing.
- greggman3 6y agoThere are arguably 3 equally valid reasons 1. You think you can do better whoever thinks they can do better and has the power to make it happen will. 2. To be able to control your own path Standards take forever to come to consensus. If you control it you can do whatever you want. 3. To lock developers into an API and therefore make it expensive to port. I'm sure there is plenty of software that would ship on more platforms if shipping on those other platforms was no work. This reason was brought up with Microsoft introduced DirectX. It's no different for Apple. I'm not saying either Microsoft or Apple are doing it for that reason but it's still a valid reason.
- simonh 6y agoI know I'm swimming against the tide on this, but I really don't think (3) is a significant factor. Apple knows very well that all the top tier games and graphics applications are going to be cross-platform. That's just a fact. They really can't afford to put significant road blocks in the way of getting those games and apps on to their platforms. That would be a massive foot gun. Also you can't with a straight face say on the one hand Metal makes is much easier to run an app or game across all Apple's platforms, and on the other argue it imposes an excessive cost on porting apps to their platforms. If I'm developing a top tier game and want to port it to MacOS and iOS, does Metal make it harder because it's different from the system on other platforms, which in reality were different enough in the OpenGL ES days anyway, or does it make it easier because I get access to all Apple's platforms in one go? It might make it harder in some very specific cases, but a lot easier in many others so it's really a wash.
- je42 6y agoI would say Roblox is a top tier game (counting the DAU) and they say it the investment was fine. Thus Apple did the right move - good api, good performance, fast to implement.
- greggman3 6y agoApple has iOS where AFAIK there are more games than Android. They're really happy if you adopt things like Swift, Metal, SpriteKit etc, because then you're unlikely to want to port to spend time to port to Android. Where as if you use OpenGL ES 3.0 your game, for the most part, your game just works. (having done both). I'm not advocating for OpenGL (yuck), just saying it's a real factor to use something portable vs not. Of course now-a-days most devs use an engine for which that's already taken care of but it certainly wasn't that way in the past when these types of complaints of lock-in came up for DirectX vs OpenGL and C# vs C/C++ etc. They're no less valid for Apple than Microsoft.
- simonh 6y agoOpenGL managed to back itself into multiple, mutually incompatible and backwaters on mobile and desktop at the same time. It also is still mired in an ancient architecture based on technical decisions made 25 years ago that just don't apply now, doesn't take advantage of modern GPU pipeline improvements and has issues with poor multithreading and asynchronous processing. This is why Metal managed to get 10x rendering performance. The other aspect is that openGL has nothing to offer when it comes to accelerated compute services to compete with CUDA. Apple needed a single solution across desktop and mobile, that could also provide a compelling alternative to CUDA and that didn't leave them dependent on anyone else.