With UNCHARTED: Legacy of Thieves Collection out now and Steam Deck Verified, I've been able to see that it does work great! However, it requires some very small tweaks to get it working on a normal Linux desktop.
No doubt at some point Valve will get these fixes into the Proton compatibility layer directly, but until they've sorted it (which could be weeks / months) here's what to do. Thankfully on the official Proton bug tracker, users have been reporting the issues and coming up with solutions.
For AMD GPUs you need this Steam launch option set:
WINEDLLOVERRIDES="amd_ags_x64.dll=b" %command%
For NVIDIA GPUs you need this Steam launch option set:
PROTON_ENABLE_NVAPI=1 PROTON_HIDE_NVIDIA_GPU=0 %command%
If you don't know how to set a launch option: right click the game in your Steam Library, go to Properties and the General tab has the text box at the bottom:
That should be all you need to do, then the game should load properly on a normal Linux desktop / laptop. On the Steam Deck though, it's click and play. I've been thoroughly impressed with the Steam Deck experience overall, apart from an initial Deck-specific hiccup I experienced that needed a reboot. I seemed to catch a rare bug where Steam Input just stops working but all good after a reboot, so not a problem with the game but a random bug on the Steam Deck itself.
Here's some footage below on Medium (the default) and then later on High settings:
Direct Link
Looking to buy a copy? You can grab it from Humble Store and Steam.
PROTON_HIDE_NVIDIA_GPU=0So now by default Nvidia gpu is hidden? Is that correct? Or is this specific to this game only?
No, it's unhiding it and allowing the special NVIDIA API to work. It's only for this game, you're not setting a launch option for the whole of Steam, that's not how launch options work.PROTON_HIDE_NVIDIA_GPU=0So now by default Nvidia gpu is hidden? Is that correct? Or is this specific to this game only?
Last edited by Liam Dawe on 20 October 2022 at 1:00 pm UTC
PROTON_HIDE_NVIDIA_GPU=0So now by default Nvidia gpu is hidden? Is that correct? Or is this specific to this game only?
DXVK has been pretending that Nvidia GPUs are AMD ones for years. Some games see Nvidia GPUs and then use an Nvidia-specific code path, which didn't work at all till NVAPI support got wired up. Some Proton games (in particular those that have DLSS) can have the Nvidia GPU exposed automatically through the manifest settings. Otherwise you can do it yourself with this option.
Last edited by CatKiller on 20 October 2022 at 1:02 pm UTC
I was happy someone found a fix so quickly last night because my daughter wanted to watch me play. It worked well streaming it to my TV via Steam Link.
I haven't had a good experience with Steam Link from Linux yet. What is your exact setup if I may ask?
Liam, did you get any errors like they are showing on RPS?I didn't spot any myself, it could be a mixture of things between the settings they used and frame-rate locking which I didn't use either. If they didn't restart the game after changing some big settings, that could easily fuck up some physics. So many variables when it comes to PC gaming :)
https://youtu.be/6yhyC8kcCh0?t=223
No, it's unhiding it and allowing the special NVIDIA API to work. It's only for this game, you're not setting a launch option for the whole of Steam, that's not how launch options work.Um, PROTON_HIDE_NVIDIA_GPU=0 == PROTON_HIDE_NVIDIA_GPU=false, so by default it is PROTON_HIDE_NVIDIA_GPU=true, that's why we need to specify to not hide it in the first place. I know how Steam game launch options work, lol. I was wondering if Nvidia gpu is hidden for this specific game or is it default behavior, and turns out it is default behavior.
Anyway, CatKiller answered my question.
Last edited by DefaultX-od on 20 October 2022 at 5:47 pm UTC
Looks like I just misread what you said 🤷♂️. Point is the same, this unhides NVIDIA API and allows it to run.No, it's unhiding it and allowing the special NVIDIA API to work. It's only for this game, you're not setting a launch option for the whole of Steam, that's not how launch options work.Um, PROTON_HIDE_NVIDIA_GPU=0 == PROTON_HIDE_NVIDIA_GPU=false, so by default it is PROTON_HIDE_NVIDIA_GPU=true, that's why we need to specify to not hide it in the first place. I know how Steam game launch options work, lol. I was wondering if Nvidia gpu is hidden for this specific game or is it default behavior, and turns out it is default behavior.
Anyway, CatKiller answered my question.
Last edited by jens on 21 October 2022 at 9:57 pm UTC
Looks like I just misread what you said 🤷♂️. Point is the same, this unhides NVIDIA API and allows it to run.No, it's unhiding it and allowing the special NVIDIA API to work. It's only for this game, you're not setting a launch option for the whole of Steam, that's not how launch options work.Um, PROTON_HIDE_NVIDIA_GPU=0 == PROTON_HIDE_NVIDIA_GPU=false, so by default it is PROTON_HIDE_NVIDIA_GPU=true, that's why we need to specify to not hide it in the first place. I know how Steam game launch options work, lol. I was wondering if Nvidia gpu is hidden for this specific game or is it default behavior, and turns out it is default behavior.
Anyway, CatKiller answered my question.
To clarify even more:
`PROTON_ENABLE_NVAPI=1` unhides NVAPI by copying the relevant dll's into the wine prefix and disables AMD spoofing for DXVK's dxgi.dll (which is used by D3D11 and D3D12, thus DXVK and VKD3D-Proton). Spoofing AMD is the default in DXVK, though recently Proton-Experimental sets `PROTON_ENABLE_NVAPI=1` automatically for selected titles for having DLSS out of the box.
`PROTON_HIDE_NVIDIA_GPU=0` disables AMD spoofing in Wine (that is Proton's Wine flavor). As far as I know, `PROTON_HIDE_NVIDIA_GPU` is not the default setting in Proton, but it is automatically applied to a few titles (e.g. RDR2), thus unsetting `PROTON_HIDE_NVIDIA_GPU` for DLSS is only needed for those selected titles. Chances are actually really good that setting `PROTON_ENABLE_NVAPI=1` is sufficient for Uncharted.
With hindsight it would have been nicer to combine both switches in Proton, but yeah, those are multiple projects with lots of people working on it at different times. NVAPI/DLSS was added to Proton only after the work-around for RDR2 by spoofing AMD for NV cards had been introduced (otherwise RDR2 would not have worked for NV owners when it became playable via Proton).
PS: There is work going on for making this easier: https://github.com/ValveSoftware/Proton/pull/6227
Last edited by jens on 21 October 2022 at 10:08 pm UTC
See more from me