Inside Metal: How Apple plans to unlock the secret graphics performance of the A7 chip

124

Comments

  • Reply 61 of 94
    bicubicbicubic Posts: 17member
    Quote:
    Originally Posted by eggimage View Post



    I've gotta say it's the best article I've seen in a while

    I'd second that. I'll also be interested to see when the market wakes up to the high value of such strategies and not just the obvious hardware releases. Now I'm understanding some of the smiles I see. Great article.

  • Reply 62 of 94
    Pre-compiling shaders should mean less work to do at runtime and therefore better battery life%u2026unless I've missed something :)

    You can also bet the farm that the fruity ones are working on new battery technologies. Good thing we're not using sealed lead-acid batteries like the original Mac Portable did.
  • Reply 63 of 94
    ash471ash471 Posts: 705member
    Quote:
    Originally Posted by auxio View Post

     

     

    I believe it's possible to do both if you design it right.

     

    Any software architect worth their salt knows that you start with high-level generic ideas for your overall architecture and then work on the specific implementation details afterwards.  And it's not like Apple is creating a whole new type of hardware component here: GPUs are pretty well-defined now.  Some are obviously more capable than others, but the overall architecture is the same.  So it should be possible to come up with a high-level architectural specification which could be applied to any modern GPU (the open part).

     

    Then Apple would simply implement that specification for they're own GPU(s) (the proprietary part).  Anyone else who wants to provide compatibility for their particular platform would need to do the same (implement it according to the specification you provided).  The benefit here is that, if enough platforms did this, game developers then simply need to create their games to match the common API specification, and they'll work on all platforms which have implementations of it (like OpenGL).


    If what you say it true (and it may be), then the open standards should be able to create their own version of Metal that makes it relatively easy for programers to use either architecture.  And why should Apple make the effort to implement such a standard?  It would have taken three times as long to get it done and everyone would be bitching about how Apple is trying to get everyone to do it their way.  Apple was right to just implement it themselves. The Android community can fend for itself.

  • Reply 64 of 94
    nolamacguynolamacguy Posts: 4,758member
    Quote:

    Originally Posted by Inkling View Post



    If this graphics power is coming at the expense of battery life, and it almost certainly is, then perhaps it's time for Apple to introduce EL (for Extended Life) versions of its mobile devices for gamers. A bit of added thickness wouldn't be hard to engineer and that added space could perhaps double battery life.

     

    not how apple rolls, and isnt going to happen. you can get an aftermarket battery-case to do exactly that, tho.

  • Reply 65 of 94
    Quote:
    Originally Posted by ecs View Post





    Yeah, sure, "openness"... changing the current Apple direction by abandoning standards and going proprietary APIs and languages is called "openness". Last year we were told at the WWDC that we _should_ be using OpenCL. Now we're told the future is called Metal. Don't be fooled, the A7/A8 could get from a properly optimized OpenGL/OpenCL implementation the same performance benefits, or higher, than Metal. The only reason Apple introduced proprietary stuff now is to fight against Google using the same dirty tricks as Google is using.



    I think I'll step at a side in the Apple-Google fight. In the meantime I'll continue to use standards.



    I would disagree. Yes, they did introduce Metal. But they also did introduce WebGL.

     

    OpenCL up to 1.2 has a major drawback - it does not support memory sharing between CPU and GPU (what AMD calls Heterogeneous System Architecture). That means each OpenCL memory allocation must be in a separate physical area not accessible by the CPU leading to large amounts of memory copy operations. That makes a lot of sense for PCs with a GPU having its own video memory, but is impractical, even counter-effective in SoCs.

     

    I'm sure once OpenCL 2.0 is official, Apple will introduce it in iOS as well. In the mean time, Metal is the way to go.

     

    Also, why do you think AMD introduced Mantle? They are well known to have been introducing custom OpenGL extensions for years. But they finally chose to introduce Mantle. Don't make it all about Apple when it's really not.

  • Reply 66 of 94
    Unity is an example of software that can opt to use Metal to optimize performance on the A7. It currently does not, so developers using it and other middleware to reach cross platform audiences can choose to wait for that to happen or choose to roll their own optimizations.

    Contribute your own comments (even corrections) without assuming to know everything that anyone else is thinking or aware of.

    In your article you used Unity as an example of a good reason many game developers won't use metal. You can read the paragraph again and see it. You said, don't worry, people won't abandon OpenGL or other sdk's, because they still want to reach a wider audience. But for those who want to use metal.... They will stand out in the App Store.

    I was saying, Unity will use metal. Apple isn't necessarily using metal to get developers to make iOS only games - they worked with unity to get Metal in their system. That means they're ok with making the same games that use Metal available on other platforms. So, the real reason they're using Metal is to get better graphics onto their products. People should give apple kudos for leaving the door open for other platforms. As far as stating my opinion like its fact, I think that's something we all do, including you.
  • Reply 67 of 94
    Dan_DilgerDan_Dilger Posts: 1,583member
    Quote:
    Originally Posted by auxio View Post

     

     

    So just make it an entirely new open SDK -- no OpenGL required (call it OpenMetal).  It _could_ be implemented using OpenGL if someone chooses to do so, but it doesn't need to be.

     

    Look, I know everyone believes there's some technical reason instead platform lock-in here, but I don't really see it.  And that's fine, Apple is gambling that their platform is strong enough now that they don't need to go the open standard route (as they typically did in the past with OS X).  Time will tell if enough game developers are willing to lock in, or whether someone will take a look at what they did with Metal and create a similar open technology (which will become the standard).


     

    I don't think you're looking at what Metal actually is. It is not a Direct3D-like, proprietary copy of OpenGL intended to run *nix out of business. It is an optimized API for a specific chip designed to maximize GPU performance and CPU efficiency. None of the value of Metal can be "implemented in OpenGL," because the entire point of OpenGL is to support a wide variety of different GPU architectures. 

     

    You think you see "lock-in," but you're really just carried away with the most cynical take possible on why Apple is trying to solve problems that developers currently have when working on mobile devices. OpenGL carries lots of legacy baggage. Anyone who wants that sort of "solution" can keep using it, and lots of people will for various reasons. And Apple is working to deliver the best OpenGL implementation at the same time as it is building an optimized, highly efficient alternative in Metal. 

     

    Your dream goal of "someone" building an "open technology" standard based on Metal makes no sense, because nobody else in the industry has a business model that supports building mobile devices with advanced graphics. The "open standard" for mobile quickly shifted from Java Mobile to Android, and neither of those platforms were intended to deliver anything great. They are all minimal environments intended only for cross platform, low cost development.  

     

    Quote:

    Originally Posted by auxio View Post

     

     

    See my other post.  Just don't base on OpenGL then.  Compiling high-level code to GPU-specific code and uploading it to a GPU is nothing new. There is an abstraction to be had here (with tweaks for each GPU).

     

    Do you understand what this means? You're going to deliver a separate binary for each GPU architecture and version for both Android and Windows Phone? That makes no sense whatsoever. 

     

    Not at all.  Why does one need a governing body to publish an open standard?  Just put it out there and let a community form around it.

     

    That doesn't work. Look at what just happened with OpenSSL. Look at what Google does to standards it appropriates: it forked WebKit! That's no different than Microsoft's "embrace and extend" practice of taking Netscape and Java and making slightly incompatible versions it could then control.  

     

    See above for the first part.  Cocoa came out of NeXT, and there are plenty of open specs related to the parts which make it up.  Look up the Cocotron project for an example of another implementation of Cocoa which works across platforms.

     

    Android "came out of Java Mobile" too, but that doesn't mean they are compatible in any meaningful way. IE from the same Spyglass code as Netscape didn't solve compatibility issues for even the web browser. There is no cross platform Cocoa. There's not even full compatibility between distant versions of OS X!

     

    So just make a small portion of the spec open (and leave a lot of the implementation details to the proprietary part).  That way you don't get bogged down in bureaucracy anytime you want to move forward.  Also, Apple could do the same thing they do with WebKit to keep things moving at the pace they need.


     

    If what you describe were possible or functional, people would be doing that. Sounds a lot like Communism. Works great in the minds of intellectuals until they start tying to make it work, and the reality kicks in about how the real world works. 

  • Reply 68 of 94
    Dan_DilgerDan_Dilger Posts: 1,583member
    Quote:

    Originally Posted by ecs View Post

     

     

    Nope. Microsoft didn't "beat" QuickDraw3D (Apple chose OpenGL rather than Direct3D for replacing QD3D, and not because it was "beaten", but because OpenGL was a industry standard that everybody needed to support).

     

    Also, AltiVec wasn't "beaten" by anybody. It's just Apple who decided to drop it on their platform after having convinced all developers that they needed to use it if they wanted the best performance in Macs.

     

    And Cocoa is not what I call "proprietary" (at least it's not what I call nonstandard). When something is so good you really need to use it, and besides you also have it on other platforms, I consider it's a standard.

     

    We could go on arguing on this for a year. But then Metal and Swift will be stuff from the past and nobody will remember this WWDC (or at least these technologies).


     

    QuickDraw 3D wasn't going anywhere after 3 years. GPU vendors weren't going to support it because Microsoft was getting all of the attention due to its overwhelming market power. That's why Apple dropped it. Nobody "needed" to support OpenGL. It was successfully dying due to Microsoft's efforts with Direct3D.

     

    Apple didn't drop Altivec, it moved from PowerPC to Intel. Altivec is the brand name of PowerPC's implementation of SIMD. 

     

    "Proprietary" does not mean "nonstandard," it means that its owned (and controlled) by a single party. There are plenty of proprietary standards, some of which are more or less "open" in terms of how easy or cheap they are to implement. H.264 is considered open rather than proprietary because everyone contributes to it except Google. But Google calls it proprietary because Google can't do whatever it wants with it or use it without licensing. USB and Lightning are both proprietary, but anyone can license them from Intel or Apple. MSFT Office is considered a standard for lots of businesses, but its only on the platforms Microsoft wants it to be.

     

    Your notion of what words mean is not as important as what everyone else in the industry means when they use a particular word. 

     

    I don't need to argue with you at all. I'm just pointing out facts. You are free to think whatever you like. 

  • Reply 69 of 94
    Dan_DilgerDan_Dilger Posts: 1,583member
    Quote:

    Originally Posted by daveinpublic View Post





    As far as stating my opinion like its fact, I think that's something we all do, including you.

     

    State your opinion as fact if you think it is. 

     

    But don't tell other people what they think, because just because you can form a leap of logic doesn't mean you are right. And it's unfair to argue both sides of an argument. That's the idea behind attacking a strawman.

     

    Yes, once Unity and other cross platform frameworks implement Metal, it will make Metal's A7 optimizations broadly available to developers, even those without the desire or resources to implement Metal on their own. 

  • Reply 70 of 94
    crowley wrote: »
    Metal rock? Is that like hippity-hop?

    Ya don't stop.
  • Reply 71 of 94
    flaneur wrote: »
    ahmlco wrote: »
    I'm sure that people who are sitting in front of consoles prefer consoles. That said, you're not always sitting in front of an 80" screen, are you?

    I'm assuming you'll soon be wearing left and right 80" (virtual) screens on your face. Then all bets about content are off.

    No.
  • Reply 72 of 94
    State your opinion as fact if you think it is. 

    But don't tell other people what they think, because just because you can form a leap of logic doesn't mean you are right. And it's unfair to argue both sides of an argument. That's the idea behind attacking a strawman.

    Yes, once Unity and other cross platform frameworks implement Metal, it will make Metal's A7 optimizations broadly available to developers, even those without the desire or resources to implement Metal on their own. 

    You mention that I'm attacking a straw man, I guess you're right cause you seem to be grasping at straws. We know Unity hasn't implemented it yet, that's because iOS 8 isn't out yet. Reading your article again, it says that you can either use Unity to target many platforms, or use Metal for great performance. I just wanted to make sure your readers knew that they can do both. I think they said unity is supporting metal right in the WWDC video. Many people here seem upset that apple would create a proprietary API that locks developers in, they probably got much of that from reading the article, which says: make games beautiful with Metal for iOS only, or use Unity and other sdk's. You may want to edit that portion of the article.
  • Reply 73 of 94
    richl wrote: »
    stuffe wrote: »
     
    Is Direct X (any version) a rival?  I don't see any particular competition between a commodity phone, and a PC really.  Yeah, they are both doing the same thing, but for very different audiences.  You'll never see DX on any mobile OS, just as you will never see Metal anywhere outside of the Apple ecosystem, and people are more likely to choose both than choose one between them.

    DirectX is available on Windows Phone, with DirectX 12 available next year. However, I'm talking about rivals in terms of technology leadership. Metal isn't the first graphics API to take that approach that it does. A bit of context would be useful. 

    While I'm not smart enough to argue if one solution or the other is superior in performance - I'd wager that Apple's HW/SW solution runs cooler and longer on a battery.
  • Reply 74 of 94

    Apples forward thinking and consistent delivery of great products and better ways of doing thing is why I am proud to keep buying from them. How many other companies do this for their developers and customers? I think Apple is safe with Tim, all the naysayers should hopefully start to disappear.

     

    I was thinking of updating my PS3 soon but I may just wait to see what comes out of Apple in September/October, looks like great things are about to come out of Cupertino and I want to be on that bandwagon.

  • Reply 75 of 94
    inkling wrote: »
    If this graphics power is coming at the expense of battery life, and it almost certainly is, then perhaps it's time for Apple to introduce EL (for Extended Life) versions of its mobile devices for gamers. A bit of added thickness wouldn't be hard to engineer and that added space could perhaps double battery life.
    Also, this graphics power has other uses, particularly in medicine, engineering and the sciences. It'd be great if Apple's devices could make it though a long and busy work day without the battery rolling belly up.


    Wouldn't you mostly be in a house with a large tv screen air playing the game? You know, where you can plug in or recharge your device. I imagine a significant amount of planning went in to minimize power wastage though, just like all apple portables.
  • Reply 76 of 94
    Dan_DilgerDan_Dilger Posts: 1,583member
    Quote:

    Originally Posted by daveinpublic View Post





    You mention that I'm attacking a straw man, I guess you're right cause you seem to be grasping at straws. We know Unity hasn't implemented it yet, that's because iOS 8 isn't out yet. Reading your article again, it says that you can either use Unity to target many platforms, or use Metal for great performance. I just wanted to make sure your readers knew that they can do both. I think they said unity is supporting metal right in the WWDC video. Many people here seem upset that apple would create a proprietary API that locks developers in, they probably got much of that from reading the article, which says: make games beautiful with Metal for iOS only, or use Unity and other sdk's. You may want to edit that portion of the article.

     

    Also read this paragraph: 'The decision to support Metal isn't necessarily all or nothing; the A7 installed base is already large enough to be able to entice developers to create a Metal-enhanced port of their existing titles to offer an optimized version for A7-equipped devices."

     

    Nobody is getting the idea of a "proprietary API that locks developers in" from reading the article. Concern trolls are dragging that out on their own from their toolbox of cliche Apple complaints.

  • Reply 77 of 94
    asciiascii Posts: 5,941member

    3D graphics are so complicated these days that most game developers use off the shelf engines rather than rolling their own. That has two implications:

    1. Metal might very well be a success, because Apple does not need to convince many individual developers to switch to it, just a handful of 3D engine vendors. And they already had some of these guys on stage at WWDC.

    2. Apple's goal can not be platform lock-in, since games are written to the engines, which can use DirectX, OpenGL, Mantel or Metal or whatever underneath.

     

    Another type of software that makes heavy use of 3D APIs is CAD type programs, and they certainly don't use game engines. But it's the same deal: these programs are so technically complex to write, that there's only a few such companies making them. So Apple has a real chance of approaching them all one-on-one and selling the benefits of their API. Not that any such programs are moving to tablets any time soon, but in the long term maybe.

  • Reply 78 of 94
    eckerguseckergus Posts: 96member
    ctmike78 wrote: »
    Not sure how there are still doubters, but everything in this article shows that Apple is laying the groundwork for future A"x" based MacBooks and iMacs... A9 is only a year away. Metal will make it work.

    Excellent observation!
  • Reply 79 of 94
    dickprinterdickprinter Posts: 1,060member
    Quote:

    Originally Posted by SolipsismX View Post





    Interesting.

    Spock, is that you?

  • Reply 80 of 94
    relicrelic Posts: 4,735member
    Also read this paragraph: 'The decision to support Metal isn't necessarily all or nothing; the A7 installed base is already large enough to be able to entice developers to create a Metal-enhanced port of their existing titles to offer an optimized version for A7-equipped devices."

    Nobody is getting the idea of a "proprietary API that locks developers in" from reading the article. Concern trolls are dragging that out on their own from their toolbox of cliche Apple complaints.

    Where did you get that notion from, it's extremely obvious that Metal will be available to those developers who want to use it but defiantly won't be required. Nvidia does the same thing with their mobile GPU's, they offer libraries and other low level programing enhancements that greatly improves performance, offer advanced shaders, FAA, etc. Example; Stream uses these enhancements in order to run games like Doom 3 and Half Life 2 on tablets or handhelds with the Nvidia Tetra 4 and K1 processors.

    By the way I wasn't comparing the Nvidia Tegra 4 or K1 to the A7 with Metal, just saying that their are enhancements available to programmers like the A7, developers aren't required to use them but their available to those who want to use the full potential of the hardware.
Sign In or Register to comment.