Vulkan Apps Now Compatible With macOS and iOS

by

Popular cross-platform 3D graphics and compute API Vulkan is gaining support for the Apple ecosystem, which means Mac and iOS developers will be able to build and run Vulkan apps on Apple devices.

Valve, LunarG, and The Brenwill Workshop, members of The Khronos Group consortium that developed Vulkan, have worked together with the Khronos Group Portability Initiative to allow Vulkan apps to be ported to Apple platforms.


The aim of Khronos Group’s Vulkan Portability Initiative is a universal subset of Vulkan 1.0 that is designed to run at native performance levels over Metal and DirectX 12 drivers. Metal and DirectX 12 are able to support almost all of Vulkan, with the exception of elements like triangle fans, separate stencil reference masks, Vulkan Event functionality, and a few other features.

Valve used Vulkan tools on macOS with Dota 2 and was able to achieve "significantly higher performance" than native OpenGL drivers.


An open source collection of tools, SDKs, and runtime libraries that enable Vulkan development and deployment on macOS and iOS is now available on the Portability Landing Page on the Khronos Group website. With Vulkan support for Mac and iOS devices, developers will be able to support multiple platforms while cutting down on porting and development costs.

"Running Vulkan applications on Apple platforms has been the number one request from developers and today’s release of the MoltenVK runtime and LunarG macOS SDK brings that capability to life,” said Neil Trevett, VP NVIDIA and Khronos Group President. “Developers are invited to download the open source Vulkan Portability tools today and provide feedback via Vulkan Ecosystem GitHub Issue. The Vulkan Portability Initiative will continue to strengthen the infrastructure and tooling around bringing Vulkan capabilities to multiple Metal and DX12 platforms - our long-term goal is to enable portable Vulkan code to be executed on any platform that developers care about."

Starting today, a MoltenVK library from The Brenwill Workshop that translates Vulkan calls into Metal calls on macOS and iOS is being open sourced.

The open source LunarG Vulkan SDK for macOS is also available today on LunarXchange, enabling developers to build, run, and debug Vulkan applications on Mac. Going forward, LunarG plans to continue to evolve its Mac SDK to add additional tools and features.

More information on Vulkan support for Apple devices can be found on The Khronos Group website.

Top Rated Comments

(View all)
Avatar
34 months ago
I don’t believe that MoltenVK will be immediately useful to most serious Mac games developers. Aspyr, Feral, Unity and here at Epic we already have direct, native Metal backends that are (or at least should be) faster and support a greater range of features than another intermediate translation library.

Specifically MoltenVK has a list of limitations that make it sufficient for porting mobile Vulkan games and games with a primarily D3D9-era rendering engine, but probably inadequate for most modern D3D11+ game engines.

Principally anything that requires geometry shaders or tessellation shaders is currently not going to work as MoltenVK doesn’t support them. They are *optional* features in Vulkan so it can still call itself conformant by contrast for D3D these are *required* features in D3D11 onward so games do use them, sometimes extensively. Moreover the approach MoltenVK takes to recompiling shaders makes it infeasible to impossible for them to be supported without significant work and performance penalties. Metal doesn’t have direct equivalents so the MoltenVK library would need to defer SPIRV to Metal translation until said shaders are used together in a Shader Pipeline at runtime. Only then could it recompile them to Metal and emulate all the necessary behaviour but this would result in a big performance hit on the CPU. It would also be harder to adopt the native features offered by Mac Metal to deal with these cases and hurt GPU performance.

The other gotcha will be emulating type conversion of data between the resources and the shader. Metal doesn’t have a performant way to do that in all cases right now, so you need to use multiple different techniques to achieve the result while minimising the performance penalty. MoltenVK appears to support only a trivial subset of D3D’s implicit resource type casts which wouldn’t be enough for UE4.

I wish them well in their efforts but this is not going to magically result in better performance in games shipped by Feral, or Epic, etc. It might well end up making it easier for smalller studios with their own engines, esp. mobile focused developers, and that is no bad thing.
Score: 10 Votes (Like | Disagree)
Avatar
34 months ago

Does seem like Metal was a step in the right direction, but could be overshadowed by a better standard?

Better? Maybe not, but cross-platform instead of proprietary.
Score: 8 Votes (Like | Disagree)
Avatar
34 months ago

Why? What would be the issue there? Lacking hardware support on iOS devices?

Mobile GPUs are architecturally *very* different from desktop GPUs so don't have the same features. Metal's API design was predominantly driven by the needs & capabilities of iOS GPUs, hence why geometry shaders are absent and why the tessellation pipeline is completely different to D3D.

Obviously the macOS hardware could support these features in a way that is directly equivalent to D3D and were Apple to do that and developers elected to use said features then those titles would need more work to run on iOS. That being said, it already takes *substantial* effort to rework a macOS title to fit on iOS, as shown by Aspyr's heroic efforts with Civ VI and Feral's equally impressive Rome & GRID ports. Given the difference in performance profile of iOS vs. macOS devices it probably wouldn't really matter as any game that used these features would likely not be viable anyway.
Score: 5 Votes (Like | Disagree)
Avatar
34 months ago

Vulkan, Khronos.. am I seeing a pattern here?

Does seem like Metal was a step in the right direction, but could be overshadowed by a better standard?

Not sure how it's being over shadowed. This is more or less just a tool to take existing Vulkan games and convert the Vulkan calls to Metal calls.
Score: 3 Votes (Like | Disagree)
Avatar
34 months ago
Live long and prosper.
Score: 3 Votes (Like | Disagree)
Avatar
34 months ago

Maybe I'm wrong here, but my understanding is that you do not have to translate the SPIRV shaders to MSL at runtime. MoltenVK apparently comes with a separate conversion tool ('https://www.moltengl.com/docs/readme/moltenvk-readme-user-guide.html') that's supposed to allow you to do this beforehand, and then you can pass your MSL shaders directly to your Vulkan code.



It's surely an extra step during the porting process, but you wouldn't have to deal with the performance hit.

That’s what I said sir, by doing this offline for SPIRV you avoid the runtime performance hit BUT you CANNOT use some/all Metal specific feature and you CANNOT emulate geometry or tessellation shaders. Emulating them requires the full set of shaders in a pipeline so that you can rewrite them to use Metal’s similar but not equivalent features. That is known only at runtime in most engines - not all though. That means combining vertex + (hull and/or geometry) shader stages into compute shaders that must run in an earlier compute command buffer, separate to the later draw call that uses the (domain + pixel shader). Plus all the associated buffer allocations and resource binding shenanigans- it’s actually bloody hard work to get right!
[doublepost=1519686438][/doublepost]

[USER=825783]@marksatt[/USER]

Good to hear some input from someone with good insight. :)

Quite a bit off-topic, but do you know what's going on with the major pauses/lag in between seemingly good frame rates in the MacOS version of Fortnite?

https://www.dropbox.com/s/nzt0h1s9hvrzgad/Fortnite_major_hiccups.m4v?dl=0

Or is the problem I see perhaps related to the NVIDIA Web Driver which is required for the GTX 970 I have to work in MacOS? Sorry, maybe I should report this somewhere else…

Looks like it is either texture streaming or shader compilation or a combination of the two. I’ve explained the challenges of dealing with the initial shader setup at runtime, even with precompiled shaders, elsewhere. It still isn’t a solved problem in UE4 or Fortnite and it likely never will be perfect. This isn’t the forum to report problems - that should be done over at the Fortnite forums and the feedback mechanism ('https://www.epicgames.com/fortnite/forums/bugs-issues/bug-reports').
Score: 3 Votes (Like | Disagree)

Top Stories

iOS 14 Widgets Offer iPhone Users Creative Home Screen Ideas

Sunday September 20, 2020 8:43 pm PDT by
Updated on September 22nd with hands on video. In iOS 14, Apple introduced ‌the concept of Home Screen‌ widgets, which provide information from apps at a glance. Widgets can be pinned to the Home Screen in various spots and sizes, allowing for many different layouts. Despite the relative lack of...

iPhone 12 Lineup Rumored to Be Named 'iPhone 12 mini,' 'iPhone 12,' 'iPhone 12 Pro,' and 'iPhone 12 Pro Max'

Monday September 21, 2020 5:24 am PDT by
Leaker known as "L0vetodream" has today shared the alleged naming for the upcoming iPhone 12 lineup on Twitter. The tweet proposes that the upcoming iPhone 12 models will be titled "iPhone 12 mini," "iPhone 12," "iPhone 12 Pro," and "iPhone 12 Pro Max." The names likely correspond to the three expected sizes of iPhone 12, with the 5.4-inch model being the iPhone 12 mini, the 6.7-inch model ...

PSA: New Apple Watch Owners Have to Return Entire Device for Ill-Fitting Solo Loop or Braided Solo Loop

Monday September 21, 2020 3:26 pm PDT by
With the Apple Watch Series 6, Apple introduced two new band options, the Solo Loop and the Braided Solo Loop. These new bands are unique because they have no clasps, buckles, or other fasteners, and instead use a stretch design to allow them to pull onto the wrist over the hand. Because these bands are not adjustable, Apple sells each one in nine different sizes to make sure each person...

Apple Releases First Public Betas of iOS 14.2 and iPadOS 14.2 With New Shazam Control Center Options

Monday September 21, 2020 10:34 am PDT by
Apple today seeded the first public betas of upcoming iOS 14.2 and iPadOS 14.2 updates to its public beta testing group, a few days after seeding the first betas to developers and a little less than a week after releasing the iOS 14 and iPadOS 14 updates. Public beta testers who have signed up for Apple's beta testing program can download the iOS and iPadOS‌ 14.2 updates over the air after ...

Kuo: Apple to Accelerate Adoption of Mini-LED Displays in iPad and Mac Notebook Lineups

Sunday September 20, 2020 10:00 pm PDT by
Increased competition among Apple's suppliers for mini-LED display chips will accelerate the company's adoption of the advanced technology in its iPad and MacBook lineups, according to a new research note from analyst Ming-Chi Kuo seen by MacRumors. Kuo says that while Epistar had been predicted to be the exclusive supplier of mini-LED chips for Apple products in 2021, Sanan Optoelectronics...

AirPods Studio Rumored to Come With U1 Chip, Ultra-Wideband Said to Be Vital to Future Apple Ecosystem

Sunday September 20, 2020 6:17 am PDT by
Proven leaker known as "L0vetodream" has today shared a range of information about the ultra-wideband U1 chip in Apple's upcoming AirTags item trackers and AirPods Studio headphones. The first of a series of tweets shared today simply stated that AirPods Studio will contain an ultra-wideband U1 chip. It seems likely that the U1 chip would be used in AirPods Studio to track the location of...

AT&T Already Working on 6G, Says 5G iPhones Might Not Be 'Massive Event' Due to Economic Uncertainty

Monday September 21, 2020 10:05 am PDT by
Apple's upcoming launch of 5G iPhones might not be a "massive event" due to economic uncertainty amid the global health crisis, AT&T Communications CEO Jeff McElfresh said in a paywalled interview published by CNBC. "I do believe that you will see many of the iPhone subscribers move to upgrade to the device," said McElfresh. "But I wouldn't forecast that it's going to be a massive event. I...

Microsoft Announces Outlook for Mac Redesign, Improvements to iOS and watchOS Apps

Tuesday September 22, 2020 8:56 am PDT by
Microsoft has today announced plans to bring a new design to its Outlook for Mac app along with several other improvements and features for Outlook on iOS and watchOS. In preparation for the public release of macOS Big Sur, Microsoft has been testing a new design for Outlook on Mac. The design includes Microsoft's Fluent icons and several design cues from Big Sur such as rounded corners....

iOS 14 Adoption Surpasses 25% Across iPhone and iPad Five Days After Release

Monday September 21, 2020 9:06 am PDT by
Five days after Apple released iOS 14, adoption of the software update has reached approximately 26 percent of active iPhone, iPad, and iPod touch devices, according to mobile analytics company Mixpanel. This includes iPadOS 14. iOS 14 adoption appears to be outpacing iOS 13, which was installed on approximately 20 percent of active devices one week after its release last year, according to...

When Will the iPhone 12 Launch? Here's What We Know

Wednesday September 16, 2020 6:12 am PDT by
Yesterday's "Time Flies" Apple event saw the release of the Apple Watch Series 6, Apple Watch SE, iPad 8, and iPad Air 4, but no new iPhone models. Rumors before the event strongly alleged that it would not see the unveiling of new iPhones, with many reports pointing to an October launch. The lack of new iPhone models yesterday seems to confirm that the iPhone 12 lineup will not appear...