Posts about Programming
I'm copying this text from a post by /u/nefsen402 , so credit for this write-up goes to them. I haven't seen anything in this subreddit about these horrendous programming issues, and it really needs to be brought up.
Vkd3d (the dx12->vulkan translation layer) developer has put up a change log for a new version that is about to be (released here) and also a pull request with more information about what he discovered about all the awful things that starfield is doing to GPU drivers (here).
Basically:
Starfield allocates its memory incorrectly where it doesn't align to the CPU page size. If your GPU drivers are not robust against this, your game is going to crash at random times.
Starfield abuses a dx12 feature called
ExecuteIndirect
. One of the things that this wants is some hints from the game so that the graphics driver knows what to expect. Since Starfield sends in bogus hints, the graphics drivers get caught off gaurd trying to process the data and end up making bubbles in the command queue. These bubbles mean the GPU has to stop what it's doing, double check the assumptions it made about the indirect execute and start over again.Starfield creates multiple `ExecuteIndirect` calls back to back instead of batching them meaning the problem above is compounded multiple times.
What really grinds my gears is the fact that the open source community has figured out and came up with workarounds to try to make this game run better. These workarounds are available to view by the public eye but Bethesda will most likely not care about fixing their broken engine. Instead they double down and claim their game is "optimized" if your hardware is new enough.