Announcement

Collapse
No announcement yet.

MoltenVK 1.0.20 Released To Continue Advancing Vulkan On macOS

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    Quick question: Has anyone here even the slightest clue how the feature sets and paradigms of current graphics APIs compare? It‘s all just meta-talk about who might potentially be inclined to develop for one or the other API.. Man, these religious guessing-debates are tedious... particularly, when hardly anyone here even uses any Apple-made products. What do you even care what they do?

    The main takeaway here is: Apple is not looking to do you (the Linux crowd, that is) any favors and they think that their Metal-only approach can work for them and their users. We‘ll find out if they are right. Also, apparently Vulkan and Metal are similar enough so that large portions can be mapped to each other without too much trouble. So, superiority certainly can’t be based on significantly different feature sets. If any API was to be considered superior at all, it probably boils down to ease of use and such.

    To me, it looks like they might be getting away with their in-house API and GPUs. If they end up offering some great features, those will be available to devs in a timely manner. And the devs who don’t care about Metal can simply use the apparently pretty functional MoltenVK
    Last edited by GruenSein; 06 September 2018, 02:38 AM.

    Comment


    • #22
      Originally posted by DavidSan View Post

      Superiority is very relative. What to some people is superior, must not be to others.

      Vulkan has the benefit to be a standard API across different manufacturers just like OpenGL; however, that could also be problem since supporting different vendors may lead to the "common-denominator" approach that may cause a particular feature not being implemented because it is not supported on the majority of hardware, or not being popular enough.
      That's why Vulkan has extensions.

      Comment


      • #23
        Originally posted by M@GOid View Post

        That could also backfire. Some developer may not put the extra effort in the Metal version, because it is alien and they may not think it worth the effort. We here on the Linux side of games, know how a smaller percentage of market share can affect the quality of the port. And we use standard APIs, also available on the market leader (Windows). Now imagine porting things for a small platform AND a alien graphic API, like MacOS and Metal.
        Of course, it could backfire. And it has in the past (QuickDraw3D, RAVE, Glide); however, you are confusing something: Metal was not designed for Mac, Metal was designed for iPhone and iPad.

        iOS devices are not a small niche of the market, they are probably the largest homogeneous installed base; larger than Windows for games + PlayStation + XBOX combined. And all those devices run GPUs made by Apple than run Metal.

        Comment


        • #24
          Originally posted by Steffo View Post

          That's why Vulkan has extensions.
          And extensions are developed based on how much effort is required to develop. If it is too much hassle and there is no benefit associated, no one is going to do it.

          Comment


          • #25
            Originally posted by DavidSan View Post

            Of course, it could backfire. And it has in the past (QuickDraw3D, RAVE, Glide); however, you are confusing something: Metal was not designed for Mac, Metal was designed for iPhone and iPad.

            iOS devices are not a small niche of the market, they are probably the largest homogeneous installed base; larger than Windows for games + PlayStation + XBOX combined. And all those devices run GPUs made by Apple than run Metal.
            I think it's cute how you tried to weasel word your way into being possibly technically correct through the use of the word "Homogenous"... however... your entire premise is wrong.

            Apple shipments in 2017: 213.3 Million, Source: https://www.statista.com/statistics/...nts-worldwide/
            PC Shipments in 2017: 259.5 Million, Source: https://www.idc.com/getdoc.jsp?containerId=prUS43495918
            Playstation 4 Total Shipments: 79 Million, Source: http://www.ign.com/articles/2018/04/...ach-79-million
            XBox One Total Shipments: 29.4 Million, Source: https://www.extremetech.com/gaming/2...le-sales-slide

            And just for kicks:
            Android Shipments in 2017: 1.2 Billion, Source: https://www.androidheadlines.com/201...-expected.html

            Or even just for the leading Vendor:
            Samsung Shipments in 2017: 317.3 Million, Source: https://www.idc.com/getdoc.jsp?containerId=prUS43548018

            It was a nice try, but even your weasel wording didn't save you.

            Comment


            • #26
              Originally posted by Luke_Wolf View Post

              I think it's cute how you tried to weasel word your way into being possibly technically correct through the use of the word "Homogenous"... however... your entire premise is wrong.

              Apple shipments in 2017: 213.3 Million, Source: https://www.statista.com/statistics/...nts-worldwide/
              PC Shipments in 2017: 259.5 Million, Source: https://www.idc.com/getdoc.jsp?containerId=prUS43495918
              Playstation 4 Total Shipments: 79 Million, Source: http://www.ign.com/articles/2018/04/...ach-79-million
              XBox One Total Shipments: 29.4 Million, Source: https://www.extremetech.com/gaming/2...le-sales-slide

              And just for kicks:
              Android Shipments in 2017: 1.2 Billion, Source: https://www.androidheadlines.com/201...-expected.html

              Or even just for the leading Vendor:
              Samsung Shipments in 2017: 317.3 Million, Source: https://www.idc.com/getdoc.jsp?containerId=prUS43548018

              It was a nice try, but even your weasel wording didn't save you.
              Apple's install base might not be bigger than all other combined but there is one word in David's argument which carries all the weight here: "homogeneous". What this means in developer terms is quite simple. One codebase created around one programming model/paradigm/platform specifics reaches the entire install base. That is not true for the PC market, even if we were to assume that almost all new PCs come with Win10 (and just for funsies: That is not a bad OS imho), as there are many different configurations, hardware capabilities, driver differences, and so on. The consoles don't have that problem but their install base is smaller and releasing software on them is much more restrictive than it is on Apple's app store. That leaves us with Android, a market which is known for its fragmentation since most manufacturers modify vanilla Android and, as a consequence, take a long time to ship software updates if they do it at all. People sometimes go nuts when Apple stops supporting i-Devices after 5 or so years. Objectively, that is by far the best in the industry and one of the reasons for the "homogeneity" of the install base.
              So, if you develop stuff for living the install base you can reach without having to differentiate between many platforms (which costs time, knowledge, and therefore money) is one of the biggest factors. So, the question is not necessarily whether or not people will port their stuff to Apple's platform. There are plenty of developers who specifically target it in the first place. Lots of middleware supports it. But it certainly depends on the target audience of your software.

              Comment


              • #27
                Originally posted by GruenSein View Post
                Quick question: Has anyone here even the slightest clue how the feature sets and paradigms of current graphics APIs compare? It‘s all just meta-talk about who might potentially be inclined to develop for one or the other API.. Man, these religious guessing-debates are tedious... particularly, when hardly anyone here even uses any Apple-made products. What do you even care what they do?

                The main takeaway here is: Apple is not looking to do you (the Linux crowd, that is) any favors and they think that their Metal-only approach can work for them and their users. We‘ll find out if they are right. Also, apparently Vulkan and Metal are similar enough so that large portions can be mapped to each other without too much trouble. So, superiority certainly can’t be based on significantly different feature sets. If any API was to be considered superior at all, it probably boils down to ease of use and such.

                To me, it looks like they might be getting away with their in-house API and GPUs. If they end up offering some great features, those will be available to devs in a timely manner. And the devs who don’t care about Metal can simply use the apparently pretty functional MoltenVK
                Just to clarify a couple points here:

                These new low level API's will give devs more control over the hardware, dev teams working on Playstation 3 titles were amazed with the flexibility and performance Sony's low level 3D API provided which was called LibGCM. Demand started to rise for something simular available on the PC.

                Over at Apple on the OSX side of things, 3rd party companies (Especially Adobe) were becoming very concerned that there software was under performing and they were loosing sales due to performance (OpenGL just wasn't cutting it anymore). Apple needed a solution fast that would raise performance across the board and work well on their mobile side. Thus the Metal API was born, it's not as low level as Sony's LibGCN but it ranks in as the lowest level API available on the PC platform. Apple also created CoreAnimation which would act as a high level language if needed. They got quick to work by rewriting OSX with Metal Acceleration, form how CoreAnimation draws, VideoToolkit acceleration, the Quartz Compositor plus a bunch of other API's that need to draw to the screen. Dev kits were sent out and Adobe began accelerating there products with Metal.

                Then the Vulkan API was annouced but didn't get heavy attention until a year later when it became useable and interest spead rapidly. Then word broke out that Apple wasn't going to use Vulkan they had their own API in Metal. This is exactly where most people cry foul and jump to the conclusion that Apple are greedy pricks for creating their own low level API instead of going with a solid choice in Vulkan. What everyone gets wrong is the timeline, Apple had Metal completed, operational and coded into OSX BEFORE the Vulkan API was even annouced. Even then there was no guarentee when Vulkan would be ready and if it would be any good./accepted.

                So yah Apple sticking with Metal just makes more sense, they spent multi-millions of dollars designing it, gave what the 3rd party devs were asking for, upgraded the performance of OSX and sent Metal dev kits out to major players like Epic, Criteam and whatever. It would be a down right horrible move to just close up shop, tell all the devs that they are giving up on Metal and going with Vulkan and be left with a huge waste of R&D money....

                So comments like how Apple is going to "Get away" with their own inhouse API and assume that Apple flat out refused Vulkan and chose their own API as they refused to work with the linux crowd is completly false made up propaganda based on assumption the writer and everyone else that just believes and parrots the same assumptions.

                So Apple stuck with Metal cause they were the first ones to the market by approx 3 years and already had all those Vulkan features and idea's that people were drooling over already in motion and being used by MacBook owners. Think, if you were Apple and went through all that trouble to bring a low level API to the computing industry and everything is working out pretty decently. Then one day one of your competators shows up in your office with some new tech they designed, an hey it works the same way yours already does, but then asks/expects you to dump all your product and start using their product? yah that would never happen....

                Comment


                • #28
                  Originally posted by GruenSein View Post

                  Apple's install base might not be bigger than all other combined but there is one word in David's argument which carries all the weight here: "homogeneous". What this means in developer terms is quite simple. One codebase created around one programming model/paradigm/platform specifics reaches the entire install base.
                  Aww So you're going to try now? I just proved you both wrong by the numbers. Android has both the largest install base and the largest homogenous install base in Samsung. Apple is frankly irrelevant. They have a tiny minority of the Smartphone market, and no they can't even qualify for the "largest single product" award anymore.

                  Originally posted by GruenSein View Post
                  That is not true for the PC market, even if we were to assume that almost all new PCs come with Win10 (and just for funsies: That is not a bad OS imho), as there are many different configurations, hardware capabilities, driver differences, and so on.
                  And this is a problem... why? I can run the same executable on all of those machines, perhaps with varying performance but I don't need to change the software one bit to account for the changes in configuration. All you need to do is declare a baseline performance standard and problem is completely solved, and protip: Intel, AMD, and Nvidia all support vulkan so...

                  Originally posted by GruenSein View Post
                  The consoles don't have that problem but their install base is smaller and releasing software on them is much more restrictive than it is on Apple's app store.
                  What exactly does that have to do with anything?
                  Originally posted by GruenSein View Post
                  That leaves us with Android, a market which is known for its fragmentation since most manufacturers modify vanilla Android and, as a consequence, take a long time to ship software updates if they do it at all. People sometimes go nuts when Apple stops supporting i-Devices after 5 or so years. Objectively, that is by far the best in the industry and one of the reasons for the "homogeneity" of the install base.
                  Give me a break... there are 7.5x as many android devices shipping as iOS per year all of which support Vulkan and due to the nature of smartphones the old ones will be quickly replaced. It's the entire reason behind smartphones having such a massive shipment number, people have short replacement cycles on phones... roughly 20% of the global population is replacing their phone each year.

                  Originally posted by GruenSein View Post
                  So, if you develop stuff for living the install base you can reach without having to differentiate between many platforms (which costs time, knowledge, and therefore money) is one of the biggest factors. So, the question is not necessarily whether or not people will port their stuff to Apple's platform. There are plenty of developers who specifically target it in the first place. Lots of middleware supports it. But it certainly depends on the target audience of your software.
                  Homogenity is irrelevant when you have baseline standards, and vulkan as a standard has a massive support base, 80% of the current shipments support Vulkan, the only holdouts are the Playstation, Xbox, and Apple products, and the former 2 may change with the next generation. You are arguing that metal is relevant when iOS has a whole 11% of the total shipments.

                  Comment


                  • #29
                    Originally posted by Luke_Wolf View Post
                    Give me a break... there are 7.5x as many android devices shipping as iOS per year all of which support Vulkan and due to the nature of smartphones the old ones will be quickly replaced. It's the entire reason behind smartphones having such a massive shipment number, people have short replacement cycles on phones... roughly 20% of the global population is replacing their phone each year.
                    Even 2 years after Vulkan support was added to Android in Nougat not all currently shipping Android phones support Vulkan. OEMs are still releasing new low-end phones, which likely account for a large volume of Android shipments, with SoCs that don't support Vulkan like the Moto G6 Play and Moto E5 Play that launched in April 2018 using the Snapdragon 425 and 427 with Adreno 308.

                    Originally posted by Luke_Wolf View Post
                    Homogenity is irrelevant when you have baseline standards, and vulkan as a standard has a massive support base, 80% of the current shipments support Vulkan, the only holdouts are the Playstation, Xbox, and Apple products, and the former 2 may change with the next generation. You are arguing that metal is relevant when iOS has a whole 11% of the total shipments.
                    Relying on baseline standards and claims of Vulkan support is being overly simplistic. Just because a phone ships with a Vulkan capable GPU and a Vulkan driver doesn't actually mean it's usable.

                    https://www.epicgames.com/fortnite/e...technical-blog
                    Originally posted by Epic Games
                    The Android ecosystem consists of phones made by several different manufacturers. Each phone is designed around a System-on-Chip (SOC) which includes a configuration of CPU and GPU cores. There are several common families of SOCs such as Snapdragon by Qualcomm (71% of currently supported devices) which contains an Adreno GPU, and Exynos by Samsung, the MT series by MediaTek and the Kirin series by HiSilicon all of which contain ARM Mali GPUs. Each device ships with a slightly different version of the Android operating system and most manufacturers customize the scheduler and power management features. Devices that have the same GPU also ship with different graphics driver versions. The net result is that two devices that share the same underlying hardware can have very different performance characteristics and are also subject to different bugs.
                    Originally posted by Epic Games
                    Vulkan support is not yet a requirement on Android so we cannot yet count on it being available across the entire ecosystem. Since we are only targeting more recent hardware that wasn’t a showstopper for us but we ran into several bugs and performance problems on early Vulkan drivers, the net result being that OpenGL is faster and more stable than Vulkan on most devices. That’s not surprising: the industry have had a decade to optimize and harden their implementations of OpenGL. Vulkan is a more complex API and will take some time to reach the same level of maturity.

                    We did ship support for Vulkan on the Samsung S9+ (Adreno) and Note 9 (Adreno). Working closely with engineers at Samsung we were able to optimize UE4’s Vulkan support to be faster than OpenGL by 20% on average. Going forward we are continuing to work with our hardware partners to bring high-performance Vulkan support to other devices, both giving Fortnite players on Android a better experience and improving the performance of Vulkan drivers for all developers.
                    For example, Epic Games who I think it's safe to assume know what they're talking about and even if they didn't, they've been working directly with engineers from Google, device manufacturers and SoC vendors who would know the true limitations of their products, report that most Android devices have buggy, poor-performing drivers. And fragmentation is in fact a real problem, with even the same GPU on different devices behaving very differently because different drivers. There may be billions of Android devices that claim support for Vulkan, but even with collaboration between Epic Games, on-site Google engineers, and support from SoC vendors, in the end, only 2 phone models (Samsung Galaxy S9+ and Note 9) utilizing 1 GPU (Adreno 630) have a Vulkan implementation you can ship a high-end game on. So the usable Vulkan installed base on Android for high-end games like Fortnite is basically limited to the total combined shipments of the Galaxy S9+ and Note 9 which have only been available for a few months and is presumably in the 10s of millions compared to hundreds of millions of Metal devices going back to the Apple A7 in 2013. [Correction: Fortnite installs on all Metal devices, but only runs on Metal devices with at least 2 GB of RAM so works on hundreds of millions of Metal devices going back to the Apple A8X in 2014.]



                    Originally posted by Digital Foundry
                    We played the game on all formats, using an iPhone X, Samsung Galaxy S9+ and a Windows PC (yes, there's a Windows Store version, ported by another team within the studio). Apple's Metal 2 API is the default choice for iOS, and it's fast and efficient, allowing the team to reduce the number of draw calls and to lower temperatures. Open GL ES 3.0 is the API of choice for Android, and stacking up the two versions on their respective top-tier devices, it's clear that iPhone X has the advantage with smoother play via higher frame-rates and fewer frame-pacing issues.
                    Other recent graphically intensive games like Asphalt 9 have also chosen not to use Vulkan at this time. Asphalt 9 uses Metal on iOS, but sticks with OpenGL 3.0 on Android.

                    Admittedly Fortnite is a very ambitious game for mobile so is an extreme stress test of the drivers. Other simpler Vulkan games are probably less problematic so could target more devices successfully. But simpler games could probably work just as well using OpenGL ES. Vulkan is supposed to enable the most advanced games, but right now that doesn't seem the case for the vast majority of Android devices.
                    Last edited by ltcommander.data; 08 September 2018, 12:31 PM. Reason: Added note that Fortnite only supports Metal devices with 2 GB of RAM or more.

                    Comment


                    • #30
                      Originally posted by Beerbaron23 View Post
                      So comments like how Apple is going to "Get away" with their own inhouse API and assume that Apple flat out refused Vulkan and chose their own API as they refused to work with the linux crowd is completly false made up propaganda based on assumption the writer and everyone else that just believes and parrots the same assumptions.
                      Agreed, that was a ill-considered wording on my part.

                      Comment

                      Working...
                      X