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.

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

vulkandota2
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

marksatt Avatar
48 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)
Janichsan Avatar
48 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)
marksatt Avatar
48 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)
Rudy69 Avatar
48 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)
cube Avatar
48 months ago
Live long and prosper.
Score: 3 Votes (Like | Disagree)
marksatt Avatar
48 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]
@marksatt

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)

Related Stories

studio buds family

Beats Studio Buds Debuting Today With Active Noise Cancellation, Stemless Design, and More for $150

Monday June 14, 2021 8:00 am PDT by
We've seen a lot of teasers about the Beats Studio Buds over the past month since they first showed up in Apple's beta software updates, and today they're finally official. The Beats Studio Buds are available to order today in red, white, and black ahead of a June 24 ship date, and they're priced at $149.99. The Studio Buds are the first Beats-branded earbuds to truly compete with AirPods...
airtag in hand

Apple Enhancing AirTags Anti-Stalking Measures With Android App and Shorter Sound Intervals

Thursday June 3, 2021 11:10 am PDT by
Apple is enhancing AirTags security to prevent stalking using the Bluetooth devices, Apple told CNET today. Apple is already sending out over-the-air updates to AirTags that will shorten the amount of time before an unknown AirTag alerts you if it is in your possession. At the current time, AirTags play a sound after three days of being away from their owner. After the update, AirTags will...
maxresdefault

Here's How Apple's New iPhone to iPhone Data Migration Feature Works in iOS 12.4

Tuesday July 23, 2019 1:20 pm PDT by
Apple this week released iOS 12.4, the newest version of iOS 12 available for iPhones and iPads. One of the new features in iOS 12.4 is an updated data migration option that uses device to device transfers rather than relying on iCloud. Apple didn't provide much information on the new data migration feature, so we thought we'd check it out in our latest YouTube video. Subscribe to the ...
youtube apple tv

YouTube Discontinuing 3rd-Generation Apple TV App, AirPlay Still Available

Wednesday February 3, 2021 3:09 pm PST by
YouTube is planning to stop supporting its YouTube app on the third-generation Apple TV models, where YouTube has long been available as a channel option. A 9to5Mac reader received a message about the upcoming app discontinuation, which is set to take place in March.Starting early March, the YouTube app will no longer be available on Apple TV (3rd generation). You can still watch YouTube on...
macos catalina legacy system extension alert

Apple Begins Warning Users That 'Legacy System Extensions' Won't Work With a Future Version of macOS

Wednesday March 25, 2020 9:53 am PDT by
Apple has shared a new support document that indicates kernel extensions — which it calls "legacy system extensions" — will not be compatible with a future version of macOS because they "aren't as secure or reliable as modern alternatives."System extensions are a category of software that works in the background to extend the functionality of your Mac. Some apps install kernel extensions, which...
os x mountain lion macs 16x9 2

Apple Makes OS X Lion and Mountain Lion Free to Download

Wednesday June 30, 2021 12:19 pm PDT by
Apple recently dropped the $19.99 fee for OS X Lion and Mountain Lion, making the older Mac updates free to download, reports Macworld. Apple has kept OS X 10.7 Lion and OS X 10.8 Mountain Lion available for customers who have machines limited to the older software, but until recently, Apple was charging $19.99 to get download codes for the updates. As of last week, these updates no...
airtag precision finding

AirTag Includes U1 Chip for 'Precision Finding' Feature

Tuesday April 20, 2021 12:11 pm PDT by
Apple's long-awaited AirTag was finally unveiled today, and as expected, the small circle-shaped accessories can be attached to items like wallets, keys, and more to allow them to be tracked in the Find My app. As was rumored ahead of release, each AirTag is equipped with a U1 chip, and on devices that also have U1 chips, there's a Precision Finding feature. U1 Ultra Wideband chips are...
iOS 15 General Feature Yellow

Everything New in iOS 15 Beta 6: SharePlay Disabled, Safari Redesigned and More

Tuesday August 17, 2021 2:12 pm PDT by
Apple released the sixth beta of iOS 15 just a week after the fifth beta, but the new update brings some of the most significant tweaks that we've seen to iOS 15 during the beta testing period. Safari Redesign Apple in iOS 15 beta 6 has added a toggle to move the Safari address bar to the top of the interface, which returns Safari to an iOS 14-like design and mitigates all of the Safari...
m1 macbook air

Kuo: Mini-LED MacBook Air Coming in Mid-2022

Thursday July 22, 2021 7:48 pm PDT by
Apple will release a new version of the MacBook Air around the middle of 2022, Apple analyst Ming-Chi Kuo said today in note to investors seen by MacRumors. The upcoming MacBook Air will feature a 13.3-inch mini-LED display, which would make it the second Mac to gain mini-LED technology after the 2021 MacBook Pro, which is rumored to include a mini-LED display and is expected to launch later ...
2016 macbook pro flexgate b

Apple Faces Another Class-Action MacBook Pro ‘Flexgate’ Lawsuit

Thursday August 20, 2020 6:43 am PDT by
Another class-action complaint has been lodged against Apple, which claims that the company was aware of a MacBook Pro design flaw that caused some devices to have backlight display issues (via Apple Insider). The so-called "flexgate" problem was present in some MacBook Pro models manufactured between 2016 and 2017. The problem appears as dark patches along the bottom of the MacBook Pro's...