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.
Then again I am now getting fantastic performance, just not in VR where it crashes on Linux still.
In case relevant:
Ubuntu 18.04.3
i5-4210H
16GB RAM
Nvidia GTX 960M
Nvidia Driver 430.40
I remember, a couple of years ago, a Turbine developer (Lord of the Rings Online) telling on their forums that they could not officially support linux, but could make their build more "Wine friendly". They were actively discussing with Linux players to help them run the game with Wine.
If this kind of attitude may gain some traction, that would be great.
Quoting: sethrewhaPerhaps I'm too new but I'm on Mint and when I get to "cmake" I get an error in terminal (-- Configuring incomplete, errors occurred!). Anyone have this experience?
What's your output? Use code blocks so it's easier to read.
From there we should be able to know if you're missing a dependency for it to compile.
seth@seth-mint:~$ git clone https://github.com/volca02/spoof_vendorid
Cloning into 'spoof_vendorid'...
remote: Enumerating objects: 293, done.
remote: Counting objects: 100% (293/293), done.
remote: Compressing objects: 100% (209/209), done.
remote: Total 293 (delta 71), reused 288 (delta 69), pack-reused 0
Receiving objects: 100% (293/293), 91.15 MiB | 32.46 MiB/s, done.
Resolving deltas: 100% (71/71), done.
Checking out files: 100% (243/243), done.
seth@seth-mint:~$ cd spoof_vendorid
seth@seth-mint:~/spoof_vendorid$ cmake ./
-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Could NOT find WAYLAND_CLIENT (missing: WAYLAND_CLIENT_LIBRARIES WAYLAND_CLIENT_INCLUDE_DIR)
-- Could NOT find WAYLAND_SERVER (missing: WAYLAND_SERVER_LIBRARIES WAYLAND_SERVER_INCLUDE_DIR)
-- Could NOT find WAYLAND_EGL (missing: WAYLAND_EGL_LIBRARIES WAYLAND_EGL_INCLUDE_DIR)
-- Could NOT find WAYLAND_CURSOR (missing: WAYLAND_CURSOR_LIBRARIES WAYLAND_CURSOR_INCLUDE_DIR)
-- Could NOT find WAYLAND (missing: WAYLAND_LIBRARIES WAYLAND_INCLUDE_DIR)
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
WAYLAND_CLIENT_INCLUDE_DIR (ADVANCED)
used as include directory in directory /home/seth/spoof_vendorid
used as include directory in directory /home/seth/spoof_vendorid
used as include directory in directory /home/seth/spoof_vendorid
used as include directory in directory /home/seth/spoof_vendorid
used as include directory in directory /home/seth/spoof_vendorid
used as include directory in directory /home/seth/spoof_vendorid
used as include directory in directory /home/seth/spoof_vendorid
used as include directory in directory /home/seth/spoof_vendorid
used as include directory in directory /home/seth/spoof_vendorid
used as include directory in directory /home/seth/spoof_vendorid
used as include directory in directory /home/seth/spoof_vendorid
used as include directory in directory /home/seth/spoof_vendorid
-- Configuring incomplete, errors occurred!
See also "/home/seth/spoof_vendorid/CMakeFiles/CMakeOutput.log".
seth@seth-mint:~/spoof_vendorid$ make
make: *** No targets specified and no makefile found. Stop.
Quoting: Fakeman_PretendnameI've had this running fine on my Nvidia........
You're not the first Nvidia 9 series owner who has reported to having no issues. I suspect this is a problem with 10 series and above nvidia cards.
As for that error output, the build process needs the wayland client packages installed (or just dev sources probably). Does raise the question as to if this trick only works on wayland de's ?
Last edited by TheRiddick on 23 August 2019 at 1:27 am UTC
But yeah, why wayland? That's odd...
Quoting: KuJoI'm playing it on an AMD rx580 with Valve's ACO drivers.
i think valves mesa is the same as padoka except it uses ACO shader compiler as default
you can still force LLVM as default. i think it should be like using padoka and crash again.
ACO can be disabled with the following environment variable: RADV_PERFTEST=llvm
anyways... i hope they make a free weekend soon. i kinda wanna try it myself
Quoting: slaapliedjeI'd guess it's missing libwayland-dev.
But yeah, why wayland? That's odd...
Vulkan layers can work with WSI. But it can probably be disabled: https://github.com/volca02/spoof_vendorid/blob/master/CMakeLists.txt#L13
Quoting: slaapliedjeWasn't No Man's Sky one of those that at some point in time was supposed to get a native version?
I don't think so, but it's possible. The game was hyped prior release with bunch of straight up lies, it's the main reason why I haven't bought it.
Last edited by bidinou on 23 August 2019 at 7:46 am UTC
I did have to switch back to OpenGL from Vulkan, though. With Vulkan, my game crashes during the loading screen. I'm not sure whether that's my problem or a problem with the game, guess I'll see once HG finishes their last crash fix pass.
For example The Cursed Forest demo had at one point this splash mentioning Proton:
https://store.steampowered.com/app/345430/The_Cursed_Forest/
sudo apt install cmake libwayland-dev libx11-xcb-dev libxrandr-dev
And yep, this gets rid of all performance issues with pancake mode (non-vr, didn't test VR yet). Approaching NPC vendors on stations, approaching planets... all now at ~60 FPS for me, where I had below 20 FPS for the NPC vendors and even below 10 FPS when approaching planets.
From what I've read, this is something the game is doing for nvidia cards that works on Windows but differently on Linux. Also their Vulkan engine is pretty fancy, which is surfacing some bugs in SteamVR for Linux.
But as Hello Games are really cool (and they've always been), I guess they'll take a look into it!
Quoting: Luke_NukemThis is the second Windows only game I purchased to play on Linux... I never ever thought I would be doing this 15 years ago. The impact Valve is having just by including Proton in Steam and enabling one-click playing of Windows games is understated.Well . . . define "impact". I'll call it a big impact when I see the percentage of Linux Steam users start to consistently creep up. At the moment, well, we should be grateful, but "impact" I dunno.
Quoting: mylkaThe difference is greater.Quoting: KuJoI'm playing it on an AMD rx580 with Valve's ACO drivers.
i think valves mesa is the same as padoka except it uses ACO shader compiler as default
you can still force LLVM as default. i think it should be like using padoka and crash again.
ACO can be disabled with the following environment variable: RADV_PERFTEST=llvm
anyways... i hope they make a free weekend soon. i kinda wanna try it myself
While the Padoka Stable PPA currently comes with Mesa 19.1.2,
-> https://launchpad.net/~paulo-miguel-dias/+archives/ubuntu/pkppa
brings along the ACO PPA Mesa 19.2-devel. ACO is also experimental.
-> https://steamcommunity.com/app/221410/discussions/0/1640915206474070669/
-> https://github.com/daniel-schuermann/mesa
Currently even the first entries with Mesa 19.3.0-devel are already in the ACO-github.
Maybe I should do a counter-test with the Padoak unstable PPA. This is already compiled against Mesa 19.2-devel:
-> https://launchpad.net/~paulo-miguel-dias/+archive/ubuntu/mesa
Maybe it's not just the shaders but the Mesa level.
Last edited by KuJo on 23 August 2019 at 4:11 pm UTC
Quoting: ShmerlThey should just release it for Linux already.
Despite owning this on my Sony PlayStation 4 Pro, this game is on my "wish" list, for if it eventually becomes available for Linux-based operating systems (GOG.com have the game DRM-free, if you're interested)...
Quoting: SolitaryQuoting: slaapliedjeWasn't No Man's Sky one of those that at some point in time was supposed to get a native version?
I don't think so, but it's possible. The game was hyped prior release with bunch of straight up lies, it's the main reason why I haven't bought it.
I was sure I had heard this somewhere, too... But I have extensively looked for the reference (to a release for Linux-based operating system) in the past, and turned-up empty handed every time.
Quoting: Purple Library GuyQuoting: Luke_NukemThis is the second Windows only game I purchased to play on Linux... I never ever thought I would be doing this 15 years ago. The impact Valve is having just by including Proton in Steam and enabling one-click playing of Windows games is understated.Well . . . define "impact". I'll call it a big impact when I see the percentage of Linux Steam users start to consistently creep up. At the moment, well, we should be grateful, but "impact" I dunno.
This.
Last edited by Cyba.Cowboy on 23 August 2019 at 8:19 pm UTC
See more from me