Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Graphics Open Source IOS Apple

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

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.
This discussion has been archived. No new comments can be posted.

Vulkan Graphics is Coming To macOS and iOS, Will Enable Faster Games and Apps

Comments Filter:
  • 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.

    • by furry_wookie ( 8361 ) on Monday February 26, 2018 @09:58AM (#56187711)
      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.
      • by halivar ( 535827 )

        Thanks! I looked at their website [khronos.org] 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?

        • by Kjella ( 173770 )

          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

      • by abies ( 607076 )

        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"

      • by e r ( 2847683 ) on Monday February 26, 2018 @11:02AM (#56188097)

        ...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 [khronos.org].

        • by K. S. Kyosuke ( 729550 ) on Monday February 26, 2018 @11:55AM (#56188483)
          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.
        • by gman003 ( 1693318 ) on Monday February 26, 2018 @03:15PM (#56190085)

          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?

        • 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.

      • 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.

    • by K. S. Kyosuke ( 729550 ) on Monday February 26, 2018 @10:21AM (#56187837)
      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.
    • 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.

    • by Misagon ( 1135 )

      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 [wikipedia.org] API which is now deprecated in favour of Vulkan. That

    • CryEngine/Unreal/Unity?

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

    • by higuita ( 129722 )

      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)

  • 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.

    • 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?"

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

      First of all, that is simply not true [pcgamer.com], 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

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

    https://xkcd.com/927 [xkcd.com]

    • Re: (Score:2, Informative)

      by Orphis ( 1356561 )

      There's absolutely nothing new about Vulkan though.

    • by Dwedit ( 232252 ) on Monday February 26, 2018 @10:19AM (#56187821) Homepage

      "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.

      • by Luthair ( 847766 )
        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.
        • Re: (Score:2, Interesting)

          by Anonymous Coward

          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 ne

          • 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

            • 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.

          • 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.

        • 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.

        • 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).

      • "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 t

    • 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.

      • 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

        • 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

  • 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.

    • by Misagon ( 1135 )

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

Some people manage by the book, even though they don't know who wrote the book or even what book.

Working...