Slashdot Mirror


Vulkan Graphics is Coming To macOS and iOS, Will Enable Faster Games and Apps (anandtech.com)

The Khronos Group, a consortium of hardware and software companies, has announced that the Vulkan graphics technology is coming to Apple's platforms, allowing games and apps to run at faster performance levels on Macs and iOS devices. From a report: In collaboration with Valve, LunarG, and The Brenwill Workshop, this free open-source collection includes the full 1.0 release of the previously-commercial MoltenVK, a library for translating Vulkan API calls to Apple's Metal 1 and 2 calls, as well LunarG's new Vulkan SDK for macOS. Funding the costs of open-sourcing, Valve has been utilizing these tools on their applications, noting performance gains over native OpenGL drivers with Vulkan DOTA 2 on macOS as a production-load example. Altogether, this forms the next step in Khronos' Vulkan Portability Initiative, which was first announced at GDC 2017 as their "3D Portability Initiative," and later refined as the "Vulkan Portability Initiative" last summer. Spurred by industry demand, Khronos is striving for a cross-platform API portability solution, where an appropriate subset of Vulkan can act as a 'meta-API'-esque layer to map to DirectX 12 and Metal; the holy grail being that developers can craft a single Vulkan portable application or engine that can be seamlessly deployed across Vulkan, DX12, and Metal supporting platforms.

94 comments

  1. Overwatch for macOS by Anonymous Coward · · Score: 0

    does this mean that we finally are going to get Overwatch for macOS?

  2. Can someone explain Vulkan? by halivar · · Score: 1

    Is it an API akin to CryEngine/Unreal/Unity? If so, why is it better than the ones we already have? Google provided a lot of information, but I'd like a Cliff's Notes.

    1. Re:Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      It is like the OpenGL API, except even more lower level (more control at the expense of more code and complexity). It was designed to compete with DirectX.

    2. Re:Can someone explain Vulkan? by furry_wookie · · Score: 4, Informative

      More like its an better cross-platform open alternative to OpenGL or DirectX. Sort of a next-gen OpenGL.

      Basically, Vulcan is a better and more modern alternative to DirectX than OpenGL with many of the benefits of OpenGL such as cross-platform, portable, open, etc. but easier to use than OpenGL, and better performance as good or better than DirectX.

      --
      -- Given enough time and money, Microsoft will eventualy invent UNIX.
    3. Re:Can someone explain Vulkan? by K.+S.+Kyosuke · · Score: 3, Informative

      Among other things, 1) it plays nicely with machine CPU threads, 2) it supports a standardized binary intermediate language for GPU-run code, freeing you from constraints of having to use any particular language, 3) it supports both graphical AND computational tasks running such code within a single API.

      --
      Ezekiel 23:20
    4. Re:Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      And most importantly, if it takes root we will finally see the death of Windows as a gaming platform, and I can finally scrape it off my hard drive.

    5. Re: Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      Sure.. that's going to happen.

    6. Re:Can someone explain Vulkan? by TheFakeTimCook · · Score: 0

      Is it an API akin to CryEngine/Unreal/Unity? If so, why is it better than the ones we already have? Google provided a lot of information, but I'd like a Cliff's Notes.

      Oh, GOOGLE. Nevermind.

      It won't be around long enough to get out of Beta.

    7. Re:Can someone explain Vulkan? by halivar · · Score: 1

      Thanks! I looked at their website and noticed that the "supported engines" list included CryEngines, UX3D, Unity, Unreal, and Source. Does this mean these engines already use Vulkan instead of OpenGL, or that they can be configured to do so by the developer?

    8. Re:Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      Wait, easier to use than OpenGL?

    9. Re:Can someone explain Vulkan? by abies · · Score: 1

      Vulcan is [...] easier to use than OpenGL

      Can you expand on that? My impression was that it is considerably harder to use correctly than OpenGL.
      From wikipedia article (emphasis mine),
      "NVIDIA notes that OpenGL is still a great option for a lot of use cases, as it does come at a much lower complexity and maintenance burden than Vulkan"

    10. Re:Can someone explain Vulkan? by erapert · · Score: 3, Insightful

      ...easier to use than OpenGL...

      I only want to clarify one thing: Vulkan is not easier ot use than OpenGL.

      In fact Vulkan is much much more difficult and requires much much more setup. Vulkan is capable of being faster than OpenGL because Vulkan enables multi-threading the rendering commands rather than computing all the rendering commands in a single thread as OpenGL does it.

      The reason Vulkan is more difficult to use compared to OpenGL is precisely because setting up a multi-threaded renderer is much more tricky to get right and requires way more in the way of boilerplate and you-just-have-to-already-know-what-you're-doing scaffolding in order to get places. Vulkan is much lower-level than OpenGL.

      This post helps explain.

    11. Re:Can someone explain Vulkan? by technosaurus · · Score: 1

      Its not a google API ... that's just where they got their data... its from khronos, same as openGL

    12. Re:Can someone explain Vulkan? by Misagon · · Score: 1

      Vulkan, DirectX 12 and Metal are low-level APIs compared to OpenGL or DirectX 11. They remove aspects of hardware abstraction, exposing more of the structure of the hardware, allowing the resources to be used more efficiently.

      The downside is that they are harder to write software for. Most games are running on top of a ready-made game engine anyway and that could have been targeted to the low-level API.

      Vulkan is the successor to AMD's proprietary Mantle API which is now deprecated in favour of Vulkan. That Wikipedia article mentions how Mantle is different to OpenGL and I think most of those points apply to Vulkan as well.

      --
      "We mustn't be caught by surprise by our own advancing technology" -- Aldous Huxley
    13. Re:Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      Read: NVidia didn't/doesn't want to play nice with AMD during drafting and early revisions, thus still pimp OpenGL with claims of lower "complexity" and "maintenance" because any tool chain update is a non-zero cost and they sure as shit ain't gonna bother to update their dev kits themselves.

    14. Re:Can someone explain Vulkan? by K.+S.+Kyosuke · · Score: 3, Interesting

      But comparing Vulkan to OpenGL may be a little bit like comparing Xlib+X Toolkit Intrinsics against XCB. You get less stuff done for you but at least you can *finally* implement it correctly.

      --
      Ezekiel 23:20
    15. Re: Can someone explain Vulkan? by Type44Q · · Score: 1

      CryEngine/Unreal/Unity?

      Dude, those aren't API's; those are game engines/development kits.

    16. Re:Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      Moron. Google has nothing to do with it. Maybe if you were not so quick to hate anything non-apple you would not appear so stupid.

    17. Re:Can someone explain Vulkan? by higuita · · Score: 1

      no, it is low level

      vulkan, metal and direct3d12 are almost the same in the way they work, this mostly maps the differences between then (translate vulkan calls to other calls) , so you can build in vulkan and run vulkan, metal and direct3d12 (probably mostly for xbox, as you can run vulkan directly in windows)

      --
      Higuita
    18. Re: Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      No, Opengl is really just easier to use. Vulkan may be good for super rich shops, but sure as hell debilitating for smaller projects.

    19. Re:Can someone explain Vulkan? by erapert · · Score: 1

      That's a good way of putting it.

    20. Re:Can someone explain Vulkan? by Kjella · · Score: 2

      Thanks! I looked at their website and noticed that the "supported engines" list included CryEngines, UX3D, Unity, Unreal, and Source. Does this mean these engines already use Vulkan instead of OpenGL, or that they can be configured to do so by the developer?

      Configured to do so, game engines generally try to abstract away the underlying graphics system for game developers. In fact you might say the rise of a few dominant game engines is the main reason why we now make drivers with low-level access. To attempt to very briefly recap history:

      1. All graphics card did their own thing
      2. Some standards emerged, primarily OpenGL and DirectX.
      3. Game developers built directly on OpenGL/DirectX
      4. OpenGL had an early lead but Microsoft made DirectX dominant
      5. Game engines increase in complexity, do much more than graphics
      6. Most game developers develop on top of a game engine
      7. Game engine developers want more direct access to hardware
      8. DirectX12/Vulkan/Metal (and also Mantle, now dead) offer lower level access

      You could say the market flipped, through most of the 90s and 00s game developers definitively wanted the OS to do more so they could do less and develop games faster. But as the market matured they didn't want just a graphics stack, they wanted a whole game engine they could fill with content. And the abstractions the OS makers had made became more of a hindrance than an aid to game engine developers, they wanted to do their own low level code and create abstractions that integrated better with their engine.

      Another way of putting is also that on the CPU side you have assembler. Granted there's a few flavors like x86, ARM and PowerPC but they all have very basic operations like 2+2. Graphics never had a really low level language like that, they implemented higher level constructs all their own way. Much of that is because a lot of early graphics card was fixed function, it's only in modern times they have become programmable mini-processors. And this is kinda their assembler-level language.

      --
      Live today, because you never know what tomorrow brings
    21. Re: Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      I mean, there isn't even a teapot primitive in Vulkan.

    22. Re:Can someone explain Vulkan? by gman003 · · Score: 4, Informative

      Vulkan is easier to use properly than OpenGL. OpenGL is designed around an architecture that no longer exists - no graphics chip made in the past two decades was strictly fixed-function. And because *every* modern graphics feature is an optional extension to OpenGL, every OpenGL program that wants to take advantage of, say, programmable shaders or compressed textures, has to spend a few hundred lines of code telling the drivers and runtime that yes, it knows what a fucking shader is and can you please let me use them now? Compare modern OpenGL to Direct3D 11 - features nobody actually uses (like fixed-function lighting) are removed, features everyone has (like shaders) are built-in, and while a basic demo *is* a few hundred lines of C, it's much more grokkable. And D3D11 has options for compatibility down to D3D9FL1 (GeForce 5000, GMA 900, Radeon 9000 series) hardware - you can code to D3D11 and still run on older hardware if you limit yourself to certain features or make the right fallback options.

      OpenGL is easier to use for basic demos but is harder to use in practice. In particular, optimizing OpenGL is sheer madness, because everything is abstracted. You're basically just rearranging stuff to figure out how to make the drivers generate the right code. Whereas on Vulkan you actually interact with the API in the same way the hardware works - you ask a special malloc() for memory on the GPU, put some data in it, then tell your vertex shader how to interpret that data as triangles, then tell your pixel shader how to turn those triangles into pixels. It only looks like more code if you were relying on OpenGL defaults instead of explicitly coding what you're doing. Since very few apps do Gouraud-shaded, fixed-light, untextured rendering anymore except for graphics API tutorials, any practical program in Vulkan will be easier to write than the equivalent OpenGL program.

      What Vulkan does is make trivial stuff harder, but hard stuff easier. You can write a multi-threaded OpenGL renderer, I believe, though I've never been masochistic enough to try. It's easier on Vulkan - still not trivial, but what multithreaded code is?

    23. Re: Can someone explain Vulkan? by OrangeTide · · Score: 1

      Vulkan is good if you're writing an engine. And most apps are using an engine rather than doing all the low level details themselves. This makes sense because at some layer what you really want is game logic that plugs into a scene graph, not game logic jumping directly to rendering.

      What news about Vulkan really translates to is that Unity, Unreal Engine, etc are going to be faster on platforms that support Vulkan. Games that use these frameworks benefit. The developers who roll their own engine probably won't be able to invest in switching to Vulkan/ But that's OK, because OpenGL is no slouch either.

      --
      “Common sense is not so common.” — Voltaire
    24. Re:Can someone explain Vulkan? by OrangeTide · · Score: 1

      A great analogy. For the 20 or so people on /. that program xlib, Xt, and XCB. (I think Xt is throughly dead, and I should probably send my book collection to recycle)

      --
      “Common sense is not so common.” — Voltaire
    25. Re:Can someone explain Vulkan? by K.+S.+Kyosuke · · Score: 1

      And about 20 or so people will program in raw Vulkan, too, probably.

      --
      Ezekiel 23:20
    26. Re:Can someone explain Vulkan? by edxwelch · · Score: 1

      Multithreading is hard to implement, but you don't need to use multi-threading to get better performance. Draw calls have much lower overhead and then validation is done in a layer that is swiched off in release. That alone will get better performance. There are a lot of hidden work getting OpenGL to get performance. For instance, batching - I spent so much development time on this it's unreal. Those problems disappear in Vulkan, because of the low overhead.

    27. Re:Can someone explain Vulkan? by exomondo · · Score: 1

      Basically, Vulcan is a better and more modern alternative to DirectX than OpenGL with many of the benefits of OpenGL such as cross-platform, portable, open, etc. but easier to use than OpenGL, and better performance as good or better than DirectX.

      It's certainly not easier to use than OpenGL, with Vulkan you must do a LOT of the things yourself that OpenGL does for you. Just writing a simple 'hello triangle' example in Vulkan is massively more complex than OpenGL: think of the OpenGL versions as a simple C hello world, you end up using a printf to write to the screen but behind the scenes that printf does a massive amount of stuff. Writing a Vulkan version is like having to write all that stuff that printf does.

    28. Re:Can someone explain Vulkan? by Pseudonym · · Score: 1

      Motif is alive and kicking, especially in commercial engineering software. Ever used ANSYS?

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    29. Re:Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      "Tell him he's dreamin'."

      OpenGL has always been open and always available everywhere. DirectX has only ever existed on Windows and Xbox and yet the gaming world is still infected with it.

    30. Re:Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      Wait, easier to use than OpenGL?

      The OpenGL Fixed Function Pipeline is a nightmare.

      Since OpenGL 3 you're meant to be using the Shader Pipeline, but it still has a lot of boilerplate code you need to wade through before you can even get to a drawing context. And you still have to deal with the different texture compression schemes supported by different card manufacturers - unless you're happy with uncompressed textures causing host-GPU bottlenecks, etc.

      Neither of these issues is unique to OpenGL... DirectX 9+ is just as bad here, maybe slightly worse.

    31. Re:Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      Whereas on Vulkan you actually interact with the API in the same way the hardware works - you ask a special malloc() for memory on the GPU, put some data in it, then tell your vertex shader how to interpret that data as triangles, then tell your pixel shader how to turn those triangles into pixels. It only looks like more code if you were relying on OpenGL defaults instead of explicitly coding what you're doing. Since very few apps do Gouraud-shaded, fixed-light, untextured rendering anymore except for graphics API tutorials, any practical program in Vulkan will be easier to write than the equivalent OpenGL program.

      Nothing you've said there is any different than how OpenGL is setup for shaders since about OpenGL 3. Have you only ever used OpenGL fixed function pipeline? I haven't seen anything doing lighting, shading or texturing in program code since shaders have been a thing.

    32. Re:Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      Maybe you need to reparse that. TFTC was saying halivar needs to Google stuff instead of asking the group collective such a silly question.

    33. Re:Can someone explain Vulkan? by Anonymous Coward · · Score: 0

      You're missing the point. OpenGL has become loaded with technical debt that is no longer appropriate for modern CPU/GPU combos. Implementing an OpenGL driver that runs well is insanely hard - and just about the only people who've done it are NVidia. It carries around so much baggage - and can decide to reorganise memory at the worst possible times - that it's simply broken and cannot be fixed.

      Not because it was badly designed, but because the world has changed around it and the assumptions in the basic architecture are longer valid. So each revisions becomes more and more convoluted in its attempts for shore it up.

      Mantle and eventually Vulkan decided that the driver should be very low level - and most apps use a game engine that can take the really hard stuff away. The game engine knows more about how the memory on the GPU is needed than the driver ever would - and you can use different game engines for difference performance sensitive games/applications. The CPU and GPU can coordinate closely in a way that OpenGL will not allow (getting good performance out of OpenGL means batching for example).

      Vulkan is the right choice. OpenGL has had its time... it did it's job. It's time to let it go even though it's going to be support for a long time.

  3. IF only they had better hardware by Joe_Dragon · · Score: 1

    The imac pro is ok but to much workstation and at a price where it smoked by gaming pc's at more then half the price.
    Mac pro old and high priced with video cards that are limited by small cooling.

    Mini old hardware and capped at duel core

    imac $1,299.00 for a system with an 5400RPM HDD and an low end video card.

    1. Re:IF only they had better hardware by MightyYar · · Score: 1

      If you are a games vendor, you don't ask, "How many people will buy a Mac to play my game?"

      You ask, "How many people with a Mac will buy my game?"

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    2. Re:IF only they had better hardware by Anonymous Coward · · Score: 0

      All Mac hardware is the best. THE BEST.

    3. Re:IF only they had better hardware by Anonymous Coward · · Score: 0

      Anyone who buys a mac as primarily a gaming machine is an utter fool. You can get so much for bang for your buck building yourself.

    4. Re:IF only they had better hardware by MightyYar · · Score: 1

      Exactly, thus my comment. The game companies don't care why you bought a Mac, just that people with Macs buy their games. I have no idea what the Venn diagram looks like for "people who buy Macs" and "people who will buy Vulkan-enabled games", but clearly someone thinks it's a good business move. Mac owners in general are more willing to buy software, so there's that.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    5. Re:IF only they had better hardware by Anonymous Coward · · Score: 0

      Anyone who buys a PC as a gaming machine is an utter fool. You can get so much for bang for your buck from a console.

      Fixed that for you.

    6. Re:IF only they had better hardware by AvitarX · · Score: 1

      I'm not convinced,

      Sure you save 200-300 on the system maybe, but depending on how many games you buy, there's a chance for saving on the PC vs the Console overall.

      --
      Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
    7. Re:IF only they had better hardware by Anonymous Coward · · Score: 0

      I am not a gamer, but from what I understand from those who game, consoles these days are piss poor compared to a modern gaming machine. You have Sony and MS milking their designs for 4-5ish years at a time, while the PC industry is moving along with yearly or more frequent updates in performance. You have ATI(AMD) and Nvidia leap frogging each other on the GPU side and Intel and AMD leap frogging each other on the CPU side, while a combination of hardware from all 3 manufactures will work with any PC game, even dated hardware just at a lower performance level

      Let me know when an xbox or playstation can do this.

      https://www.youtube.com/watch?v=Toft6fMvByA

    8. Re:IF only they had better hardware by Voyager529 · · Score: 1

      Exactly, thus my comment. The game companies don't care why you bought a Mac, just that people with Macs buy their games. I have no idea what the Venn diagram looks like for "people who buy Macs" and "people who will buy Vulkan-enabled games", but clearly someone thinks it's a good business move. Mac owners in general are more willing to buy software, so there's that.

      I think the bigger draw is not OSX compatibility per-say; OSX compatibility is all but a happy accident. Right now, desktop gaming is largely the realm of DirectX. You've got a few early adopters and a few more OpenGL-based games, but a whole lot is tied to a proprietary MS technology. This is helpful if you're designing a AAA game intended to be compiled for the Xbox as well, but with all the stuff Microsoft is doing with Windows 10, there's some genuine FUD going on. There is a very-rational concern that Microsoft is going to start getting heavy handed with DirectX. Now, EA is probably fine, but if you're not EA, betting on DirectX is a concerning proposition.

      By contrast, Vulkan is a far easier development platform than OpenGL ever was, and cross-compiling for OSX and Linux is far simpler than is possible with DirectX. From what I understand, some simpler games would be possible to target mobile platforms with not-that-much additional coding. If Vulkan can live up to this possibility, it means that if Microsoft makes DirectX 14 a UWP-only affair, developers aren't stuck playing ball with Microsoft's app store to sell their games, and while garden variety Win32 is widely used for gaming, the valiant efforts of both Ballmer and Nadella to make the Windows Store a viable place to get apps has not been terribly successful. Even if DirectX remains dominant but Vulkan gets even 20% market share, it may be enough to dissuade MS from pulling those sorts of shenanigans to prevent everyone from jumping ship and losing the gaming market on Windows.

    9. Re:IF only they had better hardware by Anonymous Coward · · Score: 0

      Bullshit. No major game studios nowadays code directly to DirectX since most if not all game engines abstract away such details behind the scene and yet provide OpenGL, DirectX and sometimes other rendering backends. Most of top-end game engines even support to create games for Playstation 4. Therefore they are not tied to "MS Technology" any longer.

  4. Why even mention games? by Anonymous Coward · · Score: 0

    The Vulkan platform is decent, but it isn't the card gamers want, nor is it particularly well made for it. I doubt Vulkan alone will win gamers over to the Mac. It seems like a classic chicken egg situation. Games will likely run better on the Mac than they did before, but unless the developers see demand from Mac users they simply wont take the time to port anything meaningful. Without same day launches games will continue to avoid the Mac platform.

    Then they have to deal with the nearly decade upgrade cycle of Mac users. Are game developers really going to risk trying to support 6 to 8 year old hardware when the average selling price for Steam games is so low?

    1. Re:Why even mention games? by higuita · · Score: 1

      war thunder run in the pst with opengl in mac and the performance was bad... they reported that the opengl in mac was somewhat lacking features and performance optimizations, (because apple didn't care) so it was hard to fix
      they then ported the game to metal and performance increased a lot, specially in lower end machines... and this was not a full port, is just changing some parts to use metal, to solve the performance problems.

      So yes, this is something users want. The major pain is that apple didn't supported vulkan, so games had to use vulkan, metal and probably direct3d and opengl. With this change, they can just have vulkan and run everywhere

      vulkan drivers a lot simpler than opengl, so for the apple developers and nvidia/amd/intel, it is also easier for they to support vulkan

      --
      Higuita
    2. Re:Why even mention games? by Anonymous Coward · · Score: 0

      ... but it isn't the card gamers want,...

      Of course it is not a card. Duh?!

      nor is it particularly well made for it.

      Proof?? or citation? Don't bluff as if you know anything

    3. Re:Why even mention games? by exomondo · · Score: 1

      The Vulkan platform is decent, but it isn't the card gamers want, nor is it particularly well made for it. I doubt Vulkan alone will win gamers over to the Mac. It seems like a classic chicken egg situation. Games will likely run better on the Mac than they did before, but unless the developers see demand from Mac users they simply wont take the time to port anything meaningful.

      That's part of why Vulkan is important, previously porting to the Mac would require re-writing the rendering engine in Metal (or going back to OpenGL 4.1 with Apple's poor OpenGL support) whereas now you can run your Vulkan renderer on OSX/iOS.

  5. Thy could call it Adobe Air by goombah99 · · Score: 0

    Oh joy another layer that runs everywhere. Now only 13 standards to unify. Perhaps adobe AIr can incorporate this.

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:Thy could call it Adobe Air by Anonymous Coward · · Score: 0

      But it's a "meta-API"-ESQUE layer! A kind-of, sort-of HYPER-API for a mere SUBSET of functionality! Dude this is definitely going to be rock solid, and not be 1000x bigger pain in the ass to integrate. This is a value proposition and you should be EXCITED about the future.

      You should.

    2. Re:Thy could call it Adobe Air by TheFakeTimCook · · Score: 0

      Oh joy another layer that runs everywhere. Now only 13 standards to unify. Perhaps adobe AIr can incorporate this.

      That's what I was thinking.

      While the CONCEPT of "One API to Rule Them All" is always tempting, weren't DirectX, Metal, etc. created SPECIFICALLY to REDUCE the number of "Layers" between well, the Software and the "Metal"?

    3. Re:Thy could call it Adobe Air by Austerity+Empowers · · Score: 2

      That's not exactly what they were designed to do. Most of the data structures and semantics between metal and vulkan are the same or very similar, no extra state will need to be kept, and none of the heavy weight render state changes that made OpenGL and earlier DirectX's a dog will be in the way.

      Of course, Apple could kill this if they release metal bindings for C/C++, rather than locking it all in to Swift.

    4. Re: Thy could call it Adobe Air by Type44Q · · Score: 1

      No. Before DirectX, graphics and multimedia API's were proprietary; for example, I needed a special edition of Tomb Raider to watch Lara's ass twitch in 640Ã--480 on a Matrox Mystique when she walked; prior to that, I could barely make out the shape of her ass when it was rendered in software @320Ã--240...

    5. Re: Thy could call it Adobe Air by sethmeisterg · · Score: 1

      Exactly! If you want speed, directly use the metal APIs!

    6. Re: Thy could call it Adobe Air by Anonymous Coward · · Score: 0

      I'll stick to OpenGL.
      Some of the driver-side state handling is nice to have. Vulkan is simply too unwieldy. And "Metal" - is a dead end, even with C++ support.

    7. Re:Thy could call it Adobe Air by exomondo · · Score: 1

      That's what I was thinking.

      While the CONCEPT of "One API to Rule Them All" is always tempting, weren't DirectX, Metal, etc. created SPECIFICALLY to REDUCE the number of "Layers" between well, the Software and the "Metal"?

      DirectX12 (the Direct3D bit), Metal and Vulkan were designed to expose more of the driver details to the developer so we could get away from these monolithic drivers that contained application-specific code in them. It also offered a clean break from many of the legacy baggage carried through from older versions of APIs. The problem is that Metal and Direct3D are closed source and proprietary so in order to do cross platform applications you generally need a rendering backend layer that sits between your API-agnostic engine/application and the graphics API that the driver exposes.

      With Vulkan drivers (and therefore API) available on Windows, Linux and Android that makes application portability much simpler and more efficient. The implementation of Vulkan (MoltenVK) sits atop the Metal driver and the concepts don't map exactly so Vulkan on Apple isn't going to perform as well or be as flexible as Vulkan on other platforms.

    8. Re: Thy could call it Adobe Air by Pseudonym · · Score: 1

      I'll stick to OpenGL.

      Then you'll be limited to version 3 on Apple platforms. Sorry.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    9. Re:Thy could call it Adobe Air by TheFakeTimCook · · Score: 1

      That's what I was thinking.

      While the CONCEPT of "One API to Rule Them All" is always tempting, weren't DirectX, Metal, etc. created SPECIFICALLY to REDUCE the number of "Layers" between well, the Software and the "Metal"?

      DirectX12 (the Direct3D bit), Metal and Vulkan were designed to expose more of the driver details to the developer so we could get away from these monolithic drivers that contained application-specific code in them. It also offered a clean break from many of the legacy baggage carried through from older versions of APIs. The problem is that Metal and Direct3D are closed source and proprietary so in order to do cross platform applications you generally need a rendering backend layer that sits between your API-agnostic engine/application and the graphics API that the driver exposes.

      With Vulkan drivers (and therefore API) available on Windows, Linux and Android that makes application portability much simpler and more efficient. The implementation of Vulkan (MoltenVK) sits atop the Metal driver and the concepts don't map exactly so Vulkan on Apple isn't going to perform as well or be as flexible as Vulkan on other platforms.

      You sound just like the HiTech Complier people, who argued that C Compilers and microcontrollers in general had gotten to the point where even in time and performance-sensitive portions of real-time embedded code, there was absolutely no need for Assembly Language coding.

      Anyone who has been an embedded dev. for more than a few years knows how laughable that is, given thei right circumstances.

      My point is, Just like tightly-hand-coded Assembly Language is likely to beat even the best Compiled code, as far as raw performance goes, it is also true that you will NEVER increase performance by adding interposing "translation" API layers to time-sensitive code.

      It is always the case when the Metal Meets the Code...

    10. Re: Thy could call it Adobe Air by Anonymous Coward · · Score: 0

      ++
      Attentive assembly coding for microcontrollers will be much more performant due to skillful use of assembly tricks.

    11. Re:Thy could call it Adobe Air by exomondo · · Score: 1

      You sound just like the HiTech Complier people, who argued that C Compilers and microcontrollers in general had gotten to the point where even in time and performance-sensitive portions of real-time embedded code, there was absolutely no need for Assembly Language coding.

      Then you missed the point, in fact I wasn't arguing anything at all. But if anything my advocacy is for lower level APIs being available rather than that functionality being hidden in the driver.

      My point is, Just like tightly-hand-coded Assembly Language is likely to beat even the best Compiled code, as far as raw performance goes, it is also true that you will NEVER increase performance by adding interposing "translation" API layers to time-sensitive code.

      Then you misunderstand the point of MoltenVK completely, it isn't about improving performance over Metal, it is about enabling portability in a more performant way than OpenGL. Vulkan on top of Metal has lower overhead than OpenGL (and Apple didn't manage to support OpenGL very well even before Metal anyway) because many of the concepts do map between them (lots of discussions on this around webgpu as this needs to be an abstraction for all the low level APIs).

    12. Re:Thy could call it Adobe Air by TheFakeTimCook · · Score: 1

      You sound just like the HiTech Complier people, who argued that C Compilers and microcontrollers in general had gotten to the point where even in time and performance-sensitive portions of real-time embedded code, there was absolutely no need for Assembly Language coding.

      Then you missed the point, in fact I wasn't arguing anything at all. But if anything my advocacy is for lower level APIs being available rather than that functionality being hidden in the driver.

      My point is, Just like tightly-hand-coded Assembly Language is likely to beat even the best Compiled code, as far as raw performance goes, it is also true that you will NEVER increase performance by adding interposing "translation" API layers to time-sensitive code.

      Then you misunderstand the point of MoltenVK completely, it isn't about improving performance over Metal, it is about enabling portability in a more performant way than OpenGL. Vulkan on top of Metal has lower overhead than OpenGL (and Apple didn't manage to support OpenGL very well even before Metal anyway) because many of the concepts do map between them (lots of discussions on this around webgpu as this needs to be an abstraction for all the low level APIs).

      Well, in that case, I agree completely.

      BTW, your arguments are entirely too rational. Are you new here? ;-)

  6. Another new standard by Antique+Geekmeister · · Score: 0

    There is a famous XKCD cartoon that describes very well the need for new standards.

    https://xkcd.com/927

    1. Re:Another new standard by Orphis · · Score: 1, Informative

      There's absolutely nothing new about Vulkan though.

    2. Re:Another new standard by Dwedit · · Score: 3, Insightful

      "Metal" was the new standard that Apple was trying to push, "Vulkan" is the actual standard that got adopted by other people.

      This means that people no longer need to go through the pointless process of converting their Vulkan code into Metal.

    3. Re:Another new standard by Luthair · · Score: 1

      Did Apple ever try to portray metal as a standard? My recollection is they just created the API for iOS and eventually ported it to OSX, not that they tried to get anyone else interested.

    4. Re:Another new standard by Anonymous Coward · · Score: 0

      I think it went more like that they wanted a simpler, more performant, driver architecture which became metal and port their opengl implentation on top of that. I guess the graphic card manufacturers had to do parallel development to do pretty much the same thing with Vulcan.

      It may be that Apple wanted to push Metal as an open standard, but when they where finished they where just a little late. But the Vulcan->Metal layer may be exceedingly shallow that performance is not harmed (much). So maybe they keep metal internally.

    5. Re:Another new standard by Anonymous Coward · · Score: 2, Interesting

      My recollection was they got so fed up waiting for the Khronos Group to start real discussions about "OpenGL-next gen" they just got on with it, then Vulkan turned up. The article (and a lot of people on the internet, shocking that) in part try's to re-write history so it appears Apple ignored a standard (and a complete one at that...) because there evil and not playing nice (Umm OpenCL...CUDA...anyone) but at the time it didn't exist so what were they to do?

      It will be interesting to see what Apple does next.

    6. Re:Another new standard by TheFakeTimCook · · Score: 1

      Did Apple ever try to portray metal as a standard? My recollection is they just created the API for iOS and eventually ported it to OSX, not that they tried to get anyone else interested.

      Exactly.

      I never have heard anyone discuss Metal as an industry-standard.

    7. Re:Another new standard by Anonymous Coward · · Score: 0

      So, OS vendors sometimes do things like develop new technologies and then offer "co-marketing" dollars in exchange for developers using those new technologies and bragging about them on their packaging.

      Any such offer or acceptance will usually be wrapped in NDAs and the like stating you won't talk about the payola.

      But if you are wondering why software brags about using some strange API that a hardware manufacturer or OS vendor recently developed, that is often what is going on.

      The self interest in the part of the hardware/OS vendor is that it increases the percieved value of the feature in customers and reviewers (I mean, you can get customers and reviewers to drool over low oxygen copper cable, doesn't matter if it is really something useful), which increases the percieved value of the OS/hardware.

    8. Re:Another new standard by Austerity+Empowers · · Score: 1

      The actual history had a number of people also writing their own API because Khronos was too slow. ATI had mantle, NVidia had CUDA (which is perhaps similar but not exactly the same), and even MS was pushing some DirectX changes all with the same concept. It's not a surprise Apple made Metal at all, OpenGL was not keeping up with games or low power designs.

      But they got a kick in the pants, and Vulkan got fast(er) tracked. Now it seems like those other APIs are redundant, I'm not sure yet if that's true, but I trust that everyone is going to push their proprietary stuff as long as they possibly can.

    9. Re: Another new standard by Type44Q · · Score: 1

      Did Apple ever try to portray metal as a standard?

      LOL, as a standard for what? Apples?? That would be a contradiction, unless "proprietary standard" means anything (it doesn't).

    10. Re: Another new standard by UnknowingFool · · Score: 1

      "Metal" was the new standard that Apple was trying to push, "Vulkan" is the actual standard that got adopted by other people.

      When has Apple "pushed" Metal as a standard? In June 2014, Apple released beta versions as a low level graphics API to their iOS devices. Later macOS was added. It was never released as a standard for any other system.

      This means that people no longer need to go through the pointless process of converting their Vulkan code into Metal.

      "No longer" isn't quite accurate because just because a system supports more than one standard does not mean that all work stops on one of the standards. For example, game developers didn't stop coding Direct X because the game also supported OpenGL. Indeed, it means that developers may have to code in two different APIs now.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    11. Re:Another new standard by Anonymous Coward · · Score: 0

      I'm probably wrong, but I think that these new APIs really stem from Playstation 3's GCM, which gave you the ability to directly write GPU command buffers.

    12. Re:Another new standard by serviscope_minor · · Score: 1

      But they got a kick in the pants, and Vulkan got fast(er) tracked. Now it seems like those other APIs are redundant

      Vulkan is basically Mantle. When it got standardised, work on mantle stopped.

      --
      SJW n. One who posts facts.
    13. Re:Another new standard by exomondo · · Score: 1

      My recollection was they got so fed up waiting for the Khronos Group to start real discussions about "OpenGL-next gen" they just got on with it, then Vulkan turned up. The article (and a lot of people on the internet, shocking that) in part try's to re-write history so it appears Apple ignored a standard (and a complete one at that...) because there evil and not playing nice (Umm OpenCL...CUDA...anyone) but at the time it didn't exist so what were they to do?

      It will be interesting to see what Apple does next.

      But they kept it closed and proprietary rather than just releasing it as open so others could implement it on other platforms.

    14. Re:Another new standard by Anonymous Coward · · Score: 0

      Vulcan is Mantle. (FTFY)

      From TFA.
      "...Mantle, which was donated wholesale to Khronos to form the modern foundation of Vulkan 1.0.""

    15. Re:Another new standard by exomondo · · Score: 2

      There is a famous XKCD cartoon that describes very well the need for new standards.

      MoltenVK isn't a new standard, it is a mechanism for bringing the only cross-platform, open spec low level graphics API to the Mac. Nor are these APIs competing, if you use Vulkan on the Mac (via MoltenVK) you're using Metal underneath, it just means you don't have to rewrite your renderer in Metal just to be able to run it on Apple platforms.

    16. Re: Another new standard by Anonymous Coward · · Score: 0

      "No longer" isn't quite accurate because just because a system supports more than one standard does not mean that all work stops on one of the standards.

      Metal is not a standard, in fact Vulkan is just an attempt to standardize the API for 3D graphics by having an open specification.

      Indeed, it means that developers may have to code in two different APIs now.

      No. Now they can just write in Vulkan and it is supported everywhere rather than having to write a special version just for Apple. If you're only targeting Apple then sure, write in Metal but if not then write in Vulkan.

    17. Re:Another new standard by Antique+Geekmeister · · Score: 0

      If I may quote your own words:

      > cross-platform, open spec low level graphics API to the Mac

      A "low level graphics API" sounds suspiciously like a standard to me. Doesn't it sound like a standard to you?

      > Nor are these APIs competing,

      I'm very confused how you might think such a thing. As I understand it, "Vulkan" is competing with "Metal", the Apple published, closed source API. Both compete for market share and developer time with DirectX on Windows based machines. Even if you consider Vulkan to be the software successor to OpenGL, it's competing with the older versions of OpenGL.

    18. Re:Another new standard by exomondo · · Score: 1

      If I may quote your own words:

      > cross-platform, open spec low level graphics API to the Mac

      A "low level graphics API" sounds suspiciously like a standard to me. Doesn't it sound like a standard to you?

      No. First of all something that is a "low level graphics API" most certainly does not sound like a standard, nor has it got anything to do with whether or not it would be a standard. But the point is MoltenVK is not even that, it is just an implementation of the Vulkan API on top of the Metal API so no, MoltenVK is most certainly not a standard.

      > Nor are these APIs competing,

      I'm very confused how you might think such a thing. As I understand it, "Vulkan" is competing with "Metal", the Apple published, closed source API. Both compete for market share and developer time with DirectX on Windows based machines. Even if you consider Vulkan to be the software successor to OpenGL, it's competing with the older versions of OpenGL.

      Vulkan isn't competing with Metal, in the only situations where you can run both Metal and Vulkan code (on iOS and OSX) the Vulkan code you run is running Metal code underneath anyway so any deficiencies of Metal when compared to Vulkan are exposed through MoltenVK so the fact that you wrote to the Vulkan API doesn't help you avoid issues with Metal at all.

      For example Vulkan's DMA queue access is not a competitive feature over Metal in this instance because Metal does not provide this access therefore MoltenVK has to abstract this away.

    19. Re: Another new standard by UnknowingFool · · Score: 1

      Now they can just write in Vulkan and it is supported everywhere rather than having to write a special version just for Apple. If you're only targeting Apple then sure, write in Metal but if not then write in Vulkan.

      The problem is that Vulkan, for now, isn't supported by Apple. So the Khronos Group is fully responsible for it working on all versions of iPhone for all versions of iOS. Then there are optimization issues which might occur on iOS as it might "run" but not be great which is not something you want in a graphics API. While you can write in Vulkan it may or may not work well on an iOS device especially in the beginning which you will probably need to keep a Metal version for a while. Also bear in mind that Apple is not halting development on iOS or hardware or Metal.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
  7. Good by Anonymous Coward · · Score: 0

    Its been a challenge adopting Swift and having OpenGL deprecated by Apple on iOS these last couple years. A one two punch for sure. Essentially, I'm suppose to just throw everything away just because?

    Good news is Swift runs on Linux too -- better and faster than Obj-C. And soon I'll be up to date with Vulkan while being cross platform. Might just move to Linux completely and be done with it.

    It sounds good.

  8. What about the iMac 5k by SuperKendall · · Score: 1

    at a price where it smoked by gaming pc's at more then half the price.

    First of all, that is simply not true, building your own system saves a few hundred $.

    But secondly - what about the iMac 5k? That is a pretty modern system, the CPU specs are almost as good, it just has a lower end video card. But you could also attach an eGPU via the Thunderbolt 3 ports, and it starts at $1799.00.

    The cooling is not as good in the iMac 5k but if you are leaning on an eGPU card that doesn't matter as much as the GPU can have its own cooling.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  9. There's always a but by DontBeAMoran · · Score: 1

    That's a pretty neat idea, but since a lot of Macs only have the intel integrated GPU I don't see how it will help.

    --
    #DeleteFacebook
    1. Re:There's always a but by Misagon · · Score: 1

      There are still gains. Everything is relative. Remember, Intel's integrated graphics of today is good enough to run Crysis. ;)

      --
      "We mustn't be caught by surprise by our own advancing technology" -- Aldous Huxley
    2. Re:There's always a but by Anonymous Coward · · Score: 0

      Vulkan works swimmingly on Intel integrated GPUs.

  10. good deal for a workstation system by Joe_Dragon · · Score: 1

    good deal for a workstation system and why buy apple keyboard and mouse for a PC?

  11. egpu $250-$300+ for the case for pci-e X4 by Joe_Dragon · · Score: 1

    egpu $250-$300+ for the case for pci-e X4

  12. Yes, but still cheaper than iMac pro and custom by SuperKendall · · Score: 1

    egpu $250-$300+ for the case for pci-e X4M

    Yes but the iMac 5k + eGPU case plus a REALLY good video card will still be less than the iMac pro, and now you have a system optimized for gaming more than the iMac Pro is - the iMac pro is more about having a lot of cores, as noted it's more of a workstation than specifically made for gaming.

    I'm just saying there are other ways to arrive at a good gaming Mac that do no cost as much as an iMac Pro, which was brought up as the only example.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  13. I just want CUDA by Anonymous Coward · · Score: 0

    I just want to be able to run CUDA code on my Macbook. Make it so, Apple.

  14. vulkan? by Anonymous Coward · · Score: 0

    Shouldnt the Khronos Group graphics technology be called "Klingon"?