Why do some developers struggle with game performance? *spawn*

In this case we objectively know the tools are good (they are publicly available) and also that properly developing for a vulkan or dx12 style api is difficult and expensive. This only looks like “lazy devs” or “bad tools” if you aren’t informed about graphics apis.
Good point you bring up about vulkan, why aren't the issues with vulkan as pronounced as with dx12?
very similar goals with both the APIs

why aren't they?, Its just a better designed API

edit: Im not sure about metal though, perhaps someone more enlightened than me can share does this also have the same issues as dx12
 
Good point you bring up about vulkan, why aren't the issues with vulkan as pronounced as with dx12?
very similar goals with both the APIs

why aren't they?, Its just a better designed API

edit: Im not sure about metal though, perhaps someone more enlightened than me can share does this also have the same issues as dx12

Vulkan very likely has nearly the same issue as D3D12 does when it comes to pipeline compilation. The reason why the issue isn't brought up so often on Vulkan is because virtually no AAA games are ever released with it on Windows ...

The only advantage that Vulkan has over D3D12 in this regard is that Khronos Group acknowledged in hindsight that adding more dynamic states to Vulkan helped reduce the amount of redundant pipelines that needs to be compiled but this still doesn't help with the combinatorial explosion between different the shader stages or shader variants ...

Metal offers separate vertex and pixel shader objects just like D3D11 (CreateVertexShader() & CreatePixelShader() methods) or OpenGL so you can change shaders dynamically within the pipeline as opposed to generating a new pipeline in D3D12 or Vulkan. Separate shader objects can have a clear advantage in reducing hitches in comparison to generating monolithic pipelines as long as it doesn't trigger recompilations ...
 
Good point you bring up about vulkan, why aren't the issues with vulkan as pronounced as with dx12?
very similar goals with both the APIs

why aren't they?, Its just a better designed

If you run vulkan, dx12, or metal, you’ll have to do a ton of work to avoid these issues. Like I said in my prior post, I speculate that dx12 being required for certain features means more developers end up making a dx12 version they weren’t ready to support.

the only reason to use vulkan is because you have a team and a schedule ready to do a good job.
 
So I have a question regarding Proton/Steam Shader Pre-caching...

Is Valve able capture the required pipeline states and shaders (of DirectX games) with DXVK and VKD3D-Proton, and crowdsource that information to upload to their servers, essentially creating a shader pipeline state which could be downloaded and compiled and cached by the user's PC before the game ever needs to be played?

To me it sounds like that's what they are doing. That's essentially what the plan is for Steam Deck right? They have the Vulkan pre-caching system in place already.

If they are able to do this... that would be really interesting. Assuming Proton continues to improve and more and more games become supported and Valve really pushes this stuff to the next level, I could almost be convinced to switch to SteamOS on Desktop lol

Why can't this be done through DirectX again??? MS should work with Valve so that even if PC gamers DO have to crowdsource pipeline state information and upload it so that it could be packaged with the download and then pre-compiled before running the game.
 
So I have a question regarding Proton/Steam Shader Pre-caching...

Is Valve able capture the required pipeline states and shaders (of DirectX games) with DXVK and VKD3D-Proton, and crowdsource that information to upload to their servers, essentially creating a shader pipeline state which could be downloaded and compiled and cached by the user's PC before the game ever needs to be played?

Yes but there are restrictions and you can't really avoid starting up the game prior to compilation unless developers want to include Fossilize to their engines to be able to create and distribute Vulkan objects ...

To me it sounds like that's what they are doing. That's essentially what the plan is for Steam Deck right? They have the Vulkan pre-caching system in place already.

If they are able to do this... that would be really interesting. Assuming Proton continues to improve and more and more games become supported and Valve really pushes this stuff to the next level, I could almost be convinced to switch to SteamOS on Desktop lol

Why can't this be done through DirectX again??? MS should work with Valve so that even if PC gamers DO have to crowdsource pipeline state information and upload it so that it could be packaged with the download and then pre-compiled before running the game.

There is a pre-caching system in place but it's legally discouraged to share Vulkan objects from a game to others since potential interpretation of copyright law may constitute this as a violation of a copyright holder's exclusive right to be able to create derivative works from the original work ...

Also VKD3D-Proton (D3D12 translation layer) is intended to be ran on a community developed driver like RADV which doesn't work on Windows. You are going to have a bad time on either Intel or Nvidia graphics hardware with tons of performance losses. Guardians of the Galaxy still can't boot up on Nvidia hardware with VKD3D-Proton because the game renders to a host-visible 3D linear image which isn't a supported capability on their Vulkan drivers. Also there are games like Cyberpunk 2077 and the Forza Horizon series which will crash on Nvidia hardware since their Vulkan drivers don't support descriptor aliasing ...
 
Attaboy Alex. This needs to keep being hammered on by prominent tech youtubers (which most rarely do unfortunately). Even if GPU prices were normalized this kind of stuff drives me nuts and would keep me from returning to the PC as my main gaming driver.


(btw this latest post was influenced by Shadow Warrior 3, which also has the UE4 stutter)
 
Last edited:
Ue4 stutter, does it have the same root cause as ue3 stutter?

Although in any of "levels" I ever made in unreal, I've never experienced the stutter so I really don't know what are the root causes.
 
Back
Top