To Vulkan or not to Vulkan, that is the question


No and that question belongs in a separate thread. (I undeleted it for the sake of adding this warning)


Sorry, I thought it was relevant since many contributors in this thread were saying open source is beneficial.


Then you should include more context for your question that demonstrates how it’s relevant to the discussion (i.e. replying to a specific post or including quotes in your post). To me it just looked like a random question about how much malware is in open source software.


Got it…will do.

1 Like

Okay, maybe I’m just not getting it, and if that is the case I apologize, but I feel as though this still doesn’t answer my question. Allow me to try one last time, I’ll stop pestering this point from now on, promise.

Vulkan is supposed to be faster than DX11, right? Now, it has a shader optimization problem that causes a 30% performance hit. Is Vulkan still faster than DX11 even though it has a 30% hit or not?

Example: DX11 60 fps, Vulkan 80 fps ideally, but really 80-24=56 fps --> answer would be no, Vulkan ist absolutely slower. If Vulkan manages 90 fps however, its really still faster since 90-27=63 fps --> answer would be yes, Vulkan is still faster.

Thus if Vulkan is still faster than the current tech, I argue that that would remain a point in its favor over keeping the state as is.

And if I really am not getting this, sorry. I tried. :stuck_out_tongue:

EDIT: Just to clarify: yes I know that just the shaders are 30% slower, but since I don’t know how much the shaders cost in term of absolute FPS I just used 30% in overall performance for the sake of argument.


You are really not getting it but that’s ok :stuck_out_tongue:.

The answer to your question is both yes and no because it depends on where the bottleneck in a game is. If a game is CPU bound then Vulkan is faster than D3D11 if the reason it’s CPU bound is due to driver overhead. It’s actually slightly more complicated than that due to bundles but I digress. If the game is GPU bound specifically due to shader execution speed then both D3D12 and D3D11 are much faster than Vulkan because their shader compiler is much better than Vulkan’s.

Infinity: Battlescape tends to be fill-rate limited. In other words the execution speed of our per-pixel shaders is the primary bottleneck which means we would absolutely be affected by Vulkan’s crappy shader compiler to a tune of ~30% or more. It should also be noted that by taking a 30% hit on shader execution speed a game that was previously CPU bound may become GPU bound.


Very first post.

EDIT: To clarify, this means 100 FPS on DX11 or D3D12 is 70 FPS on Vulkan.


In the case of Infinity: Battlescape, which is heavily fill-rate limited, this is the likely outcome.

1 Like

Now I am getting nervous about Vulkan…personally I want high performance and prefer players to upgrade rather than developers downgrade. So I am leaning back towards Windows 10. Tough call, reading this thread. But in the end I support whichever the DEVs chose.


Are you concerned about your image - and your legal standing with regard to refund requests - if you should decide to not ship on Windows 7?


No, we just want as many players as possible to be able to play the game regardless of their favorite OS. That being said we also want to create the best experience possible and with our limited resources that forces us to make some tough choices. We believe there are some compelling performance reasons to use Vulkan/D3D12 and choosing Vulkan would be a no-brainer if it wasn’t for the fact that the current state of its shader compiler not only negates those performance enhancements but likely would result in a net negative until some undefined point in the future when it gets fixed.

1 Like

For what it’s worth, I think you already have a great engine. Now there’s a question I don’t think have been answered: how much of a performance boost would you gain by going on D3D12/Vulkan (ignoring that pesky shader hit for the latter)?

You’re navigating between the oven and the frying pan: you don’t want to limit to Win10, and you also don’t want to stick with a shader problem that will be resolved in a undefined time, perhaps even far after the game is out. Both are very good reasons to stick to D3D11 for the moment: it’s the current standard, it will still run on Win10 and it won’t get looked down for the next 2~3 years.

I understand you want the best for your engine, but you haven’t actually sold an engine only, but mainly a game to us, backers. There’s still a long road, I think, to get a working gameplay, and the more content, the more complex the bugs will get.

If limiting to Win10 is a real question, why not ask it to all the backers? This way you’ll know at least what percentage of the backers are ready to make an effort and migrate to Win10 if that means a better game.


This discussion is going nowhere. It’s just people stating what they believe will or will not happen in the future.

Sure, what exactly the problem is got nailed down. But without the necessary informations no decision will be the right one or even a well founded one.

This also isn’t one of the typical “we need to decide early in the project, when information is low anyway” decisions you generally encounter in all projects. It just happen that the question is asked when the information just happens to not exist and the only thing we can do about it is wait or drill deeper (as in ask insiders / do surveys).

What I want to say is: There is no valuable information available currently and deciding this now will result in a decision that is predominantly based on believe.

To have a decision that is based more on real information, you have to get or wait for that information to get to you “on itself”. That would allow for arguments like: “Reliable sources from the industry assured us that no one is currently working on a optimised shader compiler.” or “The release date of an optimised shader by is scheduled too far into the future.” or “Our community strongly opposes breaking our proposed specifications.”

Until that happens or a decision is made nevertheless this discussion will go on without yielding anything but single personal oppinions based on believe … like it did for the past 8 days.

I just wanted to point this out, as it was the most dominant thing that I noticed while following this discussion.


Something I want to point out is that this 30% number that’s been floating around is a number that came from benchmarks on the Talos Principle IIRC. Obviously that only applies to that game. What would that number be for Battlescape ? My intuition is telling me it’d probably be much higher. The Talos Principle doesn’t strike me as a game that would mostly be fill-rate limited, while Battlescape definitely is due to our physical-based lighting pipeline and the tons of complex shaders we have in some situations ( the planet shaders are pretty insane ). We rely heavily on the compiler doing its optimization job. To give you an idea, some of our shaders are over 10K lines long. I’m pretty sure Talos Principale’s are relatively “simple” in comparison.

Therefore for Battlescape the performance hit of Vulkan could be much, much higher than 30%. I wouldn’t be surprised if it was ~50%, and it might even be possible to reach 100% or higher, although that becomes less likely… but I wouldn’t totally exclude it. It’s pretty much the difference in DirectX11 between a shader being compiled with the debug flag ( no optimization ) versus full optimization ( level 4 ).


That’s a really serious hit, if you’re looking at a 100% difference in framerate than going to Vulcan is unacceptable. The risk appears to be too great too to trust that someone will fix the problem in the future.

The loss of windows 7 via DX11, though, is also going to be an issue. Can that be mitigated at all?


We’ll be evaluating that over the next 4-6 months.


Don’t believe that’s true when Valve, Epic, and iD have all seemingly solved the shader compile issues. I mean watch that video, they do talk about it and the challenges with having shaders compiled to be optimized for different hardware and drivers and how the temporarily solved it and may better solve it.

Since the game is going to be on Steam anyway, it appears Valve are looking to build a utility into Steamworks to solve that problem, in addition to the whole can’t you just compile shaders for the specific hardware and drivers at runtime of the game?

It’s my understanding that using generic reference compiled shaders is what makes for the hit in shader performance, and Vulkan doesn’t currently offer something with the SDK to getting optimized compilations done for each spec, right? Just like Flavien said about the shader performance is like if you’re running DX shaders in debug mode. DX happens to have the utility to optimize the shaders for various hardware to begin with.

Also isn’t that something that driver vendors may also solve, to automatically optimize unoptimized shaders? On top of the other various possibilities. It’s not nessisarily a “Khronos Group must fix this or we’re screwed” thing.

I figure. I don’t believe DX12 is an option, though. Only about about 33% of Steam users are using Windows 10, and the adoption has only increased by 1% per month the past 4 months.

Even if you don’t consider screwing over backers in that they must have Windows10 if DX12 is the only option, you’re seriously limiting yourself to the market that the game can be sold to. I mean, presumably you’re pretty much going to be in the black when it comes to crowdfunding alone, while to actually make good money you need to make the game good and have a lot of new customers buy it. If only Win10 users can buy it, it’s about 1/2 or 2/3rds less sales that you’re likely to get. That seems like a serious no-brainer.

Also as I figured…
So… I mean doesn’t it seem best to switch to Vulkan now, before there is more that needs to be reworked in both the rendering pipeline, shaders, and everything else, as it’ll make adding a DX12 option later on easier, especially in the case that there are issues with Vulkan?

I also imagine, that a year from now, someone will have made something to automatically convert Vulkan GLSL to D3D12 HLSL like how there are currently tools to convert back and forth between OpenGL GLSL and D3D9 HLSL, to further make that transition easier.

Ultimately, I think the best advice would be to email Valve about it. They’re working pretty closely with Khronos group, and spoke of having something in Steamworks to create and deliver optimized shader compilations.
They can hopefully give you a better picture. Granted, Valvetime, so who knows when they’ll have that in Steamworks, but they seem seriously committed to Linux gaming.

As for me personally, I don’t want to be forced to use Win10 or newer only to play, especially when it said Win7 was the minimum requirement. So it’s Vulkan or DX11. Don’t even think about DX12 unless there is a DX11 or Vulkan fallback in the options menu.

1 Like

I wouldn’t agree. Inovae has to think the long-term, when I:B is released for the masses. This’ll likely be after Microsoft has finished the free upgrade option. None of us knows how the windows users will behave with regards to upgrading then, but I think its dubious just to ignore that fact and assume the upgrade behavior wont change during that final period. IMHO the only real blocker is the Kickstarter support list. If Inovae wants to go the DX12 Windows / XB1 route is part of their strategic decision, no blocker. And I’d tend to agree to Invoae, Windows was the desktop gaming platform for decades. And its unlikely that all of a sudden people switch to Linux after Windows 7 support would end. If I look around, at least for my generation Windows is the PC gaming platform still, people dont even think of moving to anything else like Linux. But again, no one knows.

So my advice to Inovae would be to think about where they want to go and if the priority is on (finishing) the game and/or workaround issues with the kickstarter (then you’d probably stick with DX12) or the engine itself (then you’d probably migrate away). And dont care too much about rants about DX11 or Vulkan, if you read between the lines you at least partially see people like Vulkan because they dislike DXxx/Windows, vice versa. So I wouldnt care about people options and judge yourself on the obvious pro’s/con’s (performance hit, documentation/state of code, migration cost, compatibility) of each option. And if you feel you’re not ready to take the decision now because you dont have the whole picture or uncertain about an option, then dont decide in hurry. Its about your business and money.

Evaluate the options and judge yourself, that’d be my 2 cents.


We’re going to wait and see how things evolve for Vulkan over the next 4-6 months and we’ll likely create a follow-up thread before making a final decision. We greatly appreciate everybody’s feedback on this matter thus far!


Did you read anything I wrote that should have kept you from coming to that conclusion to begin with…? Nothing you posted contradicts it or really backs up what you’re saying, it’s just baseless assumptions with no data behind it.

I’ll reiterate: 2 years from now, it may, optimistically, have 50% of the DX12 compatible graphics card users on Steam actually using Windows10 and DX12. I want to say 40%, but I guess 50% is achievable due to new PC sales that come with Win10.
That’s versus a likely nearly 90% for Vulkan, if not higher.

The free upgrade program ends in TWO MONTHS and it still only has 33% adoption among Steam users despite being free for so long. You think it’s going to rapidly increase in adoption rate after it costs money? Your assumption is that MS ending support will suddenly make people switch, when I’m pretty sure most people don’t care about that, and that will be a bigger factor to people than Win10 being free.

The only way DX12 is going to have a higher adoption rate is if MS cuts their BS and makes it available for Win7.

1 Like