FS#48109 - [nvidia-utils] Several Steam games don't start up

Attached to Project: Arch Linux
Opened by Tim (blackout23) - Tuesday, 09 February 2016, 20:11 GMT
Last edited by Sven-Hendrik Haase (Svenstaro) - Sunday, 28 February 2016, 07:15 GMT
Task Type Bug Report
Category Upstream Bugs
Status Closed
Assigned To Sven-Hendrik Haase (Svenstaro)
Felix Yan (felixonmars)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 24
Private No

Details

With release -1 of the 361.28 driver packages (also lib32-nvidia-utils) certain games don't start like Counter Strike Source and The Talos Principle, while other 3D programs work fine.

I had to use the PKGBUILD which someone posted here:
https://devtalk.nvidia.com/default/topic/915789/linux/361-28-gtx-580-steam-several-games-don-t-start-up/?offset=5#4802887

and apply the patch to it which was posted in the 4th post.

This task depends upon

Closed by  Sven-Hendrik Haase (Svenstaro)
Sunday, 28 February 2016, 07:15 GMT
Reason for closing:  Upstream
Additional comments about closing:  Can be worked around until waiting for fix. See comments and Steam Arch wiki article.
Comment by Anukul (worldeditor1) - Tuesday, 09 February 2016, 20:22 GMT
Also in Dota2
'Missing Basic OpenGL v1.0 -> v2.0 required OpenGL functionality.
Comment by Ismael (ChuckDaniels) - Tuesday, 09 February 2016, 21:03 GMT
Insurgency too.
Comment by (Det) - Wednesday, 10 February 2016, 08:44 GMT
The problem is the new GLVND [1] library (GL Vendor Neutral Dispatch) libGL.so.1.0.0, which doesn't have the previous attributes of the libGL.so.$pkgver (libGL.so.361.28) that fall outside the official Linux OpenGL ABI [2]. Those are now in separate libraries. For some reason, this wasn't as big of an issue in 361.16/18, where they didn't include the old libGL.so.$pkgver in the .run package for compatibility.

However, it will only remain there during the 361.xx series, after which not only will the new GLVND libGL.so.1.0.0 be installed by default, but the old libGL.so.$pkgver will be removed as well. [3]

[1] = https://github.com/NVIDIA/libglvnd
[2] = https://www.opengl.org/registry/ABI/
[3] = https://devtalk.nvidia.com/default/topic/915640/unix-graphics-announcements-and-news/multiple-glx-client-libraries-in-the-nvidia-linux-driver-installer-package/
Comment by Nickolay (neothefox) - Wednesday, 10 February 2016, 09:48 GMT
So I think it means we should have another libgl provider in the repos as an alternative to the nvidia-libgl - glvnd-libgl https://github.com/NVIDIA/libglvnd
There is no need to wait when Nvidia would change glvnd to default in next releases, since the option would be there arch needs to provide an option.
Comment by Nickolay (neothefox) - Wednesday, 10 February 2016, 10:14 GMT
So I think it means we should have another libgl provider in the repos as an alternative to the nvidia-libgl - glvnd-libgl https://github.com/NVIDIA/libglvnd
There is no need to wait when Nvidia would change glvnd to default in next releases, since the option would be there arch needs to provide an option.
Comment by AnAkkk (AnAkkk) - Wednesday, 10 February 2016, 12:09 GMT
Same with CS GO, I can no longer launch it.
Comment by Felix Yan (felixonmars) - Wednesday, 10 February 2016, 13:54 GMT
Upstream has requested us to enable libglvnd by default.

I have made a new pkgrel for this. Note that the following packages are totally untested (I don't have an nvidia machine during Chinese Lunar New Year).

If you would like to test, please install nvidia-libgl and nvidia-utils from here:

http://pkgbuild.com/~fyan/staging/

and let me know if they work.
Comment by (Det) - Wednesday, 10 February 2016, 14:31 GMT
Doesn't seem like those packages provide libGL.so, libGLdispatch.so, etc. at all?
Comment by Felix Yan (felixonmars) - Wednesday, 10 February 2016, 14:45 GMT
They don't. The mentioned libraries are in a separate libglvnd package, which is a dependency of nvidia-libgl.
Comment by Darek (blablo) - Wednesday, 10 February 2016, 15:07 GMT Comment by Felix Yan (felixonmars) - Wednesday, 10 February 2016, 15:18 GMT
It's a month old and our nvidia friend told me otherwise just recently. I'll check again.
Comment by Darek (blablo) - Wednesday, 10 February 2016, 15:21 GMT
Sorry about the confusion
Comment by Tim (blackout23) - Wednesday, 10 February 2016, 17:21 GMT
I have installed the packages from Felix Yan's repo, which also pulled in lib32-libglvnd and libglvnd from the official repos, but the problem remains the same.
Counter Strike Source doesn't start. Portal 2 however does.
Comment by Tim (blackout23) - Wednesday, 10 February 2016, 19:10 GMT Comment by (Det) - Wednesday, 10 February 2016, 19:14 GMT
Yes, I posted that already.
Comment by Alex Davies (traverseda) - Wednesday, 10 February 2016, 20:13 GMT
>Upstream has requested us to enable libglvnd by default.

The seems weird since the linked press release implies otherwise.
Comment by (Det) - Wednesday, 10 February 2016, 20:45 GMT
Not true.

"While it may be preferable in the short term to continue shipping the non-GLVND variant to maximize compatibility, repackagers are encouraged to provide GLVND driver packages at the earliest possible opportunity, both to promote adoption of the new driver infrastructure, and to help identify additional problematic applications."
Comment by Eduardo Hoefel (dudasat) - Wednesday, 10 February 2016, 21:15 GMT
Can't play any playonlinux game using primusrun/optirun. The following message appears:
19:12:19: Debug: Failed to connect to session manager: SESSION_MANAGER environment variable not defined
[main] Message: PlayOnLinux (4.2.10) is starting
[clean_tmp] Message: Cleaning temp directory
Script started /home/eduardo/.PlayOnLinux/shortcuts/Hearthstone
[POL_System_CheckFS] Message: Checking filesystem for Hearthstone.exe
[POL_Wine] Message: Running wine-1.7.55 Hearthstone.exe %F (Working directory : /home/eduardo/.PlayOnLinux/wineprefix/hearthstone/drive_c/Program Files/Hearthstone)
[POL_Wine] Message: Notice: PlayOnLinux deliberately disables winemenubuilder. See http://www.playonlinux.com/fr/page-26-Winemenubuilder.html
Mono path[0] = 'C:/Program Files/Hearthstone/Hearthstone_Data/Managed'
Mono path[1] = 'C:/Program Files/Hearthstone/Hearthstone_Data/Mono'
Mono config path = 'C:/Program Files/Hearthstone/Hearthstone_Data/Mono/etc'
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 24 (X_GLXCreateNewContext)
Value in failed request: 0x0
Serial number of failed request: 18
Current serial number in output stream: 19
[POL_Wine] Error: Wine seems to have crashed

If your program is running, just ignore this message
[POL_SetupWindow_Init] Message: Creating new window for pid 8206


Also, can't play steam games. Same message Anukul said.
Comment by Cláudio Pereira (claudiop) - Thursday, 11 February 2016, 02:07 GMT
The issue is a bit worse with optimus laptops since mesa-libgl conflicts with glvnd
https://bbs.archlinux.org/viewtopic.php?pid=1603538#p1603538
Edit: https://bugs.archlinux.org/task/48123
It already has a bug filled. This update broke a lot of stuff :/
Comment by Arthur Huillet (ahuillet) - Thursday, 11 February 2016, 10:29 GMT
As a workaround for these games, threaded optimizations can be disabled in their .sh launcher:
export __GL_THREADED_OPTIMIZATIONS=0

Alternatively, the environment variable __GLVND_DISALLOW_PATCHING will work too (and also appears to fix issues in a few other games that don't work with libglvnd yet).
__GLVND_DISALLOW_PATCHING=1

--
A. Huillet
NVIDIA Linux graphics
Comment by gerry (gerbear) - Thursday, 11 February 2016, 10:47 GMT
hey arthur,
to verify, ideally -long term- this needs to be fixed at app level, for example, dota is one of the affected items, so valve would need to patch dota?
Comment by (Det) - Thursday, 11 February 2016, 10:57 GMT
Yes, as per the twice linked announcement by Nvidia.
Comment by Alex Davies (traverseda) - Thursday, 11 February 2016, 10:59 GMT
The particular issue with source engine games seems to be that the driver is misreporting the opengl version as 0.0.0, so I imagine it's going to need fixes on the driver side as well.
Comment by gerry (gerbear) - Thursday, 11 February 2016, 11:13 GMT
Det & Alex, cheers thank you.
Comment by gerry (gerbear) - Thursday, 11 February 2016, 16:10 GMT
dan ginsburg of valve on dota2 bug thread.

"We have heard back from NVIDIA. They have confirmed this is a driver bug impacting the libglvnd-enabled driver (nobody but Archlinux at the moment). The driver bug will be fixed in a future release. For now, they recommend setting __GLVND_DISALLOW_PATCHING=1 as a workaround, although also setting __GL_THREADED_OPTIMIZATIONS=0 will work (although potentially more perf impact)."

https://github.com/ValveSoftware/Dota-2/issues/756
Comment by Eduardo Hoefel (dudasat) - Thursday, 11 February 2016, 22:59 GMT
I found a workaround;
While they don't update the drivers, you can downgrade to a working version doing the following in a terminal:
cd /var/cache/pacman/pkg/;
sudo pacman -U linux-4.3.3-3-x86_64.pkg.tar.xz nvidia-358.16-3-x86_64.pkg.tar.xz nvidia-utils-358.16-1-x86_64.pkg.tar.xz bbswitch-0.8-39-x86_64.pkg.tar.xz --force;

if it says that some package needs linux>=4.4 or anything else, just put into the list of downgrading

I'm playing my games normally now
Comment by Ales Katona (almindor) - Tuesday, 16 February 2016, 16:23 GMT
Don't do the downgrade form last post. It'll break the opengl links. If you find yourself stranded in terminal, upgrade back to latest and reinstall libglvnd and nvidia-libgl
Comment by George (Vash63) - Wednesday, 17 February 2016, 00:12 GMT
For anyone doing the downgrade I had no issues doing a git pull of the 361.18 nvidia PKGBUILDS and recompiling them with makepkg. I used the nvidia-beta packages from AUR as I already had them downloaded but should work for the standard one too.
Comment by Kasei Wang (kasei) - Saturday, 20 February 2016, 07:38 GMT
I tried "__GL_THREADED_OPTIMIZATIONS=0 optirun wine RA3EP1.exe" and "__GLVND_DISALLOW_PATCHING=1 optirun wine RA3EP1.exe".
It still doesn't work. I got "err:wgl:has_opengl glAccum not found in libGL, disabling OpenGL."

I fixed my problem by downgrading virtualgl to 2.4.1. It seems like my problem has a different reason. Sorry.
Comment by Sven-Hendrik Haase (Svenstaro) - Sunday, 28 February 2016, 07:14 GMT
Well, we all know this is an upstream problem by now (either Valve or NVIDIA) but nothing we can fix. I added some info to the Steam wiki article about this issue. I don't think there is anything else left to do here. Closing.

Loading...