Feedback

Khronos Group Releases Vulkan... with a Hard Launch

Manufacturer: PC Perspective

Caught Up to DirectX 12 in a Single Day

The wait for Vulkan is over.

I'm not just talking about the specification. Members of the Khronos Group have also released compatible drivers, SDKs and tools to support them, conformance tests, and a proof-of-concept patch for Croteam's The Talos Principle. To reiterate, this is not a soft launch. The API, and its entire ecosystem, is out and ready for the public on Windows (at least 7+ at launch but a surprise Vista or XP announcement is technically possible) and several distributions of Linux. Google will provide an Android SDK in the near future.

View Full Size

I'm going to editorialize for the next two paragraphs. There was a concern that Vulkan would be too late. The thing is, as of today, Vulkan is now just as mature as DirectX 12. Of course, that could change at a moment's notice; we still don't know how the two APIs are being adopted behind the scenes. A few DirectX 12 titles are planned to launch in a few months, but no full, non-experimental, non-early access game currently exists. Each time I say this, someone links the Wikipedia list of DirectX 12 games. If you look at each entry, though, you'll see that all of them are either: early access, awaiting an unreleased DirectX 12 patch, or using a third-party engine (like Unreal Engine 4) that only list DirectX 12 as an experimental preview. No full, released, non-experimental DirectX 12 game exists today. Besides, if the latter counts, then you'll need to accept The Talos Principle's proof-of-concept patch, too.

But again, that could change. While today's launch speaks well to the Khronos Group and the API itself, it still needs to be adopted by third party engines, middleware, and software. These partners could, like the Khronos Group before today, be privately supporting Vulkan with the intent to flood out announcements; we won't know until they do... or don't. With the support of popular engines and frameworks, dependent software really just needs to enable it. This has not happened for DirectX 12 yet, and, now, there doesn't seem to be anything keeping it from happening for Vulkan at any moment. With the Game Developers Conference just a month away, we should soon find out.

View Full Size

But back to the announcement.

Vulkan-compatible drivers are launching today across multiple vendors and platforms, but I do not have a complete list. On Windows, I was told to expect drivers from NVIDIA for Windows 7, 8.x, 10 on Kepler and Maxwell GPUs. The standard is compatible with Fermi GPUs, but NVIDIA does not plan on supporting the API for those users due to its low market share. That said, they are paying attention to user feedback and they are not ruling it out, which probably means that they are keeping an open mind in case some piece of software gets popular and depends upon Vulkan. I have not heard from AMD or Intel about Vulkan drivers as of this writing, one way or the other. They could even arrive day one.

On Linux, NVIDIA, Intel, and Imagination Technologies have submitted conformant drivers.

Drivers alone do not make a hard launch, though. SDKs and tools have also arrived, including the LunarG SDK for Windows and Linux. LunarG is a company co-founded by Lens Owen, who had a previous graphics software company that was purchased by VMware. LunarG is backed by Valve, who also backed Vulkan in several other ways. The LunarG SDK helps developers validate their code, inspect what the API is doing, and otherwise debug. Even better, it is also open source, which means that the community can rapidly enhance it, even though it's in a releasable state as it is. RenderDoc, the open-source graphics debugger by Crytek, will also add Vulkan support. ((Update (Feb 16 @ 12:39pm EST): Baldur Karlsson has just emailed me to let me know that it was a personal project at Crytek, not a Crytek project in general, and their GitHub page is much more up-to-date than the linked site.))

View Full Size

The major downside is that Vulkan (like Mantle and DX12) isn't simple.
These APIs are verbose and very different from previous ones, which requires more effort.

Image Credit: NVIDIA

There really isn't much to say about the Vulkan launch beyond this. What graphics APIs really try to accomplish is standardizing signals that enter and leave video cards, such that the GPUs know what to do with them. For the last two decades, we've settled on an arbitrary, single, global object that you attach buffers of data to, in specific formats, and call one of a half-dozen functions to send it.

Compute APIs, like CUDA and OpenCL, decided it was more efficient to handle queues, allowing the application to write commands and send them wherever they need to go. Multiple threads can write commands, and multiple accelerators (GPUs in our case) can be targeted individually. Vulkan, like Mantle and DirectX 12, takes this metaphor and adds graphics-specific instructions to it. Moreover, GPUs can schedule memory, compute, and graphics instructions at the same time, as long as the graphics task has leftover compute and memory resources, and / or the compute task has leftover memory resources.

This is not necessarily a “better” way to do graphics programming... it's different. That said, it has the potential to be much more efficient when dealing with lots of simple tasks that are sent from multiple CPU threads, especially to multiple GPUs (which currently require the driver to figure out how to convert draw calls into separate workloads -- leading to simplifications like mirrored memory and splitting workload by neighboring frames). Lots of tasks aligns well with video games, especially ones with lots of simple objects, like strategy games, shooters with lots of debris, or any game with large crowds of people. As it becomes ubiquitous, we'll see this bottleneck disappear and games will not need to be designed around these limitations. It might even be used for drawing with cross-platform 2D APIs, like Qt or even webpages, although those two examples (especially the Web) each have other, higher-priority bottlenecks. There are also other benefits to Vulkan.

View Full Size

The WebGL comparison is probably not as common knowledge as Khronos Group believes.
Still, Khronos Group was criticized when WebGL launched as "it was too tough for Web developers".
It didn't need to be easy. Frameworks arrived and simplified everything. It's now ubiquitous.
In fact, Adobe Animate CC (the successor to Flash Pro) is now a WebGL editor (experimentally).

Open platforms are required for this to become commonplace. Engines will probably target several APIs from their internal management APIs, but you can't target users who don't fit in any bucket. Vulkan brings this capability to basically any platform, as long as it has a compute-capable GPU and a driver developer who cares.

Thankfully, it arrived before any competitor established market share.


February 16, 2016 | 02:21 PM - Posted by Anonymous (not verified)

Way to GO Khronos! Now it's time to attack that Death Star known as the M$ windows 10 ecosystem and DX12! Look out Nefarious Nadella, there is now Vulkan and no need for your cloud of spyware/ad pushing/CPU cycles stealing bloatware OS!

February 16, 2016 | 02:30 PM - Posted by FallenBytes (not verified)

Yea, lets do that. What motherboard feature do you need to enable to boot and run your computer from a graphics API?

February 16, 2016 | 02:35 PM - Posted by Jann5s

grub

February 16, 2016 | 03:39 PM - Posted by Anonymous (not verified)

Why Vulkan runs under Steam OS(Debian based) so don't make a fool of yourself! Who needs the DX12/Windows only crap, when there will be the cross platform Vulkan graphics API becoming available under linux/BSD/other non M$ OSs! You are such an egregious FOOL to think that I ment running a graphics API as an "OS"!

February 16, 2016 | 06:18 PM - Posted by Anonymous (not verified)

the asshole strikes again.

February 16, 2016 | 11:09 PM - Posted by Anonymous (not verified)

That describes youself perfectly! Thanks for letting us know!

February 17, 2016 | 01:53 AM - Posted by Scott Michaud

Let's de-escalate this, folks.

February 17, 2016 | 03:35 PM - Posted by Anonymous (not verified)

How about we re-escalate? Have you seen videos on YouTube of Talos Principle Vulkan Beta vs DX11? Vulkan runs at about 50-70% of the total speed of DX11. Not exactly a great first showing.

February 17, 2016 | 05:07 PM - Posted by Scott Michaud

DX10 was slower than DX9 at launch, too, and same with DX10 to DX11, and those didn't even require re-engineering how work is queued. The Vulkan port was also done by one guy, in three months, with a game that's optimized for DX11-like constraints. Croteam devs are amazing, but everything should take a grain of salt.

Heck, when Unreal Engine 4.9 launch with experimental DX12 support, I converted my project and brought the camera out to the corner of my most detailed map (~10,000 draw calls). I experienced about a 20% drop in performance compared to DX 11. Epic Games has since changed a lot of their "RHI" backend for DX12 and probably Vulkan, so I'll probably do more comparisons in 4.11 when it launches.

This is what I was alluding to when I said that Vulkan is neck-and-neck with DX12 until further notice. We'll need to see how Epic and other engine/middleware devs optimize for the APIs. It's possible that they can squeeze more out of DX12, or maybe more out of Vulkan, or maybe it'll be parity. Hopefully it will be based on their merits, not just memories.

February 20, 2016 | 03:23 PM - Posted by Spunjji

This post is what all tech discussions ought to be like. Doubleplusone for the informed commentary :)

February 17, 2016 | 04:04 AM - Posted by sensacion7

Available for Fedora 23 right now

$ sudo dnf copr enable ajax/vulkan
$ sudo dnf install vulkan anvil vkcube
$ vulkaninfo

Thanks from Fedora23_Fanboy

February 16, 2016 | 02:46 PM - Posted by gamerk2 (not verified)

All I'm going to say, is that there's a reason in the past 30 years we've gone away from APIs and Programming Languages that leave memory management up to the developer. Except a LOT of bugs.

I honestly expect the first wave of Vulkan/DX12 native games to be disasters on the scale of Arkham Knight.

February 16, 2016 | 03:42 PM - Posted by godrilla (not verified)

Just like all mantle titles oh wait no that was a gameworks exclusive!

February 16, 2016 | 04:10 PM - Posted by Anonymous (not verified)

Not with Gaming engines, and SDKs there to hold the hand of the script kiddies! There will even be an OpenGL to Vulkan translation layer that will still allow for that code to be ported over, while still allowing for the metallically challenged to work with Vulkan!

There will be SDKs that automate the memory management features for those that do not have the ability to manage the metal! There always has been software tool chains to help the cubical monkeys to get along with their job! There will be automated designers to generate the necessary code for the slack-jaws and keep them from having to understand all that only a competent systems software engineer understands!

Arkham Knight is the fault of the lead programmers, the bean counters, and the HR folks that hired the developers in the first place, no gaming engine and API will protect against incompetent programmers and management more interested in profits at the expense of QC!

February 16, 2016 | 07:24 PM - Posted by Anonymous (not verified)

hey us slack-jaws gotta go home and take care of the kids, the wife, and the wives of code junkies. Without us there is no industry to sale stuff too

February 16, 2016 | 11:00 PM - Posted by Anonymous (not verified)

Yes your wife Brandeen who is also your sister! "Code junkies" more like spaghetti code junkies and the usual script Kiddies with no knoledge of computer hardware! There are plenty of non slack-jaws out there to keep the economy going, while the slack-jaws only cause problems! Keep trying to call yourselves programmers but that is only fooling the other slack-jaws!

February 16, 2016 | 08:11 PM - Posted by Anonymous (not verified)

Eh, don't blame the developers for crap like that. It's the publishers pushing ridiculous deadlines and pushing stuff out before it's finished.

February 16, 2016 | 11:08 PM - Posted by Anonymous (not verified)

Developers can be crap TOO! Just like the others who think that they know their way around a computing system, just look at all those cubicles and watch the monkeys ramdomly pecking at the keys! GIGO is more the product of the QC methods in some of those development houses!

February 19, 2016 | 01:21 AM - Posted by Anonymous (not verified)

Arkham Knight was a disaster because dev used outdated bottleneck UE3.

February 16, 2016 | 07:35 PM - Posted by Alamo

it's funny how i grew from loving to hating microsoft in the last decade, gaming as trivial as it may seem, it's one of the major things that drive ppl to use a specific OS, if Valve really commits to SteamOS/vulkan, gamers will start migrating, and softwares will start rolling in on linux, we just might have a real alternative to microshiet.
ok back to earth, Devs really need to step up and pick Vulkan, the install base is larger.

February 16, 2016 | 08:34 PM - Posted by Anonymous (not verified)

Based on what I've read about DX12 vs Vulkan, other than Microsoft's "encouraging", I'm not really seeing any reason why devs would want to use DX12 - Vulkan does everything just as well, while being significantly more cross-platform.

Hopefully this means that the days of needing to run Microsoft's malware are numbered.

February 17, 2016 | 01:56 AM - Posted by Scott Michaud

Xbox One might cause some issues with that, but who knows.

February 19, 2016 | 01:10 PM - Posted by BBMan (not verified)

It had way more issues that that. It's why I returned mine 3 days after I got it for Christmas.

February 16, 2016 | 09:37 PM - Posted by rhekman

Preliminary Intel Linux drivers are also available today for Broadwell and Skylake (sources also hint at eventual support back to Sandy Bridge). https://01.org/linuxgraphics/blogs/jekstrand/2016/open-source-vulkan-dri...

February 16, 2016 | 09:37 PM - Posted by Gregster

I did a side by side comparison and whilst DX11 was faster, it was great to see Vulkan actually running in a game (The Talos Principle) and whilst it is new, I expect after some more work, it will be flying along. Great stuff and great to see.
https://www.youtube.com/watch?v=8oi7SudxllU&feature=youtu.be

February 19, 2016 | 01:12 PM - Posted by BBMan (not verified)

Yeah. I'm in with the alternative crowd here too. Linux hasn't milked me for a monthly fee yet.

February 17, 2016 | 05:34 AM - Posted by Anonymous (not verified)

Will Nvidia be "fully compliant" like they were with DX12? You know where later it turned out some features had limited resources and other was software emulation.

February 17, 2016 | 04:41 PM - Posted by svnowviwvn

So where is AMD's conformant driver.

Hint: Nowhere

February 17, 2016 | 06:15 PM - Posted by Anonymous (not verified)

Hint: http://support.amd.com/en-us/kb-articles/Pages/Radeon-Vulkan-Beta.aspx

February 17, 2016 | 09:54 PM - Posted by nobodyspecial (not verified)

Considering NV is the HEAD of KHRONOS, yes, they'll be compliant.

February 17, 2016 | 11:30 AM - Posted by Batismul (not verified)

Very excited for this and would like to see it getting used in more upcoming titles. Will make the switch to a Linux based OS so much faster for gaming.

February 17, 2016 | 01:14 PM - Posted by Anonymous (not verified)

You mean how every DX API release works, with various optional feature levels?

February 17, 2016 | 02:41 PM - Posted by Batismul (not verified)

No, I want to be able to game nicely on something other than Windows like Linux.

February 17, 2016 | 04:40 PM - Posted by svnowviwvn

No conformant AMD driver but Nvidia has conformant drivers for Android, Linux and Windows.

So much for AMD's leg up because they donated Mantel.

February 17, 2016 | 06:14 PM - Posted by Anonymous (not verified)

I dont know what you are talking about. You can download AMDs beta driver since yesterday: http://support.amd.com/en-us/kb-articles/Pages/Radeon-Vulkan-Beta.aspx

February 17, 2016 | 07:02 PM - Posted by Anonymous (not verified)

This is a nonconformant driver. Read his post carefully. The reason why they said that it's Beta is because the couldn't get a single one of their cards to be conformant with the API. AMD is not on the list as of the launch date:

https://www.khronos.org/conformance/adopters/conformant-products

February 19, 2016 | 06:54 AM - Posted by Ramon (not verified)

Sooooo glad to be able to keep my perfectly functional Windows 7 setup and forget about NSA approved Orwellian OS 10. Long live to Khronos and Vulkan!

February 19, 2016 | 01:16 PM - Posted by BBMan (not verified)

Yeah. Win7 was M$s best AFAIC. This will help it from becoming a crippled sister, but sooner or later it's going to have a hardware line drawn in the sand. And ... uhhhh ... watch those updates anyhow. Most people who use 7 and XP can be listened in on anyhow.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote><p><br>
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.