innociv I hope we can stay polite can’t we, no need to get harsh? thx. I didnt even want to try to baseline anything, my post’s message is that Inovae shouldn’t decide their business strategy based on raw assumptions in this forum. Not to try to predict e.g. the peoples migration behavior of Windows based on some stats or based on the people’s emotions (Microsoft haters or Linux lovers) in here. The same is for the technological direction of their engine.
Their business is too crucial ATM to do it that way. IMHO best advice is to get a good and neutral picture where they want to go with the game and (IMHO more important) engine and then take some technical decision themself, they know what they do and are professional enough to rate their options - and not get lost in this thread full of lovers for Option A or B. And not hurry. Thats my 2 cents, I have enough trust into the guys from Inovae that they’ll go for the right route, especially due to Keiths latest post…
I tend to agree, although I am on the fence about which platform. A lot of good arguments from both sides and I personally am leaning back towards Windows 10. But I do see the reasoning about more options that is behind Vulkan. That said, I am using Windows 10 presently and it is working pretty flawlessly so I can really only base my decision on my experience. I did try Linux at one point but it was a bit of a nightmare to be honest - if you are a computer nerd I would go with Linux. But if you are an average Joe-smoo gamer like me than Windows 10 is your best option. And probably best market. But Keith’s recent post is a good call and best to see what evolves over the next 4-6 months.
I had a thought, and it might impact a lot of opinions as VR seems to be a relatively popular subject here: how does the shader issue impact VR? Let’s assume a 1440p screen (1.75x pixel count as 1080p), as that seems to be popular. Does the fact that the screen is split reduce, amplify, or remain neutral with regards to the FPS loss compared to a standard 1440p screen?
Both the Rift and Vive need to render a 1080x1200 image at least 90 times a second, twice.
A 2560x1440 display at 60 fps will draw 221,184,000 pixels a second. A 2160x1200 VR display at 90 fps will draw 233,280,000 pixels a second.
So VR will have to have about a 5% increase in performance over a somewhat standard output.
Vulkan and DX12 both have faster “response times” and reduce how long it takes to get a frame drawn which impacts VR a lot.
Right, but Vulkan currently suffers from the 30%+ frame rate hit due to the shader compiler issue (and the devs have stated that it may be much greater, given how GPU bound I:B tends toward anyway).
However, the “response time” decrease is great news for the VR crowd, and even more of a reason to switch to one now and transfer over later.
And I would like to add that the videos being currently made by SpaceJay and crew wouldn’t be nearly as good with a 30% frame rate hit. Those are some pretty awesome ingame footage!!!
Don’t you think it has 30% less performance because of the way they ported to vulkan?
No as that’s not what the benchmarks indicate.
I managed to get some discussion about the Vulkan woes over on Phoronix
Overall they seem to think you have misjudged something significant, either way not discussing the issue with the khronos group and AMD/NVIDIA driver developers will not help. If there is a issue then talk to the guys who likely know more about it then you.
Do you want MOST your games players to enjoy better performance or only the small fraction on Windows 10 exclusively? Because DX12 doesn’t work on Windows 8.1/8/7 where most the gamers still are (this is fact).
NVIDIA appears to have a issue with their Vulkan performance under Windows, AMD Windows Vulkan driver performs MUCH better. I wouldn’t finalize your opinion/decision based on beta drivers if I were you!
@TheRiddick I’m not sure why people are talking about the Vulkan driver / bugs in that thread. As we’ve repeated, this is NOT a Vulkan API / driver issue.
@INovaeKeith can elaborate and I certainly know less than him on this topic, but my understanding of the problem is simple, really.
Vulkan takes SPIR-V as its shader compiler input language. It doesn’t know anything about GLSL. However a tool ( glslang ) can convert GLSL to SPIR-V, but that’s a reference compiler, so it does no optimization.
GLSL SPIR-V support in glslang is experimental and non-optimized
Source: https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/
So the real question we have is, how do you, today, convert from GLSL to optimized SPIR-V ?
Yes they do seem to think I have misjudged and, while that’s certainly possible, after reading their commentary I believe it’s far more likely that they are the ones missing the point. bridgman even admits his “compiler-fu is pretty weak” so please allow me to explain. There are 2 levels of optimization with Vulkan/D3D: source -> IR/IL and IR/IL -> ISA. Vulkan’s drivers being in beta would affect IR/IL -> ISA which can absolutely have an impact on performance. I am, however, less concerned about this because if you look at D3D11 vs OpenGL this was never the primary problem.
OpenGL frequently has slower shaders because it only performs source -> ISA compilation which you can clearly see in the Talos benchmarks. Due to the fact that this has to be performed during runtime it’s very time sensitive and thus the driver does not spend a lot of time optimizing. This is the key advantage of D3D, its HLSL compiler, and the DXBC IL. With D3D you can compile your shaders as a preprocess before the game ships which allows the compiler to spend much more time optimizing. During runtime the driver then only needs to take optimized DXBC and compile it to the ISA.
Thus the process of going from IR/IL/DXBC to ISA was never the primary bottleneck. The problem is compiling source code to an optimized IR/IL or, in the case of OpenGL, the fact that it skips that step entirely. Vulkan’s shader compiler ecosystem (currently) being a complete disaster is because there’s (currently) no easy way to optimize your SPIR-V. At the moment you have to go through GLSL -> glslang -> SPIR-V -> LunarGLASS -> GLSL -> glslang -> SPIR-V to get an optimized shader. Is it possible? Yes. Is it a major pain in the ass? Absolutely. Presumably the Talos guys did not go through this process and instead just did glslang -> SPIR-V which, if you look at its source code, you will see does little to no optimization whatsoever.
The belief that only the driver should do shader optimization is a holdover from OpenGL group-think which benchmarks consistently show is completely ridiculous. There seems to be a lot of people quickly forming the opinion that I don’t know what I’m talking about just because I’m slamming Vulkan however they haven’t actually bothered to do their homework. For starters I’m not slamming, or even talking about, the Vulkan API. I’m only talking about its shader compilers which the API is dependent on. Quit forming emotional opinions based on drinking the open source Kool-Aid, learn how D3D/Vulkan/OGL actually work, and go look at the compiler source code if you don’t believe my criticisms are accurate. After all isn’t that the whole point of open source?
Hey do what you want, you should talk to AMD/NVIDIA and Khronos group however about the issue and they may come up with a solution for you.
I WON’T be supporting this game or company further until Vulkan or Linux support is available. If you guys decide to do a good OpenGL component for the game then that is fine also, I just think DX12 is VERY bad for the industry! If MS unlocked it for previous versions of windows NT environments then I wouldn’t be so against it.
And again, talk to AMD/NVIDIA and Khronos group, I’m sure they would LOVE to hear from you about the issue you face as it helps everyone in the long run.
I know how people can get when they become attached to a product and I at times do the same thing. But I just want to ask, optimization will be crucial for getting water added will it not? If so then I have to say Vulcan might not be in the best interest of the game.
AMD/NVIDIA aren’t the principles, it’s Khronos. The problem with Khronos is that it’s a consortium of companies that attempts to reach a consensus. From what I’ve heard/read Vulkan exists primarily due to AMD and Valve taking point and driving it forward. My understanding is that Valve more or less funded all of LunarG’s effort on the Vulkan SDK until Google acquired their mobile team. Nobody seems to have invested much, nor is willing to invest more, in an optimizing GLSL to SPIR-V compiler. The psychological problem here is that one company has to be willing to foot the bill for the thing and be ok with the fact that everybody else, including their competitors, immediately benefits from it for free.
Fair enough however we unfortunately don’t have the resources to fight that holy war alongside you. We cannot concern ourselves with what’s best for the industry, we have to focus on what’s best for I-Novae Studios and just surviving. Realistically if we were to commit to D3D12 we would probably keep our D3D11 renderer so that people without Win10 could play the game. I’m not optimistic Win10 adoption will be high enough by the time we decide to make this transition that we could leave Win7 users out in the cold without serious financial repercussions.
I understand about the resource issue and I don’t expect anything before the game is complete and ready. But once it hits good steam sales and such then further expansion into other platforms would probably be beneficial, unless the game flops however (hopefully not).
I was proposing Vulkan as a way to also get better performance for NON Win10 users, to me developing DX12 for Win10 users only seems like a even bigger waste of time then developing Vulkan which runs on them all. Shrug.
[quote=“TheRiddick, post:193, topic:3174”]
I managed to get some discussion about the Vulkan woes over on Phoronix
Overall they seem to think you have misjudged something significant, either way not discussing the issue with the khronos group and AMD/NVIDIA driver developers will not help. If there is a issue then talk to the guys who likely know more about it then you.[/quote]
I can’t help but note that this thread has died since we pointed out the obvious ( that there’s no simple way to compile GLSL to optimized SPIR-V code ). Guess what ? It’s the same everywhere. So much that typing “glsl to optimized spir-v” in google leads to this very thread as the 6th link on the first page !
Sigh.
Keith has already tried to start discussions about this issue on various places, it all came down to the same answer “somebody will do it one day”.
Sigh, again.
The Khronos group and the NVidia / AMD driver developers don’t seem to me to be interested in this, because it’s not a bug or a direct problem with the API. There’s nothing to fix. The Khronos group made a design choice: to leave out shader compilation to third-parties, basically offsetting their responsabilities off their plate. It’s both a strength and a serious weakness; a double-edged sword. It’s good because in the long term, there’s potential for better compilers and more optimization instead of relying on the driver teams. But in the short term, for small companies like us who don’t have the resources / budget to develop a shader compiler… well we’re fucked.
i regret upgrading it already, sometimes the desktop just doesn’t work at all, and i have to open the explorer to execute every dam thing
@INovaeFlavien i think DX12 is for now the option, but an option and nothing else, keep it on DX11, make a DX12 option later, and try Vulkan after that if the thing gets better, as you said it, it’s 1 month worth of work for each of them, so maybe leaving them for the last, as a way to get more players, seems like a good idea.
I have a few questions tho, what do you think that would be better performance wise, in the older OS? DX11 or Vulkan? is the extra performance needed or will the game run fine with DX11 in a good PC? is it needed in order to have water in the game?
This happens when you install windows 10 incorrectly.
I’ve had win10 running on both my laptop and PC since it came out, not one problem.
All my hardware is recognized for a change and everything just works.
DX12 is and has always been, in my mind, the only the way to go. It’s going to blow your minds. 
Does anybody here actually read the initial post? I keep seeing the SAME ARGUMENTS over and over again. “It’s beta drivers, don’t judge it on them.” IT’S NOT THE DRIVERS. “You should go to Vulkan since it’s better than DX11.” IT’S NOT, IT’S WORSE AND BY A SIGNIFICANT MARGIN.
Seriously. All I ever see from people is “Vulkan is love, Vulkan is life. You have bad words to say about it, so I’m going to write you off as a crazy.” Read the fucking posts. It’s not a driver issue. It’s not superior to DX11. It is an issue of Vulkan does not have an optimized shader compiler, and to render intensive games (which the devs have specifically stated I:B is render heavy), you see a loss of 30% or greater compared to both DX11 and D3D12.