void-linux / void-packages

The Void source packages collection
https://voidlinux.org
Other
2.5k stars 2.11k forks source link

nvidia-470.57.02_1: driver can't open "libnvidia-glvkspirv.so.470.57.02" #32222

Closed saintgowron closed 3 years ago

saintgowron commented 3 years ago

System

Expected behaviour

Driver should be able to open the lib and run Vulkan games as usual.

Actual behaviour

Since I updated from version 460.84_2, when trying to run Vulkan based games (or ones using DXVK through steam proton), the programs don't launch and the processes completely exit after about two seconds.

The steam proton log revealed the following error message: The NVIDIA driver was unable to open 'libnvidia-glvkspirv.so.470.57.02'. This library is required at run time.

I'm not really sure what the library is used for - Nvidia just lists it under "Various libraries that are used internally by other driver components", but since OpenGL games still work and Vulkan ones don't, I assume it has something to do with Vulkan..

Steps to reproduce the behaviour

What I have tried so far / additional information

Everything worked fine before the update and the update was performed as a full update i.e. sudo xbps-install -Su, so I did not just randomly update single packages or anything like that. It finished without any warnings or errors.

I made sure that the library is actually in /usr/lib/ and /usr/lib32/ and that the permissions were set correctly. I re-installed the packages through xbps and restarted a few times for good measure, but to no effect.

Another person on the subreddit had the exact same issue, so I don't think that it has something to do with my system config.

I also tried to manually install the driver, using the official version from Nvidia's website - this one worked as expected, which leads me to believe that it may actually be an issue with the package.

ghost commented 3 years ago

I can confirm the same issue. It was identical when building with xbps-src before the update was merged and after an uninstall and re-install of the packages from the repository.

abenson commented 3 years ago

I'm trying to recreate the issue. I'll let you know if I have any luck.

abenson commented 3 years ago

No issues with Shadow of Mordor. I don't have Mass Effect, but my other Vulkan games are working fine. I'm trying to recreate this on two machines, not having much luck.

abenson commented 3 years ago

Is your system using PRIME or is it only nvidia? i.e. do you have an integrated GPU?

Lolzen commented 3 years ago

I'm in the same boat. No proton games utilizing vulkan can start, due to the same error. Prior to the update everything worked fine.

I tried with GTA V, Sea of Thieves and Black Mesa. BM was the only one launching, i think it uses OpenGL.

On a sidenote, which might or might not be related, since the driver update closing the last instance of chromium completely freezes the OS. Google led me to a discussion on their bugtracker where people claim the new driver causes segfaults.

Let me know if i can provide any helpful info of narrowing down the possible cause of this.

I am using an Asus GTX 1660Ti

abenson commented 3 years ago

What versions of Proton are you using? I have all three of those games.

Lolzen commented 3 years ago

What versions of Proton are you using? I have all three of those games.

I tried with latest stable and experimental, no difference, same error in the logs (issue title)

ghost commented 3 years ago

I have the same error on any Proton/Vulkan game with any version of Proton.

I do not have PRIME and the i5-9660k iGPU is disabled. I have an Nvidia GTX 1660 Super.

abenson commented 3 years ago

GTA V and Sea of Thieves seem to be working for me. I tried with a few different versions of Proton, but my only issues I ran into were I removed PROTON_NO_ESYNC=1. I'll keep trying to see if I can recreate the issue, but my only thought is I can only test on PRIME systems.

Can you test with __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only? I wonder if they changed the search order and these are solving it for me.

ghost commented 3 years ago

Can you test with __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only? I wonder if they changed the search order and these are solving it for me.

I tried this with no change, although I'm not sure it applies to me anyway with only discrete graphics.

abenson commented 3 years ago

I didn't think it would, I was just wondering if that changed the search order somehow. I'm having trouble recreating the issue on a optimus/PRIME system.

ghost commented 3 years ago

Just throwing ideas out there....

Is there perhaps a rebuild needed against the new library version in a different package? I.e. libwine, vkd3d, etc.? As mentioned, this happened to me when Void upgraded from 455 to 460 and a few days later it suddenly worked after another system update. I don't recall what packages were updated, but I can only imagine something built against it fixed it. Doesn't make much sense, in my limited experience, since the NVIDIA driver knows where the libs are and named the file directly and correctly in the error from Steam.

Here is the full output from Steam when trying to start Doom Eternal with Proton 6.3.

https://pastebin.com/9iGtEz6V

Additionally, are you running Steam from the XBPS package or from a flatpak? I'm running it from the native package.

abenson commented 3 years ago

Void never had 455. We went straight from 450.xx to 460.xx. Nothing should depend on nvidia.

I"m using the xbps package for steam.

ghost commented 3 years ago

Sorry, you're right. It was 450 -> 460. 455 were the beta drivers.

Lolzen commented 3 years ago

Sorry, you're right. It was 450 -> 460. 455 were the beta drivers.

if i recall correctly, that time around we were in the glvnd transition. The common nominator i see now is that both @ArmedAviator and me using GTX 1660 variants. Maybe coincidence.

saintgowron commented 3 years ago

Is your system using PRIME or is it only nvidia? i.e. do you have an integrated GPU?

I only have a discrete card, a GTX 1050 Ti, no integrated GPU.

What versions of Proton are you using? I have all three of those game.

Same on my part, Proton versions don‘t seem to make a difference in this.

I am using the XBPS package for steam as well.

Lolzen commented 3 years ago

I did an system update (seemingly unrelated) about an hour ago

Name Action Version New version Download size dtc update 1.6.0_1 1.6.1_1 99KB libldns update 1.7.1_4 1.7.1_5 164KB libpoppler install - 21.07.0_1 1054KB poppler-glib update 21.05.0_1 21.07.0_1 152KB poppler-qt5 update 21.05.0_1 21.07.0_1 177KB python3-pip update 21.1.3_1 21.2.1_1 1127KB webkit2gtk update 2.32.1_2 2.32.3_1 24MB

I could launch Sea of Thieves and played it for about 15-20 minutes. GTAV still had the error stating to verify the game files, which i once again did. But the error in question was not in the logs anymore, so i rebuilt the compdata and just launched GTAV aswell.

Other than that i have not changed a single thing, using steam and nvidia packages from XBPS repositories. I did not reinstall or remove any packages.

abenson commented 3 years ago

I just want to clarify that the system was rebooted after the nvidia upgrade?

Also the only updates after that I think could be related are the libglvnd upgrade, but I don't see anything relevant in it's changelog.

redasamik commented 3 years ago

في ثلاثاء، 27 تموز، 2021 في 11:58 م، كتب saintgowron < @.***>:

System

-

xuname: Void 5.12.19_1 x86_64 AuthenticAMD uptodate rrrrmmnFFFF

package: nvidia-470.57.02_1

Expected behaviour

Driver should be able to open the lib and run Vulkan games as usual. Actual behaviour

Since I updated from version 460.84_2, when trying to run Vulkan based games (or ones using DXVK through steam proton), the programs don't launch and the processes completely exit after about two seconds.

The steam proton log revealed the following error message: The NVIDIA driver was unable to open 'libnvidia-glvkspirv.so.470.57.02'. This library is required at run time.

I'm not really sure what the library is used for - Nvidia just lists it under "Various libraries that are used internally by other driver components", but since OpenGL games still work and Vulkan ones don't, I assume it has something to do with Vulkan.. Steps to reproduce the behaviour

  • Install / update the nvidia driver to the newest version through xbps.
  • Try to run a Vulkan based game (for example Middle Earth: Shadow of Mordor), or any DirectX game, that gets its calls translated to Vulkan by DXVK through Steam Proton (f.e. Mass Effect: Legendary Edition).

What I have tried so far / additional information

Everything worked fine before the update and the update was performed as a full update i.e. sudo xbps-install -Su, so I did not just randomly update single packages or anything like that. It finished without any warnings or errors.

I made sure that the library is actually in /usr/lib/ and /usr/lib32/ and that the permissions were set correctly. I re-installed the packages through xbps and restarted a few times for good measure, but to no effect.

Another person on the subreddit had the exact same issue, so I don't think that it has something to do with my system config.

I also tried to manually install the driver, using the official version from Nvidia's website - this one worked as expected, which leads me to believe that it may actually be an issue with the package.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/void-linux/void-packages/issues/32222, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOW7T7GRX7BFS7RA4YYY4SLTZ4MW3ANCNFSM5BDAS6UQ .

-- reda

Lolzen commented 3 years ago

I just want to clarify that the system was rebooted after the nvidia upgrade?

Also the only updates after that I think could be related are the libglvnd upgrade, but I don't see anything relevant in it's changelog.

yes. after the nvidia update the system was rebooted. i tried installing another kernerl aswell and rebooted to it, obviously without any luck. Honestly i don't know what caused it to work when i booted up my pc today. it's a weird one.

ghost commented 3 years ago

Unfortunately, I have not had the same luck as @Lolzen. I performed the same system update and performed another reboot for luck but none of the Proton games are working, yet. Same error appears in Steam log.

ghost commented 3 years ago

Doing a little more internet sleuthing....

I installed Vulkan-Tools and can run vulkaninfo with no errors. Online searches show that, in some cases, this command will fail with the same error as we are dealing with. Since this is working here, I wonder if there's something going on with Wine/Proton/Steam in containerizing and not presenting this library? Not sure the ins and outs of how Proton does it's thing.

EDIT:

Here is an strace of vulkaninfo. It shows the (64-bit) library being accessed on line 2292. https://pastebin.com/yw8kRMUr

saintgowron commented 3 years ago

Unfortunately, I have not had the same luck as @Lolzen. I performed the same system update and performed another reboot for luck but none of the Proton games are working, yet. Same error appears in Steam log.

Neither have I, still the same error.

btw, I have noticed that I was wrong about Middle Earth: Shadow of Mordor not running - it was Shadow of War not running, clicked the wrong one in the library. Apparently Shadow of Mordor is running Vulkan natively (and works), but Shadow of War is Windows only, so it's run through Proton.

I also tried out Left 4 Dead 2, as it runs natively on Linux and Valve recently patched in Vulkan support through DXVK - that one works just fine, so @ArmedAviator might be right that the issue could be closer to Proton itself.

I don't know that much about Proton so I'm still kinda puzzled, as to why it would only break with the newer, xbps packaged driver version, as the old one and the version from Nvidia's website are/were working perfectly fine with the same Proton versions.

mvf commented 3 years ago

Proton usually breaks when updating nvidia-libs. To fix it (till the next update that changes the soname), run:

$ sudo ldconfig

Maybe nvidia-libs should do this in post_install.

saintgowron commented 3 years ago

This did indeed fix the issue for me, thank you! Can you confirm that this is working on your part as well @ArmedAviator ? If so, I'd agree with @mvf about adding this to post_install.

ghost commented 3 years ago

This is great news and totally forgot about ldconfig, since I haven't had to use it in years.

Unfortunately I am not home and will not be until Wednesday. Can anyone else confirm this in my absence?

mvf commented 3 years ago

FWIW, here's what most likely fixed it for @Lolzen:

python3-pip update 21.1.3_1 21.2.1_1 1127KB

The pycompile trigger runs ldconfig:

python3-pip-21.2.2_1: configuring ...
Byte-compiling python3.9 code for module pip...
Updating ldconfig(8) cache...
python3-pip-21.2.2_1: updated successfully.
RononDex commented 3 years ago

Proton usually breaks when updating nvidia-libs. To fix it (till the next update that changes the soname), run:

$ sudo ldconfig

Maybe nvidia-libs should do this in post_install.

This fixed it for me

ericonr commented 3 years ago

Please test #32336