[SOLVED] 361.28 - GTX 580 - Steam several games don't start up

Hello,

I’m using the 361.28 driver as packaged by Arch Linux. I have both the 64 Bit and 32 Bit GL implementation installed. I’m not quite sure if it’s a packaging mistake, because a lot of stuff actually does work.

These files are installed on the system by the nvidia-libgl package, which is built without any flags that would turn glvnd back on.

https://projects.archlinux.org/svntogit/packages.git/plain/trunk/PKGBUILD?h=packages/nvidia-utils

nvidia-libgl /usr/
nvidia-libgl /usr/lib/
nvidia-libgl /usr/lib/libEGL.so
nvidia-libgl /usr/lib/libEGL.so.1
nvidia-libgl /usr/lib/libEGL.so.361.28
nvidia-libgl /usr/lib/libGL.so
nvidia-libgl /usr/lib/libGL.so.1.0.0
nvidia-libgl /usr/lib/libGL.so.361.28
nvidia-libgl /usr/lib/libGLESv1_CM.so
nvidia-libgl /usr/lib/libGLESv1_CM.so.1
nvidia-libgl /usr/lib/libGLESv1_CM.so.361.28
nvidia-libgl /usr/lib/libGLESv2.so
nvidia-libgl /usr/lib/libGLESv2.so.2
nvidia-libgl /usr/lib/libGLESv2.so.361.28
nvidia-libgl /usr/lib/libGLX.so
nvidia-libgl /usr/lib/libGLX.so.0
nvidia-libgl /usr/lib/libGLX.so.361.28
nvidia-libgl /usr/lib/libGLX_indirect.so.0
nvidia-libgl /usr/lib/xorg/
nvidia-libgl /usr/lib/xorg/modules/
nvidia-libgl /usr/lib/xorg/modules/extensions/
nvidia-libgl /usr/lib/xorg/modules/extensions/libglx.so
nvidia-libgl /usr/lib/xorg/modules/extensions/libglx.so.1
nvidia-libgl /usr/lib/xorg/modules/extensions/libglx.so.361.28
nvidia-libgl /usr/share/
nvidia-libgl /usr/share/licenses/
nvidia-libgl /usr/share/licenses/nvidia-libgl

and nvidia-utils

nvidia-utils /usr/
nvidia-utils /usr/bin/
nvidia-utils /usr/bin/nvidia-bug-report.sh
nvidia-utils /usr/bin/nvidia-cuda-mps-control
nvidia-utils /usr/bin/nvidia-cuda-mps-server
nvidia-utils /usr/bin/nvidia-debugdump
nvidia-utils /usr/bin/nvidia-modprobe
nvidia-utils /usr/bin/nvidia-persistenced
nvidia-utils /usr/bin/nvidia-settings
nvidia-utils /usr/bin/nvidia-smi
nvidia-utils /usr/bin/nvidia-xconfig
nvidia-utils /usr/lib/
nvidia-utils /usr/lib/libEGL_nvidia.so
nvidia-utils /usr/lib/libEGL_nvidia.so.0
nvidia-utils /usr/lib/libEGL_nvidia.so.361.28
nvidia-utils /usr/lib/libGLESv1_CM_nvidia.so
nvidia-utils /usr/lib/libGLESv1_CM_nvidia.so.1
nvidia-utils /usr/lib/libGLESv1_CM_nvidia.so.361.28
nvidia-utils /usr/lib/libGLESv2_nvidia.so
nvidia-utils /usr/lib/libGLESv2_nvidia.so.2
nvidia-utils /usr/lib/libGLESv2_nvidia.so.361.28
nvidia-utils /usr/lib/libGLX_nvidia.so
nvidia-utils /usr/lib/libGLX_nvidia.so.0
nvidia-utils /usr/lib/libGLX_nvidia.so.361.28
nvidia-utils /usr/lib/libGLdispatch.so
nvidia-utils /usr/lib/libGLdispatch.so.0
nvidia-utils /usr/lib/libOpenGL.so
nvidia-utils /usr/lib/libOpenGL.so.0
nvidia-utils /usr/lib/libcuda.so
nvidia-utils /usr/lib/libcuda.so.1
nvidia-utils /usr/lib/libcuda.so.361.28
nvidia-utils /usr/lib/libnvcuvid.so
nvidia-utils /usr/lib/libnvcuvid.so.1
nvidia-utils /usr/lib/libnvcuvid.so.361.28
nvidia-utils /usr/lib/libnvidia-cfg.so
nvidia-utils /usr/lib/libnvidia-cfg.so.1
nvidia-utils /usr/lib/libnvidia-cfg.so.361.28
nvidia-utils /usr/lib/libnvidia-eglcore.so
nvidia-utils /usr/lib/libnvidia-eglcore.so.361.28
nvidia-utils /usr/lib/libnvidia-encode.so
nvidia-utils /usr/lib/libnvidia-encode.so.1
nvidia-utils /usr/lib/libnvidia-encode.so.361.28
nvidia-utils /usr/lib/libnvidia-fatbinaryloader.so
nvidia-utils /usr/lib/libnvidia-fatbinaryloader.so.361.28
nvidia-utils /usr/lib/libnvidia-fbc.so
nvidia-utils /usr/lib/libnvidia-fbc.so.1
nvidia-utils /usr/lib/libnvidia-fbc.so.361.28
nvidia-utils /usr/lib/libnvidia-glcore.so
nvidia-utils /usr/lib/libnvidia-glcore.so.361.28
nvidia-utils /usr/lib/libnvidia-glsi.so
nvidia-utils /usr/lib/libnvidia-glsi.so.361.28
nvidia-utils /usr/lib/libnvidia-gtk2.so
nvidia-utils /usr/lib/libnvidia-gtk2.so.361.28
nvidia-utils /usr/lib/libnvidia-gtk3.so
nvidia-utils /usr/lib/libnvidia-gtk3.so.361.28
nvidia-utils /usr/lib/libnvidia-ifr.so
nvidia-utils /usr/lib/libnvidia-ifr.so.1
nvidia-utils /usr/lib/libnvidia-ifr.so.361.28
nvidia-utils /usr/lib/libnvidia-ml.so
nvidia-utils /usr/lib/libnvidia-ml.so.1
nvidia-utils /usr/lib/libnvidia-ml.so.361.28
nvidia-utils /usr/lib/libnvidia-ptxjitcompiler.so
nvidia-utils /usr/lib/libnvidia-ptxjitcompiler.so.361.28
nvidia-utils /usr/lib/libnvidia-tls.so
nvidia-utils /usr/lib/libnvidia-tls.so.361.28
nvidia-utils /usr/lib/nvidia/
nvidia-utils /usr/lib/nvidia/libEGL.so
nvidia-utils /usr/lib/nvidia/libEGL.so.1
nvidia-utils /usr/lib/nvidia/libGL.so
nvidia-utils /usr/lib/nvidia/libGL.so.1
nvidia-utils /usr/lib/nvidia/libGL.so.1.0.0
nvidia-utils /usr/lib/nvidia/libGLESv1_CM.so
nvidia-utils /usr/lib/nvidia/libGLESv1_CM.so.1
nvidia-utils /usr/lib/nvidia/libGLESv2.so
nvidia-utils /usr/lib/nvidia/libGLESv2.so.2
nvidia-utils /usr/lib/nvidia/libGLX.so
nvidia-utils /usr/lib/nvidia/libGLX.so.0
nvidia-utils /usr/lib/nvidia/xorg/
nvidia-utils /usr/lib/nvidia/xorg/modules/
nvidia-utils /usr/lib/nvidia/xorg/modules/extensions/
nvidia-utils /usr/lib/nvidia/xorg/modules/extensions/libglx.so
nvidia-utils /usr/lib/nvidia/xorg/modules/extensions/libglx.so.361.28
nvidia-utils /usr/lib/systemd/
nvidia-utils /usr/lib/systemd/system/
nvidia-utils /usr/lib/systemd/system/nvidia-persistenced.service
nvidia-utils /usr/lib/vdpau/
nvidia-utils /usr/lib/vdpau/libvdpau_nvidia.so
nvidia-utils /usr/lib/vdpau/libvdpau_nvidia.so.1
nvidia-utils /usr/lib/vdpau/libvdpau_nvidia.so.361.28
nvidia-utils /usr/lib/xorg/
nvidia-utils /usr/lib/xorg/modules/
nvidia-utils /usr/lib/xorg/modules/drivers/
nvidia-utils /usr/lib/xorg/modules/drivers/nvidia_drv.so
nvidia-utils /usr/share/
nvidia-utils /usr/share/X11/
nvidia-utils /usr/share/X11/xorg.conf.d/
nvidia-utils /usr/share/X11/xorg.conf.d/nvidia-drm-outputclass.conf
nvidia-utils /usr/share/applications/
nvidia-utils /usr/share/applications/nvidia-settings.desktop
nvidia-utils /usr/share/doc/
nvidia-utils /usr/share/doc/nvidia-utils
nvidia-utils /usr/share/doc/nvidia/
nvidia-utils /usr/share/doc/nvidia/NVIDIA_Changelog
nvidia-utils /usr/share/doc/nvidia/README
nvidia-utils /usr/share/doc/nvidia/html/
nvidia-utils /usr/share/doc/nvidia/html/acknowledgements.html
nvidia-utils /usr/share/doc/nvidia/html/addressingcapabilities.html
nvidia-utils /usr/share/doc/nvidia/html/addtlresources.html
nvidia-utils /usr/share/doc/nvidia/html/appendices.html
nvidia-utils /usr/share/doc/nvidia/html/audiosupport.html
nvidia-utils /usr/share/doc/nvidia/html/commonproblems.html
nvidia-utils /usr/share/doc/nvidia/html/configlaptop.html
nvidia-utils /usr/share/doc/nvidia/html/configmultxscreens.html
nvidia-utils /usr/share/doc/nvidia/html/configtwinview.html
nvidia-utils /usr/share/doc/nvidia/html/depth30.html
nvidia-utils /usr/share/doc/nvidia/html/displaydevicenames.html
nvidia-utils /usr/share/doc/nvidia/html/dma_issues.html
nvidia-utils /usr/share/doc/nvidia/html/dpi.html
nvidia-utils /usr/share/doc/nvidia/html/editxconfig.html
nvidia-utils /usr/share/doc/nvidia/html/faq.html
nvidia-utils /usr/share/doc/nvidia/html/flippingubb.html
nvidia-utils /usr/share/doc/nvidia/html/framelock.html
nvidia-utils /usr/share/doc/nvidia/html/glxsupport.html
nvidia-utils /usr/share/doc/nvidia/html/gpunames.html
nvidia-utils /usr/share/doc/nvidia/html/i2c.html
nvidia-utils /usr/share/doc/nvidia/html/index.html
nvidia-utils /usr/share/doc/nvidia/html/installationandconfiguration.html
nvidia-utils /usr/share/doc/nvidia/html/installdriver.html
nvidia-utils /usr/share/doc/nvidia/html/installedcomponents.html
nvidia-utils /usr/share/doc/nvidia/html/introduction.html
nvidia-utils /usr/share/doc/nvidia/html/knownissues.html
nvidia-utils /usr/share/doc/nvidia/html/minimumrequirements.html
nvidia-utils /usr/share/doc/nvidia/html/newusertips.html
nvidia-utils /usr/share/doc/nvidia/html/nvidia-debugdump.html
nvidia-utils /usr/share/doc/nvidia/html/nvidia-ml.html
nvidia-utils /usr/share/doc/nvidia/html/nvidia-persistenced.html
nvidia-utils /usr/share/doc/nvidia/html/nvidia-smi.html
nvidia-utils /usr/share/doc/nvidia/html/nvidiasettings.html
nvidia-utils /usr/share/doc/nvidia/html/openglenvvariables.html
nvidia-utils /usr/share/doc/nvidia/html/optimus.html
nvidia-utils /usr/share/doc/nvidia/html/powermanagement.html
nvidia-utils /usr/share/doc/nvidia/html/procinterface.html
nvidia-utils /usr/share/doc/nvidia/html/profiles.html
nvidia-utils /usr/share/doc/nvidia/html/programmingmodes.html
nvidia-utils /usr/share/doc/nvidia/html/randr14.html
nvidia-utils /usr/share/doc/nvidia/html/sdi.html
nvidia-utils /usr/share/doc/nvidia/html/selectdriver.html
nvidia-utils /usr/share/doc/nvidia/html/sli.html
nvidia-utils /usr/share/doc/nvidia/html/supportedchips.html
nvidia-utils /usr/share/doc/nvidia/html/vdpausupport.html
nvidia-utils /usr/share/doc/nvidia/html/xcompositeextension.html
nvidia-utils /usr/share/doc/nvidia/html/xconfigoptions.html
nvidia-utils /usr/share/doc/nvidia/html/xineramaglx.html
nvidia-utils /usr/share/doc/nvidia/html/xrandrextension.html
nvidia-utils /usr/share/licenses/
nvidia-utils /usr/share/licenses/nvidia-utils
nvidia-utils /usr/share/licenses/nvidia/
nvidia-utils /usr/share/licenses/nvidia/LICENSE
nvidia-utils /usr/share/man/
nvidia-utils /usr/share/man/man1/
nvidia-utils /usr/share/man/man1/nvidia-cuda-mps-control.1.gz
nvidia-utils /usr/share/man/man1/nvidia-modprobe.1.gz
nvidia-utils /usr/share/man/man1/nvidia-persistenced.1.gz
nvidia-utils /usr/share/man/man1/nvidia-settings.1.gz
nvidia-utils /usr/share/man/man1/nvidia-smi.1.gz
nvidia-utils /usr/share/man/man1/nvidia-xconfig.1.gz
nvidia-utils /usr/share/nvidia/
nvidia-utils /usr/share/nvidia/nvidia-application-profiles-361.28-key-documentation
nvidia-utils /usr/share/nvidia/nvidia-application-profiles-361.28-rc
nvidia-utils /usr/share/pixmaps/
nvidia-utils /usr/share/pixmaps/nvidia-settings.png

I can install mesa-demos and run glxgears (64 Bit) and also Portal 2 (32 Bit) works fine. However so far I have found two games that don’t start up.

Couter Strike: Source gives me an Error popup window:
“Could not find required OpenGL entry point ‘glGetError’! Either your video card is unsupported, or your OpenGL driver needs to be updated.”

Talos Principle gives me:

“Fatal error: Could not set display mode”.

Any clues how I could check if that’s an error with the driver or just how it was packaged?
I would expect all 3D stuff to not work if it is just a packaging mistake.

EDIT: On the /r/linux_gaming subreddit it was suggested to run games without the threaded optimizations which seems to fix things.

EDIT2: Doesn’t work for me when I added LD_PRELOAD=“libpthread.so.0 libGL.so.1” __GL_THREADED_OPTIMIZATIONS=0 %command% to the launch options of a game that isn’t working.

nvidia-bug-report.log.gz (116 KB)

Hi
Try my PKGBUILD (both nvidia-utils and lib32-nvidia-utils):
https://github.com/fafryd1125/

Edit:
CS: Error
"“Could not find required OpenGL entry point ‘glGetError’! Either your video card is unsupported, or your OpenGL driver needs to be updated.”

Civ 5; ok
terraria: ok
torchlight2: ok

I replaced both packages with the ones I built form your PKGBUILD and restarted, but CSS still won’t start up. Does it work for you?

Try edit (both nvidia-utils and lib32-nvidia-utils):

install_glvnd()      {
    case "$5" in
-        NON_GLVND)
+        GLVND)
            # legacy non-GLVND GLX libraries
            ;;
-        GLVND)
+        NON_GLVND)
            install -D -m$2 "$1" "${pkgdir}/usr/lib/$1";
            ;;
    esac
}
symlink_glvnd()      {
    case "$6" in
-        NON_GLVND)
+        GLVND)
            # legacy non-GLVND GLX symlinks
            ;;
-        GLVND)
+        NON_GLVND)
            ln -s "$5" "${pkgdir}/usr/lib/$1";
            ;;
    esac
}

Please see:

https://devtalk.nvidia.com/default/topic/915640/unix-graphics-announcements-and-news/multiple-glx-client-libraries-in-the-nvidia-linux-driver-installer-package/

Yes that fixed it.

Talos Principle and CSS are now running.
I’ll open a bug report against the package in the Arch repos.

I’m glad I could help.:)

a
Got an idea how to modify the nvidia-full-beta-all aur pkg?

@ CommanderAlchemy
I’m sorry, too much for verification

Sorry for my bad English btw

This also fixed stuff for me, thanks! However, slightly major issue:

As of now, nvidia-libgl mustn’t be present on bumblebee setups, but the reorganizing moves required content that previously was in nvidia-utils’s /usr/lib/nvidia into nvidia-libgl’s /usr/lib. Had to undo that manually. Guess lib32-* is prob also affected.

Not familiar with PKGBUILD syntax but this is just installing NON_GLVND libraries as a workaround right? GLVND libraries aren’t working using your PKGBUILD either?

Yes (post #4)

All libraries/symlinks are installed correctly, but:

Some games/applications may crash (CSGo,Talos Principle…) . User must select between a GLVND or non-GLVND GLX library (package should install only one of these two libraries at a time, and not both of them simultaneously)

Weren’t 361.16/361.18 using GLVND by default though?

I didn’t have any of the crashes then.

Also, the errors I get indicate symbols could not be found:
CS:GO for instance

Could not find required OpenGL entry point 'glGetError'! Either your video card is unsupported, or your OpenGL driver needs to be updated.

Dota2 lists a bunch http://pastebin.com/dz2LSHMG

However the symbols are found in the GLVND libGL.1.0.0 . ‘readelf -Ws /usr/lib/libGL.so.1.0.0’ (lib32 as well)
https://github.com/NVIDIA/libglvnd/issues/62 discusses the exported symbols, notably “libglvnd’s version of libGL.so exports everything.”

So it seems to me like 361.28 GLVND libGL.so.1.0.0 changed something from the beta drivers that caused applications trouble accessing it as a whole.
Currently looking into the LD.so wrong elf class errors (beginning of Dota2 log above)

as blablo mentioned, the tls location is wrong in the aur package, going to see if that affects the crashes.
EDIT: nope, blank black screen using both classic tls in /usr/lib and ELF tls in /usr/lib/tls

Also I didn’t want to deal with packages while testing so even though it does say
"Packages must install either libGL.so.$VERSION or libGL.so.1.0.0, but never both. " so fair warning

I’m not having issues with both of them installed and using a particular one by changing the symlink.

From the post:
libGL.so -> libGL.so.1 -> libGL.so.$VERSION (NON_GLVND)

libGL.so -> libGL.so.1 -> libGL.so.1.0.0 (GLVND)

What is strange that this seems to somehow affect the use of __GL_THREADED_OPTIMIZATIONS.
Several people report that they can get these games to work (without doing any changes to the packaging), by just turning it off in the startup scripts of these games.


CSGo:
Works for me (tested with GLVND GLX libraries),thanks

Edit:
Related: https://github.com/ValveSoftware/Counter-Strike-Global-Offensive/issues/610

From a DotA 2 dev on https://github.com/ValveSoftware/Dota-2/issues/756

“__GL_THREADED_OPTIMIZATIONS is checked by the driver, not Reborn. It’s odd that it makes the OpenGL exports change but that’s up to the driver, there still isn’t something Reborn can change about this.”

As a workaround, commenting it out in the launch script (line 41 #export __GL_THREADED_OPTIMIZATIONS=1) allows launching.

So why did games that used __GL_THREADED_OPTIMIZATIONS=1 work with 361.16 and 361.18? They also used glvnd. So this seems like a regression with 361.28 that can be fixed with a workaround or by distributions packaging the driver without glvnd, but should ultimately be fixed by the driver.

EDIT: Talos Prinicple didn’t start for me, because I enabled Threaded Optimization in the launch options to do a benchmark. Didn’t have any effect on performance. Other than Source Engine Games the only other game that uses this option is Bioshock Infinite afaik.

It is a regression related to glvnd & threaded optimizations. We are working on fixing it.
Until it is fixed, disabling threaded optimizations is an acceptable workaround, as is disabling entry point patching. Disabling glvnd is also an acceptable workaround, and we anticipate that this is what most distributions will do, except Archlinux.
https://bugs.archlinux.org/task/48109#comment143842