Showing posts with label Vulkan. Show all posts
Showing posts with label Vulkan. Show all posts

March 21, 2017

Vulkan will have multi-GPU support on Windows 7 & 8, after all.

This is good news for people interested in the Vulkan API, and in competition generally, at least when it comes to gaming.

From Dark Side Of Gaming:
Last week, we informed you about Vulkan support multiple GPUs only in Windows 10. Well, it appears that won’t be the case as the Khronos Group has announced that Vulkan will also support multi-GPUs in Windows 7 and Windows 8.1 (as well as in Linux).
As the Khronos Group claimed:
“The good news is that the Vulkan multi-GPU specification is very definitely NOT tied to Windows 10. It is possible to implement the Vulkan multi-GPU extension on any desktop OS including Windows 7, 8.X and 10 and Linux.”
The Khronos Group has also commented on its GDC 2017 slides that, obviously, mislead us.
“Some of the Khronos GDC presentations mentioned that for Vulkan multi-GPU functionality, Windows Display Driver Model (WDDM) must be in Linked Display Adapter (LDA) mode. That was not a very clear statement that has caused some confusion. And so it is worth clarifying that:
  1. The use of WDDM is referring to the use of Vulkan multi-GPU functionality on Windows. On other OS, WDDM is not necessary to implement the Vulkan multi-GPU extension.
  2. On Windows, the use of LDA mode can make implementing Vulkan multi-GPU functionality easier, and will probably be used by most implementations, but it is not strictly necessary.
  3. If an implementation on Windows does decide to use LDA mode, it is NOT tied to Windows 10. LDA mode has been available on many versions of Windows, including Windows 7 and 8.X.”
I don't know what happened here -- whether Kronos Group's previous communication on this was just unclear, or just so unpopular that they decided to reverse course on this one -- but either way, this is a positive development for Vulkan. And more competition is likely to be a good thing for gamers, too, especially those wanting to game with Linux, or with Linux-like platforms like MacOS/iOS, Orbis/PS4, and Android.

March 19, 2017

Vulkan takes a step forwards

Kronos Group's new, cross-platform API has had something of an up-and-down week. It was just days ago that they announced that multi-GPU support for Windows would be restricted to Windows 10 only, but not restricted on Linux, MacOS, or other platforms, a decision which had people scratching their heads. Today, though, comes the news that at least one high-profile game has decided to port their game from DirectX to to Vulkan, rather than move to DirectX 12.

From PCGamesN:
In a forum post over on the programming forums for Star Citizen, director of graphics engineering Ali Brown has announced that Star Citizen will now use Khronos’ Vulkan API, rather than switching to the latest edition of DirectX. While the development team had previously stated their desire to support DX12, Vulkan is “a more logical rendering API” which will benefit all users.
One of the main reasons Brown gives for not supporting DX12 is that “it doesn't force our users to upgrade to Windows 10” and means that Star Citizen can be developed with “a single graphics API that could be used on all Windows 7, 8, 10 & Linux.” As Star Citizen is targeted to be a multiplatform PC title, using Vulkan makes a lot more sense than having to spend a large amount of time reworking the game just to work on Linux.
[...]
According to Brown, DX12 “would only be considered if we found it gave us a specific and substantial advantage over Vulkan,” and even then the APIs “aren't that different.” If anything is subject to change, you can be certain the boffins over at Cloud Imperium Games will let their legion of pilots know.
This is pretty much exactly what Kronos Group are hoping for. Game development, generally, has been trending in a cross-platform direction, with an increasing number of new games showing up on every platform, rather than being restricted to just one. A cross-platform API should make that easier, since the entire game doesn't need to be reworked nearly as extensively for each new port. At least, that's the theory.

That was also the theory behind OpenGL, though, and OpenGL never did manage to grow into an effective competitor for DirectX on Windows... which is the same as saying that it never really penetrated the PC gaming space. Even the Unity engine supports both DirectX and OpenGL: DirectX for PC and XBox, and OpenGL for everyone else. In order to really compete in PC Gaming, Vulkan will need to be seen as preferable to DirectX 12 for at least some PC releases.

The list of games with Vulkan support is still quite short, with id's Doom being the highest-profile example so far, so every high-profile new release that adopts the API contributes to its credibility. The Star Citizen announcement is exactly the kind of good PR that Vulkan needs, coming at a time when they can really use it, and their extensive communication throughout the development process should make an excellent showcase for the ease with which the switch to Vulkan is accomplished... or an excellent cautionary tale, if it goes badly. So, you know, no pressure.

It's still very early days for both Vulkan and DirectX 12, and we'll see which one takes flight more quickly. DirectX 12's success is likely to be directly tied to Windows 10's rate of adoption, something which seems to have stalled; it remains to be seen whether Kronos Group can capitalize on that opportunity.

March 17, 2017

Vulkan takes a step backwards

Speaking of self-inflicted injuries...

I've blogged before about Vulkan, the promising new cross-platform API which the Kronos Group is pitting against Microsoft's latest iteration of Direct X. Providing the same low-level API benefits as DX12, but usable on every platform, including Linux, MacOS, Android, SteamOS, and PS4/Orbis (all of which are Linux-based or Unix-like environments), Vulkan's portability gave it a critical competitive edge that DX12 couldn't match, with DirectX12 is, naturally, being restricted to Windows 10.

The latest announcement from the Kronos Group, however, is throwing a little cold water on that prospect. It turns out that Vulkan's multi-GPU support might be restricted to Windows 10 and Linux, while being unavailable on the Windows version that half of PC users are actually, you know, using.

From HotHardware.com:
Today we are hearing that the low-level Vulkan API will not support multiple GPUs on Windows 7 or Windows 8.1. The Dark Side Of Gaming came across the disappointing bit of news when rummaging through Kronos Group’s slides from GDC 2017. One slide entitled “Vulkan Multi-GPU and Virtual Reality Support” clearly points out that “WDDM must be in ‘linked display adapter’ mode”, with WDDM referring to the Windows Display Driver Model.
Although it might not seem like a big deal from reading that line, the linked display adapter mode is exclusive to WDDM 2.0. And as you are probably coming to realize at this point, WDDM 2.0 is a feature that is only natively supported by Windows 10. In other words, if you want to use NVIDIA SLI or AMD CrossFire natively with Vulkan, you’re going to have to be running Windows 10.
Here’s one more wrinkle in this story; it appears that Linux won’t have the multi-GPU limitation when it comes to Vulkan (and it obviously doesn’t support WDDM) which makes us wonder why exactly Windows 7 and Windows 8.1 are being shown the door...
It's more than a little head-scratching. Vulkan competes directly with DirectX 12, and its portability is one of its most attractive features, but limiting parts of its feature set to Windows 10 make it less attractive as an option. After all, if your graphics engine is going to need Windows 10 to take full advantage of all the available graphics options, anyway, then why not build it around the API that comes with Microsoft's latest OS? Especially since many graphics engines are already built around earlier versions of DirectX? Other versions of Vulkan don't have this limitation, so it's not intrinsic to the API. What's the reasoning behind this?

Multi-GPU support isn't needed for Android devices, and it still needs to be supported separately by the game your'e playing, which means that this limitation may not hurt Vulkan's adoption all that much, but still.... it feels like a step away from the true cross-compatibility that's supposed to be Vulkan's reason for being. I just don't understand why the Kronos Group seems to be dissing Windows 7 & 8 this way, either, since users of those Windows versions are still more than half the PC OS market. It's like AMD's inexplicable recently loyalty to Windows 10 with their Ryzen line. Where's the benefit?

Hopefully, this is just a small hiccough, and Kronos Group can make Vulkan into a true competitor to Direct X 12, something which can only benefit consumers, but I have to say, I'm a little less hopeful about that prospect now, than I was a week ago.

February 23, 2017

SteamVR is coming to Linux & SteamOS

OK, this is an interesting development.

From Gaming On Linux:
Valve have put up SteamVR for Linux officially in Beta form and they are keen to stress that this is a development release.
You will need to run the latest Steam Beta Client for it to work at all, so be sure to opt-in if you want to play around with it.
VR on Linux will exclusively use Vulkan, so it's going to be a pretty good push for Vulkan if VR becomes more popular. Vulkan is likely one of the pieces of the puzzle that held it back, since Vulkan itself and the drivers are still so new.
BitGamer have more detail:
While Windows gamers with sufficiently beefy systems have been enjoying the resurgence of interest in virtual reality, those on alternative platforms have largely been left out. For those watching Valve's progress in the arena, this can particularly sting: The company made much of launching its own gaming-centric operating system, SteamOS, but has thus far failed to port its own SteamVR platform - leaving those running SteamOS-based Steam Machines unable to use virtual reality functionality, until now.
Valve's lack of development of, and apparent lack of interest in, SteamOS has clearly hindered its growth, and their intense focus on VR has been a source of some consternation from those who (like me) thought they should be more focused on promoting SteamOS, or on improving the Steam service itself. But it turned out that Valve have been quietly working behind the scenes to resolve some of Steam's most frustrating issues, and apparently they're also planning to promote SteamOS again... and using VR to do it, while also giving a boost to the Vulkan API in the process.

I'm not especially excited about VR, as you'll know if you've spent really any amount of time exploring the other op/ed pieces on my blog, but I did have hopes that the current trend in cross-platform game development would make Linux/SteamOS into a more viable platform for gaming... in no small part because I'd like to be able to play my favourite games in Linux, rather than having to switch to Windows 10 in three years' time. That ship seemed to have sailed, with Windows dominating OS market share numbers, and Linux developers failing to capitalize on Microsoft's PR and privacy blunders.

Today, though, it suddenly looks like Valve isn't done with SteamOS after all. And I can't help but feel like that might be a very good thing, indeed. Go get 'em, Gaben.

February 14, 2017

Intel adds support for Vulkan graphics API on Windows

I've blogged about Vulkan before. An open-source, cross-platform Application Program Interface, or API, it had all the advantages of its predecessor, OpenGL, with the same low-level power that Windows 10-exclusive DirectX® 12 offers, was receiving strong support from AMD and Valve, and was already being baked into Unreal Engine 4, which Nintendo is recently promoting as the tool for Switch third party development. There really was only one thing holding it back: a lack of support from Intel, who arguably make the best-performing CPUs for PC gaming.

That's now changed.

From WindowsCentral:
Intel has officially added support (via CIO) for the Vulkan™ graphics API for its most recent Core chips on Windows 10. While Vulkan is already supported on graphics cards from AMD and NVIDIA, the integrated graphics in Intel's Kaby Lake and Skylake chips can now run games and applications written with the API as well.
[...] Here's how Intel describes Vulkan in its documentation:
Vulkan* targets high performing real-time 3D graphics applications, like games, while giving low-overhead hardware control over GPU acceleration to developers. Vulkan* utilizes many open-source libraries and utilities, and promises great performance and predictability, while paving the way to better equip games to handle virtual reality or 4k HDR.
Vulkan support was previously available on Intel chips in beta form, but the official release signals that support is ready for primetime and should be relatively stable. Don't expect your integrated graphics to suddenly compete with high-end cards from NVIDIA and AMD, but Vulkan support should offer some solid performance on modest settings for games that support it. Perhaps more intriguing are the possibilities this opens up for Vulkan-coded apps that could run on the low-cost Windows Holographic VR headsets coming from Microsoft's hardware partners later this year.
Vulkan is a direct competitor for DirectX 12, and should be stiff competition: it's available on Windows 7, which DX12 isn't, and also on Nintendo's Switch, Sony's PS4, and on Android and iOS devices which don't run Windows 10, either. With Intel officially supporting the API, it may have just received the additional push it needs to become the API for the current generation of gaming graphics engines. Everyone is on board with Vulkan... much to the chagrin of Microsoft, who have long been used to DirectX being the de facto standard for gaming.

Not only does this loosen Windows 10's grip on gaming, it might even loosen Windows' grip on gaming, generally, allowing more games to be developed more easily for Linux and MacOS, both of which are Unix-like environments (as is PS4's Orbis). We might even see a renewed push for SteamOS (also a Unix-like OS) from Valve. And it could ensure that Microsoft continue to be shut out of the mobile market, leaving mobile game developers, in particular, no reason at all to develop for engines that rely on Microsoft's proprietary API. Why would they, when an open-source, easily-portable alternative is available?

In fact, the only part of this development that holds zero interest for me is the potential effect on Windows 10-branded VR headset development, simply because I'm not convinced that PSVR headsets are going to perform any better in the market than existing offerings from Oculus and HTC. As a PC gamer, I'd love to have a choice of platforms available beyond the choice of Windows versions; if Vulkan really takes off, that could actually happen, in exactly the way that it's refused to happen until now.

Stay tuned...

September 19, 2016

More about Vulkan, which is far more interesting than I realized.

One of the reasons that gamers have been embracing Windows 10, rather than sticking with Windows 7 or 8, is DirectX 12. Since there's currently very little DX12-capable hardware, and even less DX12-enabled software, I hadn't given much weight to DX12 in my decision-making process, but as DX12 becomes more prevalent in gaming, especially on PC, gamers could start to feel increasingly pressured to adopt the new OS, even if they didn't want to for a variety of other reasons.

That is, unless there was a competing graphics API, which could provide similar benefits to DX12, but for platforms other than Windows 10. What if there was a successor to OpenGL that ran on Windows 7/8, and Linux and SteamOS? How game-changing would that be?

Well, it's looking like Vulkan could very well be that competing API, and I've gotta say... I'm a little excited as its potential.

For a great explanation DX12 and Vulkan, and why they can eventually be better than DX11 or OpenGL, I recommend this video:


So, how quickly could we see Vulkan adopted by graphics engine developers? 

Well... how does now suit you?

Whether you bleed GeForce green or Radeon red, we can all agree that thepotential performance gains to be found using the lower-level DirectX 12 and Vulkan APIs are significant. Crytek, creator and curator of the ever-popular CryEngine, is doing its part to further adoption of the new APIs. The folks at OC3D noticed that Crytek has updated its online roadmap for the engine. That document shows DX12 multi-GPU and Vulkan support as "on target" for upcoming releases.
Chinese-exclusive martial arts MOBA King of Wushu was the first DirectX 12-enabled CryEngine title when it debuted earlier this year, but CryEngine still doesn't support multi-GPU systems in DX12 mode. That will be changing with the projected release of CryEngine 5.4 in late February 2017. Crytek may be showing off the new feature at the next Game Developer's Conference, whichstarts February 27.
Perhaps even more exciting is the "on target" listing for Vulkan support across all platforms, including Windows, Mac, Linux, and mobile. That support is coming even sooner: Crytek's roadmap lists an anticipated launch window of "mid-November 2016" for version 5.3. CryEngine's greatest rival engine package, Unreal Engine 4, already has basic Vulkan support. However, Unreal limits applications using the new API to the mobile feature set of the renderer for now.
Since Vulkan is proudly cross-platform, and works with Linux (and Linux-like) environments, it can add a graphical punch to SteamOS and PS4's Orbis that's equivalent to Windows 10's DX12, which could make developing high-performance games for these platforms easier... and Valve had noticed, something which escaped my notice at the time.