flathub / com.valvesoftware.Steam

https://flathub.org/apps/details/com.valvesoftware.Steam
337 stars 69 forks source link

Vulkan games stopped working after Arch update #541

Closed Shished closed 4 years ago

Shished commented 4 years ago

Game information

Every Proton game that uses DXVK or native game which uses Vulkan API.

Distribution name and version where applicable

NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="0;36"
HOME_URL="https://www.archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux

Flatpak info

Flatpak 1.6.2
nvidia-440-64
default
host

Problem description

vulkan-icd-loader package got updated to 1.2.135, I think that it broke the compatibility with flatpak. Proton games crash after pressing Play button, Shadow of Tomb Raider opens an error which says "System does not support 3D API required by this game". Steam outputs this message when starting up:

Could not create Vulkan instance : 
ERROR_EXTENSION_NOT_PRESENT

OpenGL games are working without problems.

Does this issue reproduce with native Steam

Have not tested

Shished commented 4 years ago

Non flatpak Vulkan apps (wine w/DXVK was tested) are working fine.

guihkx commented 4 years ago

I was just going to report this... Same issue here!

Here's the log for GTA:SA running on Proton with DXVK enabled (relevant bits only):

info:  Game: gta-sa.exe
info:  DXVK: v1.5.5-21-g3d52ab36a
info:  Built-in extension providers:
info:    Win32 WSI
info:    OpenVRL"C:\\windows\\system32\\openvr_api_dxvk.dll" at 0x38f0000: native
warn:  OpenVR: Failed to initialize OpenVR
info:  Required Vulkan extension VK_KHR_surface not supported
terminate called after throwing an instance of 'dxvk::DxvkError'

My specs:

GPU: NVIDIA GTX 660 Driver: 440.64 (host and Flatpak)

nanonyme commented 4 years ago

FWIW I suggest reporting driver Mesa Vulkan/GL issues typically directly to https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/issues

valentindavid commented 4 years ago

If it is nvidia. It is an issue from Mesa. Please report the issue to https://github.com/flathub/org.freedesktop.Platform.GL.nvidia

Do the games work out of Flatpak?

Shished commented 4 years ago

Vulkan games are working outside of flatpak.

valentindavid commented 4 years ago

What version of the vulkan icd loader do you have on host?

valentindavid commented 4 years ago

Ah it says: 1.2.135

valentindavid commented 4 years ago

We could make a build of Freedesktop SDK with an updated vulkan loader to see if that fixes. But it is not fun if NVidia breaks compatibility with older loaders.

nuku97 commented 4 years ago

Hi, I have the same problem, but am not sure if it's for the same reason.

I am running Gentoo Linux and used to play Doom (2016) with Vulkan ocassionaly. It worked fine. When I tried again yesterday (after having not used it for week or so), it does not work in Vulkan mode anymore. I can only start the game in OpenGL mode. I have no idea what updates I did since I played last time, must be lot.

I am currently running Kernel 5.5.11, AMD Ryzel 3700X, Radeon 5700XT with AMDGPU drivers and vulkan-loader/headers 1.2.133 but also tried 1.2.135 which didn't help. Other software info:

Name Application ID Version Zweig Installation Steam com.valvesoftware.Steam 1.0.0.61 stable system Freedesktop Platform org.freedesktop.Platform 19.08.9 19.08 system i386 org.freedesktop.Platform.Compat.i386 19.08 system default org.freedesktop.Platform.GL.default 19.08 system default org.freedesktop.Platform.GL32.default 19.08 system openh264 org.freedesktop.Platform.openh264 19.08 system openh264 org.freedesktop.Platform.openh264 2.0 system

Steam current beta client Mar 20 2020 18:25:30 API v020 Steam-Package-Version 1584730869

I get the following error messages which might be useful.

In terminal when starting the Steam client: Could not create Vulkan instance : ERROR_EXTENSION_NOT_PRESENT

When starting Doom 2016, I get a blue popup with error messages from "Doom console": FATAL ERROR: vkCreateInstance failed with error (VK_ERROR_EXTENSION_NOT_PRESENT)

Any help to get Vulkan running again would be appreciated!

Thanks, best regards

Erick555 commented 4 years ago

Maybe this is regression in mesa 20.x then.

nuku97 commented 4 years ago

I now installed Steam via system packages (steam-overlay) on Gentoo. This way Vulkan works. However, there seem to be other (unrelated) problems now, therefore I would like to revert back to the flathub Steam package, as it seems to be the cleanest way to use Steam.

So, as in the case of the original bug report poster, it seems that also in my installation, Vulkan is working outside of the flatpak.

By the way, I am using Mesa 20.0.2 but also tried out 19.3.5 but it didn't change anything regarding the missing Vulkan support in my flatpak Steam installation. I am also not sure if/how system packages influence the flatpak version.

valentindavid commented 4 years ago

I get the same issue. I guess the vulkan loader is not able to load mesa 20. We will downgrade to 19.

valentindavid commented 4 years ago

But that really does not explain the issue with NVidia.

valentindavid commented 4 years ago

org.freedesktop.VulkanInfo//19.08 works. So it might be an issue with a vulkan loader provided by the steam runtime.

valentindavid commented 4 years ago

OK, so Steam runtime has a newer vulkan loader so it pins it. But it does not know where to find the vulkan drivers.

valentindavid commented 4 years ago

Work around:

flatpak run "--env=XDG_CONFIG_DIRS=/etc/xdg:/usr/lib/x86_64-linux-gnu/GL:/usr/lib/i386-linux-gnu/GL" com.valvesoftware.Steam

@nanonyme, Could you put that in the manifest?

valentindavid commented 4 years ago

@Shished @nuku97 @guihkx , Please confirm if this work-around work for you. I was able to run a game using dxkv with the work-around, that was not working without. But I do not have any of the games you talked about. And I want to make sure I reproduced the same issue as you.

nuku97 commented 4 years ago

@valentindavid I can confirm that Doom (2016) with Vulkan works again when using the provided workaround from your comment above. Thank you!

Shished commented 4 years ago

@valentindavid I tested Hitman 2 (DXVK) and Shadow of Tomb Taride (native), both works.

Can I make this permanent with flatpak override?

Mangohud does not works, the overlay does not shows up and there is no output in terminal from it in both DXVK and native games.

nanonyme commented 4 years ago

@Shished don't, we'll just have an app-wide environment variable.