• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

id Software dev: Developers adopting DX12 over Vulkan literally makes no sense

Krejlooc

Banned
Also, does anyone know what it costs to run Vulkan vs DirectX for a company? Like for example, if they use DX12, it costs X and the purposed reach is X with incentive C Y Z where as Vulkan is lower in cost and reach but has only 1 less incentive.

Thats not how any of this works. DirectX is free, so is Vulkan. It used to be that OpenGL lagged behind DirectX in many way, and using openGL was radically different from DirectX, and DirectX handled all sorts of multimedia stuff besides graphics (like joystick polling and things of that sort) that OpenGL did not, so many people used DirectX. Vulkan is a successor to OpenGL, freed of many of its constraints, that is essentially an equivalent API of DirectX 12. Additionally, SDL, which handles all the non-graphics stuff that DirectX handles, has undergone a massive overhaul as well with SDL 2.0. There is much less incentive to use DirectX over Vulkan, which opens up a lot of the original arguments against direct X - namely that it doesn't work with nearly as many operating systems as the competition.
 

jwhit28

Member
Do you need to install Vulkan in order to use it like how you have to install DirectX? - serious question, i game on my pc rarely and im concerned if i have to do some crazy stuff in order to use vulkan.

Also, does anyone know what it costs to run Vulkan vs DirectX for a company? Like for example, if they use DX12, it costs X and the purposed reach is X with incentive C Y Z where as Vulkan is lower in cost and reach but has only 1 less incentive.

Just have up to date drivers and change a setting on game.
 

petran79

Banned
Do you need to install Vulkan in order to use it like how you have to install DirectX? - serious question, i game on my pc rarely and im concerned if i have to do some crazy stuff in order to use vulkan.

You only need to install the appropriate graphics driver for Windows, preferably the latest one. I guess Intel GPUs will have some issues initially.

On Linux the easiest method would be to install the latest Nvidia or AMD drivers from external PPA repos, if you cant wait few months for an official update. Unfortunately this may deter a lot of users, since installing system files from PPAs is a risky method
 
Thats not how any of this works. DirectX is free, so is Vulkan. It used to be that OpenGL lagged behind DirectX in many way, and using openGL was radically different from DirectX, and DirectX handled all sorts of multimedia stuff besides graphics (like joystick polling and things of that sort) that OpenGL did not, so many people used DirectX. Vulkan is a successor to OpenGL, freed of many of its constraints, that is essentially an equivalent API of DirectX 12. Additionally, SDL, which handles all the non-graphics stuff that DirectX handles, has undergone a massive overhaul as well with SDL 2.0. There is much less incentive to use DirectX over Vulkan, which opens up a lot of the original arguments against direct X - namely that it doesn't work with nearly as many operating systems as the competition.

Oh, so a gaming company can ask their devs to use whichever one without a cost associated with it. Interesting.

Just have up to date drivers and change a setting on game.

Sounds great. Less of a headache for me haha

You only need to install the appropriate graphics driver for Windows, preferably the latest one. I guess Intel GPUs will have some issues initially.

On Linux the easiest method would be to install the latest Nvidia or AMD drivers from external PPA repos, if you cant wait few months for an official update. Unfortunately this may deter a lot of users, since installing system files from PPAs is a risky method

Thanks for the info.:)
 

Krejlooc

Banned
Oh, so a gaming company can ask their devs to use whichever one without a cost associated with it. Interesting.

This is probably a little weird to anybody new to PC gaming, but back in the 90's there were often multiple graphics drivers to choose from, each offering radically different hardware support and performance. You had proprietary drivers that would only work with certain cards, like 3DFX's glide, and you had open ones that worked with many cards.

Direct3D, which was the 3D API component of DirectX, essentially took over the entire market and has been dominant for over a decade now.

When you are talking about Vulkan and DirectX and OpenGL, you are basically talking about the middle-layer that lets your software talk to your hardware to get everything working. Today's GPUs are much more than merely tools to handle graphics and can handle many different kinds of tasks. They are essentially miniature computers well suited for all sorts of multimedia and parallel performing functions.

The nature of these middle layers has far reaching effects for computing beyond video games. A major reason why software that really uses these GPUs is seemingly always limited to windows is because Direct X only runs on windows. And recently, only specific versions of Direct X runs on specific versions of windows. You can have a PC whose hardware is perfectly capable of doing advanced things, which cannot access these advanced functions because the right direct X middle layer is not available on your version of windows. Vulkan aims to be available as many places as possible, even beyond windows.
 
This is probably a little weird to anybody new to PC gaming, but back in the 90's there were often multiple graphics drivers to choose from, each offering radically different hardware support and performance. You had proprietary drivers that would only work with certain cards, like 3DFX's glide, and you had open ones that worked with many cards.

Direct3D, which was the 3D API component of DirectX, essentially took over the entire market and has been dominant for over a decade now.

When you are talking about Vulkan and DirectX and OpenGL, you are basically talking about the middle-layer that lets your software talk to your hardware to get everything working. Today's GPUs are much more than merely tools to handle graphics and can handle many different kinds of tasks. They are essentially miniature computers well suited for all sorts of multimedia and parallel performing functions.

The nature of these middle layers has far reaching effects for computing beyond video games. A major reason why software that really uses these GPUs is seemingly always limited to windows is because Direct X only runs on windows. And recently, only specific versions of Direct X runs on specific versions of windows. You can have a PC whose hardware is perfectly capable of doing advanced things, which cannot access these advanced functions because the right direct X middle layer is not available on your version of windows. Vulkan aims to be available as many places as possible, even beyond windows.

Aaaah, thanks for breaking it down for me. I was assuming it was a tool that developers had to choose when building a game with whichever egine they are using.

Pretty exciting to see great competition.
 

Parsnip

Member
I hope Vulkan gets a wide support.


Do the major third party engines like UE4 and Unity have Vulkan or DX12 support yet? I remember Epic demoed UE4 Vulkan on Android, but is any of that out out?
And as a followup, when that stuff is out out on said third party engines, would it take a lot of work for game devs to make their games go with a new API? Or was all or most of the heavy lifting already done by Epic?
 

emag

Member
Oh, so a gaming company can ask their devs to use whichever one without a cost associated with it. Interesting.

There are no direct licensing fees for DX12 or Vulkan, but there definitely are differing and distinct development costs associated with creating a game (or engine) for DX12 vs. Vulkan. It's not like developers write generic code in their favorite IDE and just hit a DX12 button or Vulkan button and out pops shipping code.

Training developers in the use of each API and the associated development tools (which vary in cost as well) is pretty huge. Setting up workflows and testing is also expensive.
 

Krejlooc

Banned
Aaaah, thanks for breaking it down for me. I was assuming it was a tool that developers had to choose when building a game with whichever egine they are using.

Pretty exciting to see great competition.

It is a tool, and a fundamental one. Game Engines are largely API abstracted these days, but there are still performance gains depending on which API you are targeting.

The problem for the last decade has basically been a generation of coders who have grown up on Direct X. They know direct X and OpenGL was sufficiently different enough that, even if the API performance had become equivalent, you still had a group of people who didn't know how to work with the technology.

The reason Vulkan is getting such a big push right now comes from the nature of Direct X 12. Without going into too much detail, Direct X 12 is a newer approach to these types of APIs that allows for much lower level access. This means, to get the most out of direct x 12, you need to learn how to use it. The idea is, if developers are going to learn to use a new approach, they might as well move over to Vulkan where they can hit many platforms as performance is finally there again.
 

Nzyme32

Member
They're using Vulkan for Android, no?

Yeah pretty sure they are. Although they haven't released anything thus far, I think there are some new games that were shown on the Youtube E3 stream that are EA and Vulkan. One of the Need For Speed games iirc.
 
So, when windows 7 took over windows XP and direct X stopped getting made for XP, was MS evil then too? Or is it just because people are now trying to attribute some sort of grand scheme to them, when it's the same as it's always been - new OS gets released, old one slowly stops getting support, including DX versions.

Remember when they made DX10 Vista exclusive and the Halo 2 PC port DX10 only(a game that could be done on DX8.1)? That was evil.
A lot of people want games to move away from Microsoft APIs because they are uncomfortable with Microsoft having so much control to pull shit like that.
 
Gemüsepizza;209706928 said:
Devs said at several occasions that they plan to add DX12 support, but so far not a single word about Vulkan support afaik.
Do you work at Microsoft or something? I mean, with so many egregious statements I would think not, but then again...
 
Windows 10 is the most used OS on Steam now (45%) and the percentage of that user base seems to be climbing pretty quickly (it was 34% just 5 months ago). While it makes sense to develop for Vulkan to support Windows 7 users, a lot of developers may just not care too much about the Windows 7 gaming user base since it's rapidly shrinking.

Free promotion is ending in two weeks. Let's see how W10 gains marketshare once people have to pay for it ;)
 

Reallink

Member
I think that you are downplaying the fact that people buy new computers.

Anyone on Steam who was ever going to upgrade to Win10 already did. It will be replacement machines going forward.

Right, but nowhere near the levels it has seen up to this point. The poster I quoted was citing 10's growth as evidence to suggest devs can safely phase out 7 and 8 support. I was simply pointing out that relatively speaking, the growth rates he's pointing to are going to stall almost completely when (if) it ceases to be free. New system sales won't even be in the same stratosphere as giving out for free to everyone.
 

Lonely1

Unconfirmed Member
I believe that Apple will slowdown Vulcan adoption rate. OpenGL had the added benefit of allowing targeting Apple ecosystem, but with Vulcan...
 
I know Apple have their own thing going on with Metal, but what prevents Vulkan from happening on the Mac? Does Apple actually need to be involved in some way? Who got Vulkan running on Win7?
 
Valve also doesn't see the point of DX12 over Vulkan.

http://www.kitguru.net/components/graphic-cards/anton-shilov/valve-directx-12-does-not-make-a-lot-of-sense-vulkan-does/

I hope more developers adopt Vulkan. The less dependant we are on fixed monopolies and services, the better.

Valve's implementation of Vulkan in DotA 2 was also incredibly mediocre and problematic.

I know Apple have their own thing going on with Metal, but what prevents Vulkan from happening on the Mac? Does Apple actually need to be involved in some way? Who got Vulkan running on Win7?

There's nothing preventing it--Apple just likes walled gardens. All Apple would have to do is make sure OSX was compatible with Vulkan--I believe they were realy into OpenGL for quite a while, so odds are half the work is already done/figured out.
 
I know Apple have their own thing going on with Metal, but what prevents Vulkan from happening on the Mac? Does Apple actually need to be involved in some way? Who got Vulkan running on Win7?

The fact they don't even support some of the newer opengl version should say enough.
Unless that situation changed.
 

MartyStu

Member
Vulkan is the best chance to eliminate a primary engineering cause for software platform dependency.

Yeah. People in the industry with influence need to push the living hell out of this. Direct X has a death-grip on the industry and I would love to see that go away.
 
Valve also doesn't see the point of DX12 over Vulkan.

http://www.kitguru.net/components/graphic-cards/anton-shilov/valve-directx-12-does-not-make-a-lot-of-sense-vulkan-does/

I hope more developers adopt Vulkan. The less dependant we are on fixed monopolies and services, the better.

The image we all should be quoting more.

ReQSq9Yl.jpg
 

Maddrical

Member
Do you work at Microsoft or something? I mean, with so many egregious statements I would think not, but then again...

It really does sound like it, doesn't it? Always enjoy reading someone making assumptions and using them as fact. Also goes on to say that no big studios with big in-house engines are providing Vulkan support yet UE4 supports it already. It only renders on mobile so far but it's pretty clear they intend to fully support it. Considering UE3 was probably the biggest engine of last gen, UE4 supporting it is great news.

Also I have no idea why you'd want DX12 to win over Vulkan. Vulkan benefits the consumer.
 
I'm quite happy about this. Vulkan becoming the standard is only a good thing for the industry and consumers. Everyone wins. (except MS I guess)
 

KKRT00

Member
Of course it doesnt make sense when your code is primarily OpenGL based.
The difference is when most of your codebase is DX based, then DX12 makes sense.

Going by what CIG engineers said, most of game engines are still not utilizing even DX11 fully, because they have a lot of legacy DX9 codebase in them.
Moving from full DX11 codebase to DX12 is way easier than from mixed DX9/DX11 codebase. Moving from those codebases to Vulkan is probably even harder.
 

jmga

Member
Of course it doesnt make sense when your code is primarily OpenGL based.
The difference is when most of your codebase is DX based, then DX12 makes sense.

Going by what CIG engineers said, most of game engines are still not utilizing even DX11 fully, because they have a lot of legacy DX9 codebase in them.
Moving from full DX11 codebase to DX12 is way easier than from mixed DX9/DX11 codebase. Moving from those codebases to Vulkan is probably even harder.

Vulkan and D3D12 are completely different from previous APIs, it's a new paradigm.

Porting from Vulkan to D3D12 and vice versa is a lot easier than porting form D3D11/OpenGL to D3D12/Vulkan.
 
The image we all should be quoting more.

ReQSq9Yl.jpg

Images like that (whatever the context - tech, politics, etc) mildly annoy me... The "cross vendor" thing at the bottom is there to make vulkan look "even better" whereas many of those chips are supported on Windows too... Either put the vendor list for all APIs or for none, otherwise it looks like you're trying to artificially inflate one over the other when it's clearly not needed.

Also where's Sony on that list?

Right. Pet peeve over...!

Anyone know what the ratio of middleware led to pure Dev games is now days? Aren't ue4 et Al isolating most devs from this kind of thing?

Anyhow, choice is good. As others said the historical context is important, ogl used to have many driver issues. It's good that vulkan wipes the slate clean.
 

Novum

Neo Member
Some people don't realize that Vulkan and DX12 are much more similar to each other than OpenGL/DX11 are to Vulkan/DX12. Porting to either of them is pretty much the same work no matter what you start with.
 
Some people don't realize that Vulkan and DX12 are much more similar to each other than OpenGL/DX11 are to Vulkan/DX12. Porting to either of them is pretty much the same work no matter what you start with.
Are you a Dev? (Not saying you're wrong - just asking if that's opinion or fact)
 
Do you work at Microsoft or something? I mean, with so many egregious statements I would think not, but then again...

Excuse me? I am stating facts. To my knowledge, the Civ devs have not made any announcements regarding Vulkan. Which is really curious, since Civ will be released on Linux, too. And there is quite a bit of positive buzz around for Vulkan, why not leverage this with an announcement, when the game is only a short time away? Maybe because Vulkan support isn't planned.

Yeah. People in the industry with influence need to push the living hell out of this. Direct X has a death-grip on the industry and I would love to see that go away.

I find statements like this absolutely stunning. Sorry, but this seems so out of touch to me.

Can you please explain to me in what way DirectX has a "death-grip" on the industry, and how you think DirectX does negatively affect consumers, developers and publishers?

Because it doesn't really. Consumers do not care. Developers* do not care. Publishers do not care. Devs for example are not willing to trade the real advantages of a full DX dev environment and the support from Microsoft with an API that forces them to invest more effort for about the same result, just because some ideologists have irrational fears about Microsoft wanting to dominate the world.

Edit: * except the usual suspects like Valve etc
 
What I don't get about dx12 is that all the dx12 only games released by ms have been hugely demanding. I don't get why that's the case when dx12 in theory is supposed to improve performance, yet most of the games have run like shit.
 

00ich

Member
Gemüsepizza;209745289 said:
Can you please explain to me in what way DirectX has a "death-grip" on the industry, and how you think DirectX does negatively affect consumers, developers and publishers?
DirectX is tied to a specific platform. It is even used to force consumers into otherwise unnecessary OS upgrades. Without DirectX consumers and developers would have a broader choice of OSs to run their games.
 

hodgy100

Member
Does this really work that way? Will Snapdragon Vulcan have much in common with Nvidia GeForce 1080 code?
"Close to hardware" and "cross hardware generations" seems contradictory.
Well there will be things that each chip does and doesn't support. But then you would be querying the driver to see if it supports said feature. The entire point in dx12 and Vulcan is that they sit on top of hardware drivers as a universal interface for devs. So the code should be mostly the same for all hardware.
 

00ich

Member
What I don't get about dx12 is that all the dx12 only games released by ms have been hugely demanding. I don't get why that's the case when dx12 in theory is supposed to improve performance, yet most of the games have run like shit.
DirectX 12 and/or UWP are not ready, yet. Plus high-end console game ports are challenging projects.
 
DirectX is tied to a specific platform. It is even used to force consumers into otherwise unnecessary OS upgrades. Without DirectX consumers and developers would have a broader choice of OSs to run their games.

But they do not want that.

The overwhelming majority of developers/publishers do not want to support countless, different OSs. Having to support Linux is probably a nightmare for many devs, because it will eat so many resources, which could be spent on making better/cheaper games instead. And the same is true for consumers, they also do not want to run their games on anything other than Windows. Because why should they? Everything works.
 

KKRT00

Member
Vulkan and D3D12 are completely different from previous APIs, it's a new paradigm.

Porting from Vulkan to D3D12 and vice versa is a lot easier than porting form D3D11/OpenGL to D3D12/Vulkan.

Yes of course, that its easier to move from DX12 to Vulkan than from DX9 to Vulkan.
But its easier to move from DX9/DX11 to DX12 than to Vulkan for complex engines.

Of course that Vulkan is better API due to being platform agnostic, but it not always make sense to port to it for devs.
 

00ich

Member
Gemüsepizza;209745658 said:
But they do not want that.

The overwhelming majority of developers/publishers do not want to support countless, different OSs. Having to support Linux is probably a nightmare for many devs, because it will eat so many resources, which could be spent on making better/cheaper games instead. And the same is true for consumers, they also do not want to run their games on anything other than Windows. Because why should they? Everything works.

If you make your game against a cross platform api the difference in developer effort is (probably) negligible. Atom boxes are dirt cheap. The reason not to get one for your bedroom is the cost for a Windows licence.
Also OSX gamers would really like that.
 

Panajev2001a

GAF's Pleasant Genius
If you make your game against a cross platform api the difference in developer effort is (probably) negligible. Atom boxes are dirt cheap. The reason not to get one for your bedroom is the cost for a Windows licence.
Also OSX gamers would really like that.

I do not think it is that cheap from a QA point of view and considering the viral nature of huge omg it performs like shit in my setup forum posts/blogs/etc... Software interfaces and cross platform API's do not mean that shipping a title is just recompile and sell.
 

jmga

Member
Yes of course, that its easier to move from DX12 to Vulkan than from DX9 to Vulkan.
But its easier to move from DX9/DX11 to DX12 than to Vulkan for complex engines.

Of course that Vulkan is better API due to being platform agnostic, but it not always make sense to port to it for devs.

Porting from D3D11 to D3D12 implies rewriting almost your entire graphics pipeline anyway, it should be about the same work as porting to Vulkan.
 
If you make your game against a cross platform api the difference in developer effort is (probably) negligible.

No it isn't. Supporting multiple, different platforms will always be notably more expensive, because you have to properly support them.

Atom boxes are dirt cheap. The reason not to get one for your bedroom is the cost for a Windows licence.
Also OSX gamers would really like that.

There is no market for "Atom boxes". This idea did not work in the past. And OSX gamers are not the target group of AAA development. Do you know what kind of GPUs are in Apple computers?
 
There are lot of things in software development that make no sense, and yet they not only exist but become standards. We rail against it, but such is life.
 
Top Bottom