No Man's Sky recently had an absolutely ridiculous update to add in tons of new features and greatly expanded multiplayer. This update also added in Vulkan support too!
It seems Hello Games are keeping an eye on Steam Play as well, with a recent update changelog noting "Fixed Steam VR in Linux.". Quite interesting! However, there is a bit of a problem for NVIDIA users with Steam Play on Linux, with the game performing quite poorly. Although, there's a slightly amusing workaround.
If you spoof your GPU vendor to look like AMD, the game performance will skyrocket. Do any of the below at your own risk. Since I am posting all this, I have of course tested it myself and it's great for me.
Credit to user volca02 who posted an easy to use GitHub repository to quickly enable this spoof. Doing it takes a little command line work but it's easy enough to do. You may need to install some additional packages to get it compiled like build-essential and git on Ubuntu for example "sudo apt install build-essential git".
Instructions:
git clone https://github.com/volca02/spoof_vendorid
cd spoof_vendorid
cmake ./
make
What does the above do? It pulls the GitHub files, changes into the directory downloaded and then compiles it into the files you need. After, you can make a folder to keep the files somewhere handy like:
mkdir $HOME/nmsfix
Then just copy the two needed files over to the nmsfix folder made above:
cp -t $HOME/nmsfix libVkLayer_vendorid_layer.so VkLayer_vendorid_layer.json
You will then need to set a launch option for No Man's Sky on Steam, like this one:
VK_LAYER_PATH=/home/liam/nmsfix/ VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_vendorid_layer %command%
To do the above, right click on No Man's Sky in Steam -> Properties -> Set Launch Options… and enter the line above in with VK_LAYER_PATH pointing to where you put the files.
It made my frame rate on an NVIDIA 980ti go from a sluggish 40FPS and under to well over an enjoyable 80FPS most of the time. There's a few dips here and there depending on what's around you, but it's a big improvement.
Pictured: No Man's Sky running on Linux+NVIDIA with the above workaround.
From what I saw an NVIDIA rep say, they've confirmed this is an "application bug" and so it needs Hello Games to fix it. Hopefully with this post bringing some more attention to it, more of you can enjoy No Man's Sky on Linux with Steam Play until the main issue is solved in the game. Who knows, maybe they will support Linux officially one day.
Quoting: PatolaTried the trick, same result... Doubled the FPS!!! Thanks!!! BTW, I did not create a new directory for it, since I decided to keep the github dir I pointed directly to it.Glad to have helped.
The extra directory is more for cleaning up, so you can just remove the pulled GitHub files, I just like to keep my folders neat.
Is this fix does something about it?
# dxgi.customDeviceId = 0000
# dxgi.customVendorId = 0000
Edit: Never mind - as Liam pointed out it uses Vulkan natively rather than go through DXVK so this won't work.
Last edited by adamhm on 22 August 2019 at 12:36 pm UTC
Quoting: x_wingLiam, you probably want to point out that in order to compile you need to install build essential (or the similar meta package for non debian distros)Sure, added two package notes in quotes for people on Ubuntu who need a bit of help. If anyone knows other specific packages it absolutely needs, happy to add them in. Everyone on Arch likely knows what they're doing :P
Quoting: adamhmIt should also be possible to spoof the GPU vendorid/deviceid by using a custom dxvk.conf and placing it alongside the game's executable - un-comment these lines and set the values accordingly (the values for my RX480 are deviceid 67df, vendorid 1002):It does not use DXVK, it's native Vulkan.
# dxgi.customDeviceId = 0000
# dxgi.customVendorId = 0000
I know in VR (under Windows where for now is the only place I could get it to work) if you are planetside and running through thick trees, it gets pretty choppy. Pretty smooth otherwise. I do hope they fix the flight mechanics.
See more from me