Tuesday, July 10th 2018
Intel Exhorts Developers Towards Vulkan Usage as Graphics API of Choice
Intel, via a Game Dev Developer Zone blog post, took it into its hands to urge game developers towards usage of the industry-prevalent Vulkan API. Some unapologetic puns are thrown in, such as "(...) You might say that Vulkan lets apps live long and prosper", but these are only meant to entertain. And it's well known that Intel has supported the Khronos Group and Vulkan's inception from the beginning, alongside Google. The reasons for this blog post to make it into a front page, however, are twofold.
Source:
Intel game Dev Blog
Vulkan APIs are positioned to become one of the next dominant graphics rendering platforms.First, Intel commands the biggest graphics card share in the market - remember that most work PCs, tablets or even laptops are powered by Intel's integrated graphics, which means there's a huge slice of the market that developers have to account for while writing/developing their apps. Secondly, this could spell something when it comes to Intel's Visual Computing Group's strategy and development energies - a division that is being helmed by one other than Raja Koduri, himself with AMD's Mantle program - which would be then transmogrified into Vulkan. An interesting point to consider, certainly, as ntel's support behind Vulkan as a prime API could put Microsoft's DirectX - which suffers from not being cross-platform - under duress. And it's high-time that happened, since DX12 seems to be frozen in time for a long, long while now.
54 Comments on Intel Exhorts Developers Towards Vulkan Usage as Graphics API of Choice
But instead they try as hard as they can to make GTX cards only work well on DX11 - it gives them an advantage since they specifically built Maxwell for DX11 and they have a commanding Windows marketshare (But again, it would get better performance on Vulkan if they put in even a little effort).
2-Depends on the developer. The same could happen in Vulkan or OpenGL. However, I did read some people saying that AMD's support for OpenGL was/is rather crappy, which is the kind of thing that may push a developer to use DirectX more frequently. And then you have Nvidia, who supposedly doesn't really try to optimize their GPUs for DX12, probably making developers more prone to choosing DX11.
3-Remember that games also use other non-graphics API (sound APIs for example), and are optimized according to the platform where it is played. And then, there's the game engine, which may or may not work well on any given platform (or not work at all). DirectX has the advantage of offering pretty much all the APIs you could need for a game. OpenGL doesn't offer that, and Vulkan doesn't either.
DX12 is s__op
Vulkan is vk__op
Other than that Vulkan can already pretty much do everything DX12 can:
www.phoronix.com/scan.php?page=news_item&px=Wine-VKD3D-1.0-D3D12-Vulkan
source.winehq.org/git/vkd3d.git/
VK9 => D3D9 to Vulkan
DXUP/DXVK => D3D10&D3D11 to Vulkan
Regardless, the Vulkan-fication is already happening.
The problem with DX12 is that it really is not intended to replace DX11 but to augment it. DX12 is lower level and more powerful but you need to do bunch of things manually that you do not need to do with DX11. There is no visual benefit, everything that is done with DX12 can be done with DX11. There is a performance benefit with a huge but - developer needs to do something more efficiently than DX11 and drivers are currently doing. That is easy enough in some areas, difficult in others. Every developer who has spoken about this has said DX12 needs more time to work with. For a game developer/publisher, time is money. Most of this applies to Vulkan as well.
DX12 and Vulkan are in the same boat when it comes to adoption - there is a handful of AAA developers that are interested and capable in driving the technical side of innovation. They are behind the current crop of DX12/Vulkan games, with mixed results.
As far as I know, there is only one DX12 game that provides a consistent performance boost across the range of cards a this point - Sniper Elite 4. Everything else is slower and/or problematic.
Doom and the rest of idTech6 - maybe. But there is a bunch of manufacturer/family specific features in there. Especially in Wolfenstein2 FP16 and culling come to mind. Why not? Gaming is one of the large perks for Windows at this point. Microsoft most definitely wants to keep that edge. Xbox app, Xbox Play Anywhere, emulation efforts for backwards compatibility. Microsoft both seems to aim for and is talking about some type of integration between Xbox and Windows 10.
www.purepc.pl/karty_graficzne/test_msi_geforce_gtx_1080_ti_lightning_z_jasny_pieronie?page=0,12
www.purepc.pl/karty_graficzne/test_msi_geforce_gtx_1080_ti_lightning_z_jasny_pieronie?page=0,11
techreport.com/news/31565/geforce-378-78-drivers-supercharge-directx-12-and-vulkan
When the next game releases on DX11 you will buy it regardless. And you should because it doesn't matter. DX11 can completely obliterate current day hardware and DX12 offers literally no benefit in terms of 'what a CPU' can do in terms of performance. It just levels it out a bit for lower end CPUs and lower clockspeeds which plays handily into a world where CPU core counts are going up. Its good, yes. But: games are always made for common denominators and not for the top 5% of high end systems. API's are not used as primary and only ones when the entire marketplace is slowly moving from one rig to the next, and the vast majority has ancient hardware.
- DX12 offers little to no tangible performance advantages as of today and 'building it from the ground up' simply isn't going to happen except for a tiny handful of games/engines. In fact, it is far LESS likely to happen these days with 'Engines as a Service' like Lumberyard and UE4 are marketed.
- Devs really don't care about the API they use, they care about the limitations it has. When they can build a game and use DX11 to get good performance, which, simply enough, is very much the case for a huge majority of games and game concepts, why would they invest time to support an API that has weak support on older hardware and even old OS'es? That's not lazy - that's common sense and economy.
- Some ppl here speak of higher draw calls and multicore support as if its a prerequisite for good gaming. Get yourself checked out, fast. All it does is alleviate a bottleneck in some rare edge cases or in games that are specifically pushing those aspects. 'But nobody will make those games because DX11' - yes. And because grand strategy, for example, has been near death for over a decade. And look at the smash hit they call Ashes... oh wait, in fact it flopped hard. Does that game really show the merit of new API benefits? Its stale, boring, lacking. Meanwhile, other grand strategy like Total War performs like a boss on DX11 ánd DX12. It uses multiple cores well and CPU performance directly translates to FPS to a great degree.
- The API is just an abstraction layer, good devs build an efficient game and engine at the core, look at Blizzard titles, performance, and CPU/GPU scaling for a good bunch of examples on that.
- GPU support? Really? Back in Maxwell days the same people that are crying today said 'my next GPU better have full DX12 support because all games will use it' while sensible souls replied 'relax, this'll take years and one or two more gens'. Look where we are now. These changes and upgrades are gradual and being ahead of the curve earns you nothing, it only costs money and you get fooled - or in fact, you're fooling yourself.
As for Vulkan and pushing it as the dominant API: great. Keep it going. Just don't expect much of it anytime soon. I hardly think they are panicking. Xbox is just a little toy for MS, nice if it works out, too bad if it doesn't. It shows, too, with all the non-gaming additions they make. For me, when it says MS and gaming on the same box, I know it needs to die fast, and it always does eventually. Of course it is, it keeps their OS relevant to consumers, and with that, mindshare and marketshare for many MS services. Would you buy Office for a Linux rig? Or visit the MS Store? (Not that I'd do that now, but hey)
After something turns out to be good and beats any other alternative, many come barking how they 'supported' the winning choice.
Cowards !
Now intel will try making its emulators use Vulkan.
As it stands I'm only aware of rise of the tomb raider 20th anniversary edition and I couldn't enable the dx12 option on my 970 on win 7
So, I don't expect the DirectX to go anywhere anytime soon either, just because Intel encourage something else!
DX12 only works under Windows 10
All those years? you mean only this 4 or 5 years of lack of competition in gamings graphics cards that let nVidia rename exisiting technology and bullshit the whole gaming world and industry with selling extremely overpriced bullshet. (although biggest and last try failed, aka GPP)
- DX11 - Windows Vista/7/8/10
- DX12 - Windows 10
- Vulcan/OpenGL - open standard, so can work in any OS
Actual implementation of API support depends on both OS and drivers.
Hardware support is a complicated topic. DX versions have feature levels - compatibility for cards that are built for older versions. DX11 is supported by any GPU that anyone is likely to run today. DX12 support is getting to pretty much the same point. By GPU manufacturers DX12 is supported for:
AMD:
- 7000/8000/200/300/400/500/Vega series. All GCN cards basically, including Fiji and Vega. Feature levels for AMD cards is a mess.
- Current drivers support GPUs from 200 series forward which are all fine enough for DX12.
Nvidia:
- 400/500/600/700/900/1000 series. Fermi/Kepler/Maxwell/Pascal with Fermi (400/500 series) technically being DX11 and Kepler (600/700 series) DX11.1 architecture.
- Current drivers support GPUs from 600 series forward, again all are fine enough for DX12.
Intel:
- iGPUS on 5th gen Core CPUs and newer (Broadwell/Skylake/KabyLake/CoffeeLake).
Performance is not straightforward either. It has more to do with developer intentions and capabilities than API itself. APIs have overhead that do limit some aspects of performance. The lower level an API is (like DX12/Vulkan compared to DX11/OpenGL), the less overhead it has in some if not most areas. The flip side of the same coin is that the same lower level API will inherently do less hand-holding, less checking if everything is as it should etc, leaving that for the developer to do. If developer is good, lower level API eliminates some bottlenecks and allows them to squeeze out every ounce of performance.
Currently, both Microsoft and Khronos Group present older version of API (DX11 and OpenGL) remaining as a simpler alternative alongside the newer one (DX12 and Vulkan).
When it comes to the improvements in Vulkan, most API overhead improvements have been added gradually in OpenGL 4.3-4.6, so developers can get the easy improvements of the new APIs. But what's lacking is most of the low-level control over memory etc. The benefits of this depends on the use case, and requires the game engine to be designed appropriately to do so.