Khronos announces Vulkan (glNext/ New OpenGL)

LeviathanZERO

Supreme [H]ardness
Joined
Dec 20, 2003
Messages
6,496
https://www.khronos.org/vulkan

Vulkan is the new generation, open standard API for high-efficiency access to graphics and compute on modern GPUs. This ground-up design, previously referred to as the Next Generation OpenGL Initiative, provides applications direct control over GPU acceleration for maximized performance and predictability.

“Industry standard APIs like Vulkan are a critical part of enabling developers to bring the best possible experience to customers on multiple platforms. Valve and the other Khronos members are working hard to ensure that this high-performance graphics interface is made available as widely as possible and we view it as a critical component of SteamOS and future Valve games.”
Gabe Newell - Valve

Direct control over GPU operation, with minimized driver overhead for maximum performance
Multi-threading-friendly architecture to increase overall system performance
Designed to be used in a wide variety of devices including mobile, desktop, consoles, and embedded platforms
Uses Khronos’ new SPIR-V™ intermediate representation for shading language flexibility and simplified drivers (see more on SPIR-V here)
Extensible layered architecture enables innovative tools without impacting production performance while validating, debugging, and profiling
Simpler drivers for low-overhead efficiency and cross vendor portability

Valve is hosting a preview, Thursday
Vulkan: The Future of High Performance Graphics – hosted by Valve
Thursday, March 5 at 10-11AM
Venue: Room 2006 in the West Hall of the GDC Conference
A technical preview of the Vulkan API, with advanced techniques and live demos of real-world applications running on Vulkan drivers and hardware

Khronos sessions at GDC:
https://www.khronos.org/news/events/gdc-2015

previously known glNext Valve session:
http://schedule.gdconf.com/session/glnext-the-future-of-high-performance-graphics-presented-by-valve
 
Last edited:
This has my attention, quite eager to see how everything will be integrated together.
 
Given AMD's contribution of Mantle to this effort (see Anandtech) I'm hoping this means we'll see great support for this on Radeons.
 
...aaand it looks like it's largely based off Mantle. Most Vulkan functions (that we can see so far in the little media floating around right now) are identical to Mantle except they swapped the gr prefix for vk.
 
This is definitely the kind of thing I support, and I'm glad to see Valve involved. OpenGL and the entire Khronos group of open tech and specs are the way to break the stranglehold of proprietary, platform-or-hardware-locked garbage like DirectX and PhysX.

I wonder... AMD recently made an announcement talking about how Mantle 1.0 is basically EOL'ed etc..and they're focusing on another direction et.c.. I really hope this is it! AMD has made some great strides in embracing open tech (there are rumors that for the 300 series, one will be able to use completely open source drivers, on all platforms. That is to say, Catalyst for GCN 2.0 hardware will be open source entirely, unencumbered by patents and borrowed stuff on older hardware!), so I hope that Mantle isn't a competitor for this, as much as it is a partnership and will plug-in to open Khronos features.
 
From Anandtech:
In fact Khronos has confirmed that AMD has contributed Mantle towards the development of Vulkan, and though we need to be clear that Vulkan is not Mantle, Mantle was used to bootstrap the process and speed its development, making Vulkan a derivation of sorts of Mantle (think Unix family tree). What has changed from Mantle is that Khronos has gone through a period of refinement, keeping what worked in Vulcan and throwing out portions of Mantle that didn’t work well – particularly HLSL and anything that would prevent the API from being cross-vendor – replacing it with the other necessary/better functionality.
 
...aaand it looks like it's largely based off Mantle. Most Vulkan functions (that we can see so far in the little media floating around right now) are identical to Mantle except they swapped the gr prefix for vk.

Yup.
Here's some Vulkan code
vkCmdBindDescriptorSet(cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS,
textureDescriptorSet[0], 0);
vkQueueSubmit(graphicsQueue, 1, &cmdBuffer, 0, 0, fence);
vkMapMemory(staticUniformBufferMemory, 0, (void **)&data);
// ...
vkUnmapMemory(staticUniformBufferMemory);

Now look at the name of the Mantle functions from here: http://stackoverflow.com/questions/20966317/does-amd-mantle-api-already-available

grCmdBindDescriptorSet
grQueueSubmit
grMapMemory
grUnmapMemory

This is the best case scenario for AMD. Pretty much all of their work has become absorbed into an industry standard that all vendors can adopt. Kudos AMD.
 
Here's some more Vulkan code directly from the prototype debugger:

In fact just go down the list of the commands in the prototype debugger and compare them with this list(http://www.geeks3d.com/20140203/amd...ngl-extensions-and-mantle-api-functions-list/) and you'll see they are ALL identical. The 2 letter prefixes (gr for Mantle, vk for Vulkan) are simply cosmetic for those of you who are going to attempt to nitpick and/or are unaware.
tHdyOBE.jpg


And here's some more Mantle code:

OIfm9B0.jpg
 
Looks like standard code to me that would show up in a lot of programs.

It's like saying Mantle uses video cards and OpenGL uses video cards. Thanks Mantle!
 
Here are the companies that contributed to GLnext but did not feel the need to pat themselves on the back on every forum.

0WMviuq.jpg
 
I haven't read through all the details, but does this support gpu's from multiple vendors working together? Also spanning of ram across cards instead of mirroring? Those were both 2 big surprises for me from DX12. The reduction in cpu overhead is great, but I also like the ability to bolt on extra gpu resources and memory.
 
I haven't read through all the details, but does this support gpu's from multiple vendors working together? Also spanning of ram across cards instead of mirroring? Those were both 2 big surprises for me from DX12. The reduction in cpu overhead is great, but I also like the ability to bolt on extra gpu resources and memory.
Mantle supports spanning memory across video cards and Vulkan is based on Mantle so almost assuredly yes.
 
Looks like standard code to me that would show up in a lot of programs.

It's like saying Mantle uses video cards and OpenGL uses video cards. Thanks Mantle!
You're trying way too hard these days.
 
Personally I don't really care where glnext vulcan came from. All that matters is if it could win enough adoption by the industry to be a viable competitor to DX12. I'm glad Valve will be involve in it, but they really need to start making games again, lol. Other than that, I'm waiting to see who else will support it.
 
I don't get the train of thought from Nvidia Fanboys. Who the hell cares if its based on Mantle? AMD is trying to push for better performance for everyone and proved that DX 11 is holding back our cards.

Even if the code isn't identical (and for OpenGL it does appear to be) they still provided guidance for how to improve DX12/OpenGL based on what they did with Mantle.

Thats a huge win for everyone, whats wrong with giving AMD some credit for helping with it?
 
I don't get the train of thought from Nvidia Fanboys. Who the hell cares if its based on Mantle? AMD is trying to push for better performance for everyone and proved that DX 11 is holding back our cards. Even if the code isn't identical (and for OpenGL it does appear to be) they still provided guidance for how to improve DX12/OpenGL based on what they did with Mantle. Thats a huge win for everyone, whats wrong with giving AMD some credit for helping with it?

Well I skimmed this thread and didn't see NV fanboys griping. And if I missed one then they're extremely short-sighted and just kneejerking at headlines they don't understand and haven't done much reading on this API. Its got insane potential. Nvidia fanboy here, and I think its the best thing to happen to PC gaming in years. Mantle wasn't going to break PC gaming free of the paywalled DirectX monopoly owned and controlled by a corporation that doesn't actually care about PC gaming, only platform lock-in.

But Vulkan has the potential, and pretty much every industry heavyweight behind it. And Valve appears to be leading the charge by focusing Source Engine 2 on Vulkan (though it'll backend to D3D as well, however don't be surprised to see Vulkan performance pull ahead of DX12 over time as its able to iterate faster than a new DX version every 3-4 years). And I think its great that it was able to leverage the work already done by AMD in Mantle to accelerate development. In fairness, DirectX 12 benefited from collaboration with AMD too.

A brand-agnostic, low level API that allows a developer to code once and extend to AMD, Nvidia and Intel across Windows, Mac, Linux, and Mobile/ARM/Android/iOS has the potential to be a pretty big deal. One of Khronos' slides from an earlier presentation:

S35c68b.png
 
Last edited:
This is definitely the kind of thing I support, and I'm glad to see Valve involved. OpenGL and the entire Khronos group of open tech and specs are the way to break the stranglehold of proprietary, platform-or-hardware-locked garbage like DirectX and PhysX.

This precisely. Though its not a new version of OpenGL. OpenGL goes bye bye - there's no OGL backward compatibility in Vulkan. And that's a beautiful thing.

Calling it now: Star Wars Battlefront and/or Battlefield 5 will support Vulkan and DirectX, instead of Mantle and DirectX or DirectX alone. DICE creative director once stated:

"We strongly want to get into Linux for a reason. It took Halo for the first Xbox to kick off and go crazy — usually, it takes one killer app or game and then people are more than willing [to adopt it] — it is not hard to get your hands on Linux, for example, it only takes one game that motivates you to go there." http://www.polygon.com/2013/10/12/4...ler-game-to-explode-says-battlefield-director

Now consider that the guy on the DICE Frostbite engine team that spearheaded the Mantle co-development with AMD to get it into Battlefield 4 - Johan Andersson - is the same guy that's part of Khronos helping to develop Vulkan, and will be one of the presenters at the Vulkan unveiling/presentation at GDC on Thursday. Coincidence? ;)
 
Last edited:
I don't get the train of thought from Nvidia Fanboys. Who the hell cares if its based on Mantle? AMD is trying to push for better performance for everyone and proved that DX 11 is holding back our cards.

Even if the code isn't identical (and for OpenGL it does appear to be) they still provided guidance for how to improve DX12/OpenGL based on what they did with Mantle.

Thats a huge win for everyone, whats wrong with giving AMD some credit for helping with it?

Where did I said people should not give AMD any credit?

I'm just saying as an end user, I don't see how it makes any difference where glnext comes from. glnext will be judge on it's own merit, but more importantly it's success will depend on it's adoption by the industry. These are, to me, the more interesting points because it will make a difference for us end users, it will determine if open source OS can be a viable gaming platform in the future.

I also never deny whether glnext has anything to do with Mantel or not. Someone could have just posted the quote about it's relation to Mental and I would take that as it is. I'm not going to delve into it's source code and try to prove or disprove it, as I don't think it's even an interesting point to discuss, because as I said glnex will be judge on it's own.
 
I don't get the train of thought from Nvidia Fanboys. Who the hell cares if its based on Mantle? AMD is trying to push for better performance for everyone and proved that DX 11 is holding back our cards.

Even if the code isn't identical (and for OpenGL it does appear to be) they still provided guidance for how to improve DX12/OpenGL based on what they did with Mantle.

Thats a huge win for everyone, whats wrong with giving AMD some credit for helping with it?

This is a huge win for AMD, not a freebee for Khronos and Microsoft (DX12), though its a huge win for gamers as well. Their APUs have weaker CPU cores and better GPUs then Intel. Having Mantle like APIs as Vulcan and DX12 seems to be, would greatly benefit their product lineup, both CPU and APU wise. Sure, Mantle could be a selling point as an AMD exclusive, but having the capabilities on the standard APIs is much much more worth for AMD.

Sure, kudos to AMD for pushing this so us gamers can benefit from it, they do deserve kudos, but its not done only out of the kindness of their cooperate hearts. This and DX12 is a golden ticket for AMD as a company. As with Mantle and also seen on consoles, you can get away with much weaker CPU cores and still have a smooth gaming experience, so focus shifts more over to the GPU where AMDs APU have a much greater advantage over Intel.

This is, in my opinion, jackpot for AMD.
 
The big benefit to game developers will be the same as what openGL once offered. Write one code base that runs everywhere rather than two, three, whatever. I really hope this takes off.
 
Sure, kudos to AMD for pushing this so us gamers can benefit from it, they do deserve kudos, but its not done only out of the kindness of their cooperate hearts. This and DX12 is a golden ticket for AMD as a company. As with Mantle and also seen on consoles, you can get away with much weaker CPU cores and still have a smooth gaming experience, so focus shifts more over to the GPU where AMDs APU have a much greater advantage over Intel.

I think this is pretty close if not right on the money. AMD has made various statements about Mantle along the way, that they would (paraphrasing) like nothing more than if everyone else took it and ran with it. Granted, I'm sure they wouldn't have minded if developers had been more enthusiastic and rushed to get Mantle into their games without arm twisting, but their endgame by giving it away to MS & Khronos seems obvious, that a rising tide lifts all their hardware offerings especially in segments where they struggle. Ofcourse it lifts everyone else's too. The takeaway for me is the potential for AMD-APU based Steam Machines to hit some very compelling pricepoints at performance levels that far exceed Xbone/PS4.

It's a win-win any way you slice it, I really can't see a downside, unless maybe you're a MS shareholder. Yes DX12 benefitted, but I doubt MS appreciates the very real threat that Vulkan now poses to Windows gaming lock-in. Vulkan will be mostly a buzzword API this year, until at least November when the first SteamOS games based on it launch, but Valve is always playing a long game.
 
Last edited:
This is a huge win for AMD, not a freebee for Khronos and Microsoft (DX12), though its a huge win for gamers as well. Their APUs have weaker CPU cores and better GPUs then Intel. Having Mantle like APIs as Vulcan and DX12 seems to be, would greatly benefit their product lineup, both CPU and APU wise. Sure, Mantle could be a selling point as an AMD exclusive, but having the capabilities on the standard APIs is much much more worth for AMD.

Sure, kudos to AMD for pushing this so us gamers can benefit from it, they do deserve kudos, but its not done only out of the kindness of their cooperate hearts. This and DX12 is a golden ticket for AMD as a company. As with Mantle and also seen on consoles, you can get away with much weaker CPU cores and still have a smooth gaming experience, so focus shifts more over to the GPU where AMDs APU have a much greater advantage over Intel.

This is, in my opinion, jackpot for AMD.

Well you could say that AMD did set out to make a statement and they did it. I hope we see more of Mantle in the future, keep improving the software stack and hopefully down the road have an API that won't just linger like OpenGL.
 
A brand-agnostic, low level API that allows a developer to code once and extend to AMD, Nvidia and Intel across Windows, Mac, Linux, and Mobile/ARM/Android/iOS has the potential to be a pretty big deal. One of Khronos' slides from an earlier presentation:

I guess I could go against my nature and try to not be too pessimistic about this, but...

My train of thought that I expressed during the Mantle announcement days is now starting to get even more unnerved w/ some of the same lingo being thrown around with DX12 and Vulkan, in particular the "low-level" API talk. Of course the devil's going to be in the details (which we really don't have yet), but we don't want a truly "low-level" API, do we? That doesn't work for PC games. That's something for a targeted piece of hardware (console).

So I think there is a kind of "slider" where the closer you get to "low-level" the further away you get from "platform independence", and we're talking all the way down to the GPU level, not just OS or IHV.

Now it could be that they're just exaggerating this "low-level" bullet point and it's not going to be so bad; and it's true that we've had more jibber-jabber than actual facts about these APIs, but there's definitely a reason to be trepid.

Let's say a game comes out with Vulkan graphics rendering and it works with NVIDIA's recent GPUs (let's say Fermi to Maxwell). And let's say five years from now you get the latest NVIDIA GPU, like the Titan Zebra X or whatever. Will the old game automatically run on the completely new and different architecture? If so, it's not really a "low-level" API, and we're staring at a bit of a marketing snow-job. If it doesn't work, then can we reasonably expect game developers to go back and update their 5-year-old games for new GPU architectures? Everybody knows that's not going to happen.

Currently what you have is a game that targets a particular DX / OGL feature level, and then it's up to NVIDIA and AMD to make that version of DX / OGL spec work on their new GPUs. That work is done in the driver. If the idea is to circumvent the driver as much as possible, how much will NVIDIA and AMD be able to support old Vulkan game code on new GPUs?

This precisely. Though its not a new version of OpenGL. OpenGL goes bye bye - there's no OGL backward compatibility in Vulkan. And that's a beautiful thing.

It looks like Khronos is going to maintain a separate line for OpenGL -- probably because they haven't gone completely nuts. So I think we will see an OGL 5.0, etc. in time. But now it raises a question for developers: will they need to target both OpenGL and Vulkan for their rendering backends?

Frankly, I think this whole thing (Mantle / DX12 / Vulkan) is a load of shiit. I suspect in about five years people will come to their senses and look back and ask what the hell everyone was smoking.

Khronos should have just cleaned up all the crap in OpenGL and made a "more friendly" programming interface (not necessarily "low-level"), came up with a better multithreading ability, and worked on the shader stuff (maybe SPIR-V will be okay), and maybe provide a better way for programmers to handle extensions across vendors.



tl;dr: Am I the only one that doesn't think these things are just big marketing gimmicks?
 
Frankly, I think this whole thing (Mantle / DX12 / Vulkan) is a load of shiit. I suspect in about five years people will come to their senses and look back and ask what the hell everyone was smoking.

Khronos should have just cleaned up all the crap in OpenGL and made a "more friendly" programming interface (not necessarily "low-level"), came up with a better multithreading ability, and worked on the shader stuff (maybe SPIR-V will be okay), and maybe provide a better way for programmers to handle extensions across vendors.

tl;dr: Am I the only one that doesn't think these things are just big marketing gimmicks?

Well, programmers that work on 3D engine teams, developers that work with 3D graphics every day at major AAA studios, they seem to think this is beneficial and has merit, and for once seem to be united in support of something. That almost never happens. That wasn't the case with Mantle since it was locked to one IHV. But Mantle did create demonstrable efficiencies and increased framerates; it wasn't snake oil (Nvidia fanboy admitting it). So let's see where it goes, and if we end up with better framerates than predecessor API's were providing, what's not to like? And if they're a marketing gimmick, well it'll all come out in the benchmarks.

However, don't throw DX12 and Microsoft's windows lock-in marketing endgame in the same bucket with Vulkan. The underlying techs and featuresets may be similar but the spirit and intent of these API's are diametrically opposed:

DirectX - One proprietary API locked to one proprietary platform, paywalled, older versions of underlying platform not entitled to latest API features, iterates only every 4-5 years typically (timing tied to major new releases of underlying platform).

Vulkan - One open API for all platforms both open or proprietary, no paywall, no arbitrary restrictions on underlying platform access to latest API features, likely to iterate and improve rapidly in the absence of external timing factors tied to corporate interests and marketing initiatives.
 
Last edited:
The Mantle approach to performance is fundamentally idiotic. There was too much focus on the idea of having a gazillion draw calls per second like it was some big e-peen contest. That's not how to take advantage of a modern GPU.

Let's say you have to pick up 50 items at the grocery store.

The Mantle way: Buy a Porsche and zoom to the grocery store, pick up an item, and zoom back home. Rinse and repeat an additional 49 times. Or, if you're REALLY good, fire up 8 Porsches and make 7 simultaneous trips each, without getting into each other's way on the single-lane road.

The OpenGL AZDO way: Just get any car to the store and pick up all 50 items and plop them in the trunk and go the f home.

Now, how do you guys do your grocery shopping? The Mantle way or the AZDO way?
 
My thing is this, programmers and developers that work on 3D engines and in 3D graphics every single at major AAA studios think this is beneficial and a good idea, and for once seem to be united in support of something. That wasn't so much the case with Mantle since it was locked to a IHV brand. So let's see where it goes? And if we end up with better framerates than predecessor API's were providing, what wouldn't be to like?

I don't think that developer support is as united as it seems. There are some big names that carry weight that support these kinds of things, so that makes news. Of course every dev shop has to be on board to make it look like they're hip and all that crap.

When they have to start maintaining 25,000 branches of code to support every GPU combination out there -- especially on mobile -- we'll see if they're still beaming sunshine and lollipops.

But like you say the good news about Vulkan is that it's open so if things aren't working out for devs, they'll get changed in quick time.
 
The Mantle approach to performance is fundamentally idiotic. There was too much focus on the idea of having a gazillion draw calls per second like it was some big e-peen contest. That's not how to take advantage of a modern GPU.

Let's say you have to pick up 50 items at the grocery store.

The Mantle way: Buy a Porsche and zoom to the grocery store, pick up an item, and zoom back home. Rinse and repeat an additional 49 times. Or, if you're REALLY good, fire up 8 Porsches and make 7 simultaneous trips each, without getting into each other's way on the single-lane road.

The OpenGL AZDO way: Just get any car to the store and pick up all 50 items and plop them in the trunk and go the f home.

Now, how do you guys do your grocery shopping? The Mantle way or the AZDO way?

That is a terrible analogy since that isn't describing how either one actually works.
 
Now, how do you guys do your grocery shopping? The Mantle way or the AZDO way?

Why would I not trust the many developers who have said the current GL approach is not good? What more do you honestly want? Please tell me why and how you know better than skilled developers in a way that doesn't revolve around some hilarious conspiracy.

Going back in time...
glNext will just be the AZDO stuff plus the new command list thingy from nvidia, and a re-do of how the shaders are going to be done and probably an easier programming API since everybody complains about that. I also suspect they're going to merge all the different GLs like WebGL, GLES, etc. into one.

The two Valve employees presenting glNext at GDC are actually former nvidia devs.

I'm going to call not a chance - it's going to be a massive API change or that will be all she wrote.

Do you know why this didn't turn out to be the case?

Because nobody fucking wanted it to - not because of some preposterous behind the scenes mustache-twirling connivance. Developers wanted an overhaul, and here it is.

I don't think that developer support is as united as it seems. There are some big names that carry weight that support these kinds of things, so that makes news. Of course every dev shop has to be on board to make it look like they're hip and all that crap.

At least a couple major engines will have support. Source 2 is guaranteed, and Unreal Engine 4 is probably more or less the same. The Frostbite team has expressed interest in Linux and other platforms, and they already have a Mantle base to build off so they're a leg up to begin.

When they have to start maintaining 25,000 branches of code to support every GPU combination out there -- especially on mobile -- we'll see if they're still beaming sunshine and lollipops.

Why would this ever happen? Nothing changes from how it's done now.
 
Last edited:
I think you are being too specific to "metal/low level API". Sure in consoles it is to specific hardware and performance level. But a low level API does not necessarily have to meet a specific performance level generally only architecture. So right now there would be 5 at most? Kepler, Maxwell, preGCN, GCN and Intels(not sure if Irispro and the norms are different). So they wouldn't necessarily be coding for the 5 and each performance level specific, though maybe to amount of Vram.

I think generally most aren't going on about Low-Level API specifically as much as lower overhead API, which is what Mantle showed. Look at any BF4 frame time graph and you will see the glory that is Mantle= the straightest-smoothest graph ever. And don't forget Civ-BE where Mantle shined light-years above DX.
 
Do you know why this didn't turn out to be the case?

Because nobody fucking wanted it to - not because of some preposterous behind the scenes mustache-twirling connivance. Developers wanted an overhaul, and here it is.

It'll be dead within 3 years.

Assuming it even comes to fruition other than some tech demos.
 
Back
Top