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.
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.
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.
There's absolutely nothing new about Vulkan though.
"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.
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.
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
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
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.
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.
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.
good deal for a workstation system and why buy apple keyboard and mouse for a PC?
egpu $250-$300+ for the case for pci-e X4
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.
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
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...
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).
Exactly! If you want speed, directly use the metal APIs!
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
"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.
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.
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.
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.
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.
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});
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...
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).
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.
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? ;-)
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.
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.