• 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

Durante

Member
I think the elephant in the room that people are missing when they say that Vulkan is "just another OpenGL" is mobile.

The market is very different from when the main "battle" between DirectX and OpenGL was fought a decade or more ago -- no modern multi-purpose engine will be created without a Vulkan renderer.

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.
It's about as close as XB1 DX12 could ever hope to be to Windows PC DX12.
 

mrklaw

MrArseFace
My personal feeling in this thread, is that all the PC liberals want Vulkan to succeed because it is open and doesn't force people into Windows 10 and/or provide MS a business advantage. It feels like an opportunity for developers to make 'the right choice' to support open vs closed. All very worthy. Sadly I doubt it'll get much traction - maybe more than OpenGL, due to better coverage across mobile and relevance to PS4; but directX is still the 900 pound gorilla and will still likely take the lions share of developer focus.
 

Well technically, the quoted statement isn't true. They co-developed Mantle with AMD, then other people (Khronos Group) used parts of their work to create Vulkan, which, while very similar, is a new API and not compatible with Mantle. What certainly is true, is that Vulkan would probably not exist without DICE and AMD. For reference, there is not even a single mention of DICE in the Vulkan article on Wikipedia:

https://en.wikipedia.org/wiki/Vulkan_(API)
 

odhiex

Member
I'm reading most of the posts in the thread (since I have very limited knowledge on the Vulcan). Seems to me that the Vulcan API is the better solution than imposing the DX12 to all pc gamers.

But hey what do you know, Microsoft really wants that UWP anyway, it makes perfectly business sense for them.
 
Just out of curiosity have any dx12 game shown the same increace in performance as the new vulkan patch for Doom. That game both looks and runs very well and now much better (especially for AMD cards) so any compareable DX game?
 

jmga

Member
Gemüsepizza;209747104 said:
Well technically, the quoted statement isn't true. They co-developed Mantle with AMD, then other people (Khronos Group) used parts of their work to create Vulkan, which, while very similar, is a new API and not compatible with Mantle. What certainly is true, is that Vulkan would probably not exist without DICE and AMD. For reference, there is not even a single mention of DICE in the Vulkan article on Wikipedia:

https://en.wikipedia.org/wiki/Vulkan_(API)

You had Johan Andersson personally unveiling Vulkan at GDC last year.

https://youtu.be/xtrNiYW8lh4?t=3m25s
 

Occam

Member
There are two simple reasons why Vulkan should be used instead of DX12:
1. It's multiplatform (all Windows,Linux,Android etc).
2. It's not by Microsoft.
 

le.phat

Member
Gemüsepizza;209697766 said:
Again:

DICE did *not* create Vulkan. This is a fact.

DICE has not said that they will support Vulkan in the future. They have said that they are exploring options. And at this point it seems that they will use DX12 for Battlefield 1.

Also, Vulkan is *not* more advanced than DX12. Development on DX12 is ahead of Vulkan.

How can you deny the facts? Just look at the industry. The only guys who are actively implementing Vulkan into their products are companies which have done so in the past with OpenGL. Most major game devs seem to be focusing on DX12. And if I am supposed to be a fanboy, I wonder why you are the one who needs to insult people like that. I am just stating facts.

You better have your receipts ready if you want your 'facts' to be taken seriously.
 

A-V-B

Member
You had Johan Andersson personally unveiling Vulkan at GDC last year.

https://youtu.be/xtrNiYW8lh4?t=3m25s

post-123428-0-28309300-1415934902.gif
 

blu

Wants the largest console games publisher to avoid Nintendo's platforms.
My personal feeling in this thread, is that all the PC liberals want Vulkan to succeed because it is open and doesn't force people into Windows 10 and/or provide MS a business advantage. It feels like an opportunity for developers to make 'the right choice' to support open vs closed. All very worthy. Sadly I doubt it'll get much traction - maybe more than OpenGL, due to better coverage across mobile and relevance to PS4; but directX is still the 900 pound gorilla and will still likely take the lions share of developer focus.
An API is 'the 900 pound gorilla' only if devs want it to be that way. Unless you're a Windows10-only developer (and why would one want to be?), going DX12 at this stage is redundant.
 
You had Johan Andersson personally unveiling Vulkan at GDC last year.

https://youtu.be/xtrNiYW8lh4?t=3m25s

And? DICE still has not created Vulkan. They have created Mantle, of which big parts have been used for Vulkan. Khronos Group did create Vulkan.

An API is 'the 900 pound gorilla' only if devs want it to be that way. Unless you're a Windows10-only developer (and why would one want to be?), going DX12 at this stage is redundant.

But DX12 is also on Xbox. DX12 will eventually allow devs to spend less resources on game development. If they choose Vulkan for PC, this won't be the case.

Here is an example. Maybe around the end of 2017/2018, a modern AAA game could look something like this:

PC: DX12
Xbox: DX12
PS4: GNM(X)

Total APIs used: 2

If developers did choose Vulkan for PC, it looks like this:

PC: Vulkan
Xbox: DX12
PS4: GNM(X)

Total APIs used: 3

Why would devs chose scenario 2?
 
You had Johan Andersson personally unveiling Vulkan at GDC last year.

https://youtu.be/xtrNiYW8lh4?t=3m25s

So Frostbite will take full advantage of Vulcan. Most of current EA games run Frostbite and plan to continue using it so this is great news to me.

Gemüsepizza;209747539 said:
And? DICE still has not created Vulkan. They have created Mantle, of which big parts have been used for Vulkan. Khronos Group did create Vulkan.



But DX12 is also on Xbox. DX12 will eventually allow devs to spend less resources on game development. If they choose Vulkan for PC, this won't be the case.

Here is an example. Maybe around the end of 2017/2018, a modern AAA game could look something like this:

PC: DX12
Xbox: DX12
PS4: GNM(X)

Total APIs used: 2

If developers did choose Vulkan for PC, it looks like this:

PC: Vulkan
Xbox: DX12
PS4: GNM(X)

Total APIs used: 3

Why would devs chose scenario 2?

DirectX 12 for Xbox is different than DirectX 12 for PC. It's not a copy-paste scenario here either.
Anyways, here's what the future is going to be if all things work out:

iOS: Metal
Xbox: DX12
PC: Vulcan/DX12
PS: Vulcan/GNM
Android: Vulcan
Nintendo: Vulcan

Total APIs used: 4

The future I want to live in is:

iOS: Vulcan
Xbox: Vulcan
PC: Vulcan
PS: Vulcan
Android: Vulcan
Nintendo: Vulcan

Total APIs used: 1
 

Alanae

Member
Gemüsepizza;209747539 said:
And? DICE still has not created Vulkan. They have created Mantle, of which big parts have been used for Vulkan. Khronos Group did create Vulkan.



But DX12 is also on Xbox. DX12 will eventually allow devs to spend less resources on game development. If they choose Vulkan for PC, this won't be the case.

Here is an example. Maybe around the end of 2017/2018, a modern AAA game could look something like this:

PC: DX12
Xbox: DX12
PS4: GNM(X)

Total APIs used: 2

If developers did choose Vulkan for PC, it looks like this:

PC: Vulkan
Xbox: DX12
PS4: GNM(X)

Total APIs used: 3

Why would devs chose scenario 2?
because instead of just PC it is actually: PC(win10), PC(win8), PC(win7), PC(mac), PC(linux).
most of which DX12 wont support.
 

KKRT00

Member
Porting from D3D11 to D3D12 implies rewriting almost your entire graphics pipeline anyway, it should be about the same work as porting to Vulkan.
In some way yes, but from what CIG said, they have more work on removing legacy codebase from DX9 and moving CryEngine fully to DX11, than from DX11 to DX12.
Which is mindblowing, because CryEngine was already one of the best optimized DX11 engines.
I imagine that for other big engines, like Anvil for example, its even more work.
 
Gemüsepizza;209747539 said:
But DX12 is also on Xbox. DX12 will eventually allow devs to spend less resources on game development. If they choose Vulkan for PC, this won't be the case.

Here is an example. Maybe around the end of 2017/2018, a modern AAA game could look something like this:

PC: DX12
Xbox: DX12
PS4: GNM(X)

Total APIs used: 2

If developers did choose Vulkan for PC, it looks like this:

PC: Vulkan
Xbox: DX12
PS4: GNM(X)

Total APIs used: 3

Why would devs chose scenario 2?


Example 3.

Xbox: dx12

Playstation: GNM(X) (is it impossible to use vulkan on PS4? I know there own API is better but for porting of indie games etc?)

Nintendo: Vulkan

Smartphones: Vulkan

PC: Vulkan

Linux: Vulkan
 

pottuvoi

Banned
So Frostbite will take full advantage of Vulcan. Most of current EA games run Frostbite and plan to continue using it so this is great news to me.
It's not confirmed.

Battlefield 1 already has a DX12 support, so even if Dice looks into Vulkan it doesn't mean that they will support it in a game.
Both APIs are great leap forward for PC and will get a better in future. (DX12 will get Shader Model 6 and Vulkan will most likely have something similar in future.)
Playstation: GNM(X) (is it impossible to use vulkan on PS4? I know there own API is better but for porting of indie games etc?)
It might be possible to write some kind of wrapper on top of the GNM, perhaps write support oneself. (Not sure how deep one can code the thing.)
 

Shito

Member
I think the elephant in the room that people are missing when they say that Vulkan is "just another OpenGL" is mobile.

The market is very different from when the main "battle" between DirectX and OpenGL was fought a decade or more ago -- no modern multi-purpose engine will be created without a Vulkan renderer.
As long as Vulkan is not supported on iOS, it will be moot in the mobile area.
No serious developers will sit on half of their revenue just to be fancy using Vulkan on Android.
 

Caayn

Member
He pointed out that the argument that programming for Xbox One and Windows 10 becomes easier by using DirectX 12 is moot too, because DirectX 12 on Windows and on Xbox is very different, necessitating two separate code paths anyway.
Doesn't Vulkan suffer from this as well? The optimal code path for a PC will undoubtedly be different than that for a console or mobile device and possibly different PC operating systems as well.
 

pottuvoi

Banned
Doesn't Vulkan suffer from this as well? The optimal code path for a PC will undoubtedly be different than that for a console or mobile device and possibly different PC operating systems as well.
If you want best possible performance you write code path for each IHV trying to avoid common performance pitfalls. (On all APIs)
 

c0de

Member
So Frostbite will take full advantage of Vulcan. Most of current EA games run Frostbite and plan to continue using it so this is great news to me.



DirectX 12 for Xbox is different than DirectX 12 for PC. It's not a copy-paste scenario here either.
Anyways, here's what the future is going to be if all things work out:

iOS: Metal
Xbox: DX12
PC: Vulcan/DX12
PS: Vulcan/GNM
Android: Vulcan
Nintendo: Vulcan

Total APIs used: 4

The future I want to live in is:

iOS: Vulcan
Xbox: Vulcan
PC: Vulcan
PS: Vulcan
Android: Vulcan
Nintendo: Vulcan

Total APIs used: 1

But with Vulcan, you still have to do large parts the driver had to before, right? I mean, it's not that Vulcan solves everything for you, it just gives you more control on what you can do. So in the end, you perhaps use one "API" but you still have
- platform-specific code
- and in a platform, device-specific code
 
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?
It negatively affects all three by locking developers to the windows platform if they don't want to do a major code revision. That means less sales, which means less money for the publisher/developer, which means less money for their next game, which means worse/fewer games for us consumers.

Of course, the ones it affects most negatively are consumers like me who wouldn't install anythibg resembling the currently supported versions of Windows on a personal computer even if they got paid to do it, which including OSX and Linux users is a rather sizable number of people.
 
DirectX 12 for Xbox is different than DirectX 12 for PC. It's not a copy-paste scenario here either.

If you had read the tweets, you would have seen that an actual DX12 developer did comment on this guys tweets, and said that the difference between DX12 on Xbox and PC is about 1%.

Anyways, here's what the future is going to be if all things work out:

iOS: Metal
Xbox: DX12
PC: Vulcan/DX12
PS: Vulcan/GNM
Android: Vulcan
Nintendo: Vulcan

Total APIs used: 4

I don't think you have read what I wrote. I was talking about AAA development. Of course there will be some Vulkan applications on many systems.

The future I want to live in is:

iOS: Vulcan
Xbox: Vulcan
PC: Vulcan
PS: Vulcan
Android: Vulcan
Nintendo: Vulcan

Total APIs used: 1

But that will not happen. Devs are not willing to sacrifice their comfort and superior dev tools / documentation for what the Khronos Group is offering.

because instead of just PC it is actually: PC(win10), PC(win8), PC(win7), PC(mac), PC(linux).
most of which DX12 wont support.

No. PC(mac) and PC(linux) are irrelevant when it comes to AAA development. And devs would prefer if PC(win8) and PC(win7) will become irrelevant, and it seems like this will happen very fast.

Example 3.

Xbox: dx12

Playstation: GNM(X) (is it impossible to use vulkan on PS4? I know there own API is better but for porting of indie games etc?)

Nintendo: Vulkan

Smartphones: Vulkan

PC: Vulkan

Linux: Vulkan

Again, I am talking about AAA development. I don't know of any AAA games which are on all those platforms at the same time. And I am not arguing that there won't be any Vulkan applications in the future. Just that the majority of AAA games will use DX12 on PC.

It negatively affects all three by locking developers to the windows platform if they don't want to do a major code revision. That means less sales, which means less money for the publisher/developer, which means less money for their next game, which means worse/fewer games for us consumers.

Of course, the ones it affects most negatively are consumers like me who wouldn't install anythibg resembling the currently supported versions of Windows on a personal computer even if they got paid to do it, which including OSX and Linux users is a rather sizable number of people.

I think you are massively overestimating the potential of sales from people who use Linux and Mac. They are not the target group of AAA development, they usually don't even have the hardware power to run current games.
 
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.


mmm, the good old days.

also, glide (if you had a 3Dfx card) and OpenGL always ran better than Direct3D - so I was understandably pissed when they got pushed aside by MS and D3D.

:/
 

c0de

Member
It negatively affects all three by locking developers to the windows platform if they don't want to do a major code revision.

But with Vulcan they also have to rewrite code.
I mean, in the end, an API is an abstraction layer and it's up to devs to decide where they themselves want to have that abstraction.
 

c0de

Member
mmm, the good old days.

also, glide (if you had a 3Dfx card) and OpenGL always ran better than Direct3D - so I was understandably pissed when they got pushed aside by MS and D3D.

:/

Oh yes, Glide was really good but DirectX was also really bad back then. MS improved alot in DirectX since then.
 
Oh yes, Glide was really good but DirectX was also really bad back then. MS improved alot in DirectX since then.

Yeah DX has become much better, was just reminiscing on how strange its "victory" over the alternative APIs was, considering how easy it was to see how bad D3D ran everything.
 

LordRaptor

Member
Gemüsepizza;209747104 said:
Well technically, the quoted statement isn't true. They co-developed Mantle with AMD, then other people (Khronos Group) used parts of their work to create Vulkan, which, while very similar, is a new API and not compatible with Mantle. What certainly is true, is that Vulkan would probably not exist without DICE and AMD. For reference, there is not even a single mention of DICE in the Vulkan article on Wikipedia:

https://en.wikipedia.org/wiki/Vulkan_(API)

Which even if we accept technically true as the best kind of true, is still a diversion away from your original statements that OGL development is by ideologues trying to make some sort of point, and DirectX is for industry professionals who just want to make the best possible game they can, and citing DICE as an example of such a group.

When - and you can redefine your terms however you want, because that's not the crux of this argument - DICE and AMD worked together to create a DX replacement, because DX was just not good enough for their purposes.
Not because they had an ideology to push.

DX12 is a hurried response made in panic to try and stop an exodus before it begins.
 

tuxfool

Banned
It's not confirmed.

Battlefield 1 already has a DX12 support, so even if Dice looks into Vulkan it doesn't mean that they will support it in a game.
Both APIs are great leap forward for PC and will get a better in future. (DX12 will get Shader Model 6 and Vulkan will most likely have something similar in future.)

It might be possible to write some kind of wrapper on top of the GNM, perhaps write support oneself. (Not sure how deep one can code the thing.)

There are things that Vulkan already supports like cross lane operations, that aren't in dx12. That will require shader model 6, for example.
 
Which even if we accept technically true as the best kind of true, is still a diversion away from your original statements that OGL development is by ideologues trying to make some sort of point, and DirectX is for industry professionals who just want to make the best possible game they can, and citing DICE as an example of such a group.

When - and you can redefine your terms however you want, because that's not the crux of this argument - DICE and AMD worked together to create a DX replacement, because DX was just not good enough for their purposes.
Not because they had an ideology to push.

The reason behind the development of Mantle wasn't an ideological one, and I never claimed that. It was developed because DirectX was lacking at this point in time. But this is the past. Things are different now. DirectX12 is a viable alternative to Vulkan. It is also better suited for AAA game development than Vulkan, thanks to Microsoft's focus on AAA development, their good tools and documentation. Prefering Vulkan to DX12 for AAA development only makes sense if you arguing from an ideological point of view. That's also why even developers like DICE, with what they have done for the Vulkan project, seem to be focusing on DX12 for their AAA games.

DX12 is a hurried response made in panic to try and stop an exodus before it begins.

What exactly about DX12 is "hurried"?
 

MaLDo

Member
Gemüsepizza;209751478 said:
The reason behind the development of Mantle wasn't an ideological one, and I never claimed that. It was developed because DirectX was lacking at this point in time. But this is the past. Things are different now. DirectX12 is a viable alternative to Vulkan. It is also better suited for AAA game development than Vulkan, thanks to Microsoft's focus on AAA development, their good tools and documentation. [

Please, send those tools and documents to DX12 developers asap because Forza Apex has framerate problems, Gears of War UE has lots of hitches and Quantum Break framerate is a big clusterfuck.
 
Please, send those tools and documents to DX12 developers asap because Forza Apex has framerate problems, Gears of War UE has lots of hitches and Quantum Break framerate is a big clusterfuck.

Are you serious? Those problems are not related to choosing to use DX12.
 

blu

Wants the largest console games publisher to avoid Nintendo's platforms.
Gemüsepizza;209747539 said:
But DX12 is also on Xbox. DX12 will eventually allow devs to spend less resources on game development. If they choose Vulkan for PC, this won't be the case.
Yes, that other win10 box (come Scorpio).

Here is an example. Maybe around the end of 2017/2018, a modern AAA game could look something like this:

PC: DX12
Xbox: DX12
PS4: GNM(X)

Total APIs used: 2

If developers did choose Vulkan for PC, it looks like this:

PC: Vulkan
Xbox: DX12
PS4: GNM(X)

Total APIs used: 3

Why would devs chose scenario 2?
You do realize you just cut out the larger part of the gaming hw, right?
 
Just fired up DOOM and changed the Graphics API to Vulkan over OpenGL 4.5

Changed visual settings from Medium overall to High, was getting about 80-100fps when no enemies were around and fluctuating between 60-80fps (reason for the fluctuation is I don't normally enable V-sync) with enemies about and me running around blasting away. (I was being conservative with my original settings, but was getting a mostly-solid 60fps through the whole game using OpenGL 4.5).

Anecdotal evidence of course, but seems good so far. Bring on more Vulkan-supported games!

For reference I'm running a RADEON 270x (2GB VRAM) at 1440x900 resolution.
 
iOS: Metal
Xbox: DX12
PC: Vulcan/DX12
PS: Vulcan/GNM
Android: Vulcan
Nintendo: Vulcan

This here is the slight fallacy for me - in the UWP threads there are plenty of people saying "You won't have a AAA game running on phone AND pc, so UWP is useless"... so surely the same logic applies here?

I'm being slightly devil's advocate here because personally I'm in the camp that multi-device APIs are a good thing as it gives you more flexiblity/reduces dev burden (whether that's 'common to MS platforms' - UWP, 'common to many platforms' Vulkan, whatever - although obviously UWP vs. Vullkan is apples to oranges).

However, if you're building a AAA game you're going to be targetting PC, PS, XBox. Two of those use DX12 (with a 1% difference according to another post I saw in the thread), one uses (as far as I know) a Sony proprietary API. edit: neglected the Win10-mandatory aspect of DX12.

If you're using a common API across multiple different devices (for example top end PC and Android) then surely no way are you going to have *one single set of rendering code*? That would be insane... so even with "one API" in Vulkan you're still doing loads of platform/device specific stuff. So IMO Vulkan isn't the technical panacea some here would like it to be. (e: neither is it a bad thing)
 
Facts are most of DX12 games run bad while the only Vulkan game runs great.

I don't even know how to respond to that. First of all, your sample size is ridiculously low. Second, correlation does not imply causation. The problems with those games are not related to them being DX12 instead of Vulkan.
 

Nzyme32

Member
Talos Principle?

Vulkan performs worse than DX11 in that title.

Which is a nonsense argument. Vulkan support in Talos is currently a naïve port, and is even discussed at length by Croteam as such. Vulkan support is not native and is simply wrapped as a proof of concept. The intention is to get native support for Vulkan into Talos' engine, but it isn't done yet. That work also goes onto the next Serious engine for their new game.
 

leeh

Member
Sounds like a good implementation from MS regarding DX12 (for once, MS). Cross-platform support, with a deviation of 1%~ of your engine's codebase if you want to achieve full performance.

If the PS4 supported Vulkan, I can see this being a very different game in the future with the Xbox getting native support.
 
Top Bottom