To Vulkan or not to Vulkan, that is the question

Vulkan might become the best thing you can use
Vulkan stands a good chance at becoming the best thing you can use

Take your pick, but FTFY. A 30% hit to frame rate is terrible, no matter how you cut it. People accustomed to 60 loathe dropping below that. People accustomed to 30 loathe dropping below that.

Note that I’m not particularly invested either way: I fully expect my rig to handle any of the choices they make. I would prefer they go with a functioning version of Vulkan, given the (slightly) broader scope of players they can have, and I’m also a fan of open source software, but the reality is that Vulkan is, currently, a much worse version of D3D12 and will continue to be until they resolve that issue.

Also note that even if people don’t switch to Windows 10, they will eventually leave it for Windows 11, 12, 13, etc. It’s not a matter of if: Windows will stop supporting 7 like they’ve stopped supporting XP, and people will be forced to upgrade or leave. There are no strong contenders with Windows for gaming, and none sit on the horizon.

EDIT: The Reddit is slobbering all over themselves over this thread, it’s borderline hilarious. Fanboys can’t stand the fact that someone had something bad to say about their precious API.

2 Likes

That’s the problem - finding out how many people are using what device for what purpose. Depending on the source, the linux user base varies between 1% and 3% (judging by statistics from certain websites and counters). There seems to have been a decline some months ago or so (from which it, again, seems to be currently recovering), however the long term-trend seems to be rising, although slowly. so in another 10-20 years, we might potentially have a double-digit linux userbase.

We can however say something about the people who browse the internet (using only the numbers from statcounter.com for this one):
linux userbase seems to be around 1%
Android is currently the single-most used os.
Less than 50% (but more than 45) of all users are using any iteration of windows.

What these statistics don’t account for:
People who are using multiple os
If these users are just browsing or actually using this os for gaming (which would be the interesting question to ask).

However, to add something to the topic of vulkan or not vulkan:
Seeing how mobile devices seems to be getting more 'n more momentum, and with the latest fad being cross-platform play, it seems to be a good idea to not bind yourself to a windows-exclusive graphics api (to be more specific any other windows-exclusive graphics api that isn’t the one you pitched your game to the backers in the kickstarter campaign).

1 Like

Question is, just how easy is it to convert between D3D12 and Vulkan? From everything I can find, they’re virtually identical, and rewriting is a matter of syntax. I don’t have the answers, but IF D3D12 and Vulkan are really so similar, and IF a rewrite from D3D12 to Vulkan would be relatively trivial, why not start with D3D12 now and implement Vulkan later?

I’m barely a novice programmer. I don’t work with APIs, I don’t code for games, and I don’t have the answers to the questions above. However, I don’t think mobile gaming is going to be of any value to Infinity: Battlescape in the near future: the devices simply don’t have the power or battery life to support such an intensive game.

1 Like

I guess that is a question of:
Given just the current numbers (which, by the way, clocks in at ~8-9% for win10 from the above mentioned site), it makes less sense to go with dx12 first, as you would shut-out all non win10 users, including previous win version users.

Please consider this: There are still 4.25% who use Win XP in this day and age. So saying that most win7 people will surely migrate to windows 10/11/12 in the next year is just as optimistic as saying that there will be a simple to use compiler supporting vulkan that leads to no performance hit compared to dx12 in the next year.

Remember that they’re not building just Infinity:Battlescape, but an engine as well. In truth, I think it’s fair to say that what they’re really devoted to is the engine. That’s their game technology, and they want it as feature-rich as possible - after all, they hope to build another game after Battlescape. But it is technology that can be applied to other games, and to other experiences as well. It occupies a unique niche that really has yet to be explored. I don’t envy Keith the choices that he has to make in this environment which is chock full of distractions.

1 Like

4.25% of users are either those who have heavily modded XP to essentially be a Linux box, or businesses who just don’t have a reason to upgrade. I sincerely doubt that the number of gamers on XP is at all significant.

I agree, and I think Vulkan is ultimately the ideal solution, because I’m sure it will be fixed. I just don’t know what kind of timeline we’re looking at for that fix.

My only question is, what takes less time: Do everything in DX11 now, and convert at the end, or do things in D3D12 now, and convert at the end? I think we can mostly agree that a 30% hit to frame rates will make Infinity: Battlescape unplayable for many of the Dev/Alpha testers, and that is the most likely time frame of having no Vulkan solution.

Well, it’s fairly easy for Google, Microsoft, and Apple to figure out who’s using their devices for what purpose, if only because they all now track that kind of information. But yeah, they’re not exactly sharing.

I really hope that in 10-20 years we do have a double digit Linux userbase. For one, that would mean Linux will have softened its rough edges to the point where I might not want to commit violent acts while using it! :wink: For another, it would mean a true third option on the desktop which has been sorely absent.

I also really hope that gaming on Linux becomes viable, for the sake of Linux users. I know I personally hate being forced to use Linux for tasks simply because the tools I need to use were designed for Linux, and there’s no Windows alternative. I don’t see it being any more fun for people on the other side of the fence, being forced to use Windows or MacOS simply because their preferred platform isn’t sufficiently supported.

Which means Vulkan, even with the framerate hit, really does seem to be the next gen API that deserves priority (because let’s face it, once again neither will win, and we’ll be locked in this recurring DX vs ____ war until the oceans boil). The framerate issue will almost certainly be addressed eventually. The problem, as I understand it, is just how eventually. User acquisition isn’t cheap, and Battlescape is, in part, going to be relying on word of mouth from its early access supporters to promote the game. If the first impression people get is that it’s sluggish due to Vulkan’s rendering issues, that could potentially have a major impact on the game’s success.

1 Like

What makes it even more complex is that the longer we wait to do the transition from DX11 to either Vulkan or DX12, the more difficult it becomes.

What is the switching costs from DX12 to Vulkan? Or vise versa? Are those comparable to the switching costs from DX11 to DX12/Vulkan?

The framerate hit from Vulcan is very bad but so too is the limited cross-platform capability of DX12.

In theory the cost of switching from d3d12 to Vulkan is quite low as they’re very similar. The cost of switching from d3d11 to either d3d12 or Vulkan is quite high.

After reading this whole thread I think it would be better to switch now to vulkan, The problem with the 30% framerate hit is probably solved anyway when beta or the final game releases.

1 Like

Very bad? you can run The Talos Principle @4k/75fps on a GTX 950, and there is probably still room for optimisation on the driver side.

Don’t forget: Android IS a Linux distribution (not a GNU one, but Linux distribution nonetheless).

Okay, I admit, I’m a “fanboy”, but really? I’ve been running flavors of Linux for just over 6 years now, introduced it to many other people, and never has it been said that Linux is hard. Is it different? Yes absolutely, thankfully, otherwise it wouldn’t be so great. Does that make it harder? No. But this is probably derailing the thread quite a bit. :smiley:

Before you guys get too defensive about a 30% framerate hit, that is not what Keith said. He said Vulcan has a 30% hit in comparison to DX12 – there is no word on how that compares to the current implementation. Vulcan may very well still be quite a bit faster even if it is slower than DX12 currently. Maybe Keith could clarify?

What these statistics never account for is that the amount of Linux users is steadily increasing, but the percentage of computer users that run Linux is decreasing, mostly also because of the ridiculous mobile OS growth in recent years. That makes a difference IMO.

1 Like

The 30% framerate hit is due to the shader compiler that ships with the Vulkan SDK, not the API itself. This is not an issue that gets automatically resolved by a new driver, we have to recompile all of our shader code with a newer/better compiler for users to see a benefit.

1 Like

Thanks, but that doesn’t really answer the question I had. :stuck_out_tongue:

Is Vulcan with the 30% hit to shaders slower than DX11 or just in comparison to DX12? Is it still faster than DX11 even with the 30% shader hit?

He actually has said it before, and just said it again. 30% framerate hit, not some strange compilation of factors. As in, the computer that could run it at 36 fps (acceptable) now runs it at 24 (not acceptable).

Have any of them attempted to game on Linux, with every game they could ever want to play? That is hard. And we’re not talking about OS for the sake of OS, we’re talking about OS for the sake of gaming.

If this is true, then it means that there are still more people added to the pools of “other” OS than to the pool of Linux OS. My point is still there: the Linux market is small, and relative to others, not improving by any significant amount. Furthermore, I continue to contend that consideration of an OS that is, at best, difficult to game on is nothing shy of stupid.

IMO, this alone justifies switching to D3D12 now, and take the hit when Vulkan finally releases a usable product.

This is really the core decision right here. The only caveat is the Win10 restriction (as mentioned above). One thing we’re currently discussing is seeing how much we can migrate our existing d3d11 renderer to something that could work with d3d12/Vulkan in order to possibly keep d3d11 around as a fallback for Win7.

D3D12 and D3D11 use the same shader compiler thus it’s 30% slower than both of them.

Question: isn’t open source loaded with Malware? Or at least a very common problem?