To Vulkan or not to Vulkan, that is the question


For me the root issue is that the Kickstarter stated that the min requirements was Windows 7. If we choose DirectX12 then we’re asking everybody to upgrade to Windows 10. So potentially there could be some poeple that will get pissed off, refuse to upgrade and ask for a refund…

In the long term, it seems to me that Vulkan is more interesting than DX12. In the short term, yeah, shaders compilation is an issue. Another question is: how long will that “short term” be ? It is sufficient for another company to provide a good shader compiler publically within the next 2 years for this problem to become a non-issue, but it is a gamble.


Relying on other companies is a massive gamble…they often fall short.


But I wonder how many would get pissed off being Windows 10 is quickly becoming the standard?


I’ve heard and read too many bad things about Windows 10. I’m going to stick with 7 until I absolutely have to.


I have a long list of gripes with 10, dx12 being w10 exclusive is one of them. Eventually i plan to jump ship when using win7 isn’t viable anymore, which means i’d need linux support. I’d prefer you went with vulkan to widen your userbase as well as secure a chance at easier porting… with dx12 you aren’t even making a gamble, you know you will be locked in. And, who likes microsoft having you by the balls anyways.

Im not sure what exactly your development split between gameplay and the engine is going to be over the course of development, but if possible i suggest going full steam ahead with gameplay system development and waiting until vulkan is further along before doing the shift. If you keep in mind the eventual vulkan move you should be able to keep gameplay stuff reasonably independent so you won’t be wasting work by waiting.

About linux, the market being small is an advantage in of itself. If you are one of a few great games that push to linux you make yourself an opportunity to take a much bigger portion of linux market than originally expected, a market which is currently seeing pretty big growth, and its definitely the right demographic.


I would. I’ve got Windows 7 on a separate partition and I’d hate to have to “upgrade” to Windows 10 just to play Battlescape. Not all of us are happy about shoving our private data into Microsoft’s trusting hands… signed, a happy linux user. :stuck_out_tongue:

I’d prefer Vulcan. I don’t think vendor lock in is ever a good thing, even if the vendor supplies 95% of something. Personally I’d gamble on shader performance improving before Battlescape ships, especially since every other company that will be porting to Vulcan will run into the same issues, thus making a solution likely.

And even if not: while the shaders are 30% slower, how much faster would the rendering pipeline still be in total? If it’s still faster isn’t it worth it just for avoiding vendor lock in? Even if the shader slowdown only happens after Battlescape hits retail, imagine the nice bonus for all the players when an update increases speed for free*.

(*Terms and conditions apply.)

EDIT: Also, and I feel foolish for pointing this out, but Vulcan runs on mobile devices. While I doubt the next years will result in mobile devices with enough computation power to run the Inovae engine, I wouldn’t bet against it happening sometime in the next 10 years. You’d lock yourself out of that too.


You make a good point. No one likes being locked down to anything…try being married for 25 years! And to be honest I’m not a big fan of Bill Gates either. That said, I like windows 10 and it is running pretty flawlessly. At first I had reservations but I switched over and glad I did. Again, tough call…hate to be the DEVs. Guess that’s why we are paying them instead of them paying us.

1 Like

I have a personal preference toward D3D12 – I made the leap to W10 as soon as it was available, and it will be a cold, cold day in Hell before I ever try moving to Linux again – but the fact that it locks out Windows 7 and 8.x, when support for those platforms were promised, kinda makes that seem like a no-go in my mind.


Stay focused. You’ve got a game to build. DX11 all the way. DX12 is far too restrictive and Vulkan isn’t stable. So build your game, make it the best game that you can, then port over to Vulkan when it is stable enough. That port will be grunt work, but it’ll be a known quantity. You’ll have a stable notion of what technology you need for your games and you’ll have a stable target to port to.

Note that Windows 10 is currently 12% of the desktop market, while Windows 7 is 52%. How much that will change in two years is anyone’s guess. There are definitely headwinds when people consider transitioning to Windows 10, so it’s not at all an automatic upgrade.

Consider too that Virtual Reality is coming, and one or the other rendering platform (or another one altogether) may turn out to be the clear winner for your games in two years’ time.


The Steam surveys show that people are evenly split at 34% between win7 and win10, with 10 about to overtake the top position. Right now Vulcan would be the safest option because you won’t be denying the game to a whole bunch of annoyed backers. As xamino pointed out, it is worth the gamble. Plus it will be supported on more than just “The One” system :stuck_out_tongue:

Maybe the option of getting it out earlier and making some sales will let you invest in upgrading to D3D12? I don’t know what is possible for you guys to handle.

1 Like

I agree with Kichae and JB. Win 7 support was promised in the kickstarter, so D3D12 is out of the question. Go for vulkan, once they have fixed the shader issue.

1 Like

Microsoft is force updating people to Win10 whether or not they want/complain about it at this point in an effort to get everyone on the same page, instead of recreating Windows XP situation. I would say go with dx12 honestly. I have a feeling that with the current way Vulkan sits you’re looking at the long run for the benefits over just using Metal and DX12, when I say long run I mean years btw not months. Steam is trying to push steamOS and steam machines but I don’t personally see a mass adoption of what seems to be essentially Debian under the hood for mainstream gaming and that whole push working for years, if ever. Things like VR aren’t helping linux’s case among other things. And while you did say you’ll support 7 in the kickstarter technology changes and things happen so fast that this realm that people need to just get off their high horse about how Windows 7 is so much better than 10 just because they’re used to and delaying the inevitable. 30% detriment to the performance you’re current seeing and hoping that Vulkan improves over the next few months/years vs DX12 isn’t really worth it in my opinion to support a generation of OS’s on the way out, an OS that may take who knows how long to take off or not at all. Also OSX will probably never be fully supported by anything but Metal since they only got done with that a few months ago anyway, maybe a wrapper or something in the future for some support but you’ll probably never see full support. Then again I could dead wrong on all this as well!


For the record the 30% is due to shader compiler optimization. This statement isn’t exactly scientific but if you look at the benchmarks for The Talos Principle you can see that D3D11, OGL, and Vulkan are all fill-rate limited. D3D11 is performing anywhere between 30% to 50% better than OGL and Vulkan however this gap gets eliminated on the low end once you drop the resolution to a point where fill-rate is likely no longer the bottleneck.


Interesting to reference the reddit post back and forth on this topic:

Is it possible to maybe fix these issues with Vulkan while it is still in Beta? Long term DX12 seems to be the right call, but personally i guess i would prefer Vulkan for Linux/Apple support (neither of them seem to be supporting it anyway). I would love to switch to Linux but games in general never choose to support it. Tough question. One thing is for sure: a migration to DX12 or Vulkan is needed, being stuck in the past will only drag the project down.

1 Like

Current, naive implementation of Vulkan in Talos probably shouldn’t be used for benchmarking purposes, but the shader compiler problems seem to be real:

Q & A:


Make it work as fast as possible just by wrapping current engine design around Vulkan. Avoid all pitfalls and bottlenecks. This is what we did by now and released as patch for Talos.

Shader compiler issues:

Vulkan (and OpenGL, for that matter) are much slower at higher resolutions and visual qualities than DXs. So, as you become more and more GPU-bound, VLK/OGL will get slower and slower. Both us and IHVs are still in dark of what exactly is going on there, but currently shader compilers are no.1 suspects in this case. Will let you know how this unfolds… in the meantime, don’t benchmark GPU-bound scenarios, just… don’t!. :wink:

1 Like

Greetings from the Reddit thread!

This overall attitude towards Vulkan astounds me. The API has been out for one month, and the drivers are far from optimized. Anyone working in Vulkan today should be doing so with the attitude of finding problems, reporting them back, and trying to make tools better. If you’re going to evaluate the situation strictly at a business level, you shouldn’t even be considering Vulkan. Come back in 2 years.

But if the mentality is largely business-centric, why is DX12 even a candidate? I mean, if there are technical constraints that make DX11 infeasible, knock yourself out, but I laugh at everyone who says Windows 10 is “inevitable”. Yeah, it’s inevitable as long as Microsoft continues installing it on customer’s machines while they are sleeping. Windows 10 supporters are the most apologetic bunch I’ve ever met. The highest praise one can give Windows 10 is “well it’s roughly as good as Windows 7 thankfully” because it was an escape hatch for the nightmare that was Windows 8. I plan to use Windows 7 for as long as I possibly can. When time runs out, I’ll probably commit fully to Linux. You enjoy your mandatory updates and Microsoft spyware.

If you want maximum reach, using Vulkan should be a no-brainer. That opens the door to Windows 7, Linux, Android, and lots of crazy hardware. OSX will even be covered provided that MetalVK pans out. Heck, even Nintendo’s next console is suspected to use Vulkan. Please don’t fall into the trap of assuming that Windows 10 is where all gamers will congregate. Windows 7 is supported until 2020, and that is where many of us will be waiting.

1 Like

The difference often comes down to business - it’s risky to bank the ENTIRE project on a possibility that an untested (or in the process of) technology that still has severe issues that may be fixed. Microsoft has, at least, a proven platform to go with. This post has very good points on the current state of that game’s benchmarks:

Personally i like Vulkan more, and i like what it stands for. Just like Linux i like the IDEA of it. In practical terms i’m still using Windows 10 (and quite happy with it) and i can totally understand why I:B would go DX12.

My only suggestion is for the devs of both Vulkan and Infinity: Battlescape to have an active and direct dialog for a more informed decision.


The drivers aren’t the issue (as I mentioned), the shader compiler is the issue.

You are, by a massive margin, the exception and not the rule. From what I’ve seen over the last 2 years I have 0 confidence that Valve’s effort to increase/improve games on Linux is going to have any tangible result anytime soon. The simple fact of the matter is that if you’re a company focusing on PC games Windows will remain the dominant platform for the foreseeable future.

Sort of. As previously mentioned Linux just doesn’t make business sense, we aren’t building mobile games so that makes Android a non-issue, which leaves Win7. Every day that goes by fewer people are running Win7 as they switch to Win10 so while it’s a reasonable argument at the moment that won’t always be the case.

We haven’t fully committed to either Vulkan or D3D12 at this point, we’ll see how things play out over the next few months, but Microsoft is currently providing a superior solution with D3D12 as it pertains to a small PC-centric company like ours. The point at which we have the resources to port to Android or console we’ll likely have the resources to support both D3D12 and Vulkan rendering backends. They’re both quite similar so adding one after the other likely won’t be too much of a hassle.


We would certainly prefer to go with Vulkan which is what makes all of this such a tough decision. That being said we likely won’t need to make a final decision for months so we have some time for a better shader compiler to materialize.

1 Like

Please elaborate. Which step are you referring to? GLSL compilation to SPIR-V? SPIR-V compilation to GPU native instructions?


GLSL compilation to SPIR-V.

1 Like