Created attachment 391228 [details] Screenshot glxinfo | grep -i direct direct rendering: Yes emerge --info Portage 2.2.14 (python 2.7.7-final-0, default/linux/amd64/13.0, gcc-4.8.3, glibc-2.19-r1, 3.16.5-gentoo x86_64) ================================================================= System uname: Linux-3.16.5-gentoo-x86_64-Intel-R-_Core-TM-_i5-2400_CPU_@_3.10GHz-with-gentoo-2.2 KiB Mem: 16391276 total, 13599044 free KiB Swap: 2095100 total, 2095100 free Timestamp of tree: Mon, 08 Dec 2014 14:45:01 +0000 ld GNU ld (Gentoo 2.24 p1.4) 2.24 app-shells/bash: 4.2_p53 dev-java/java-config: 2.2.0 dev-lang/perl: 5.18.2-r2 dev-lang/python: 2.7.7, 3.3.5-r1, 3.4.1 dev-util/cmake: 2.8.12.2-r1 dev-util/pkgconfig: 0.28-r2 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.12.4 sys-apps/sandbox: 2.6-r1 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.11.6-r1, 1.13.4 sys-devel/binutils: 2.24-r3 sys-devel/gcc: 4.7.3-r1, 4.8.3 sys-devel/gcc-config: 1.7.3 sys-devel/libtool: 2.4.3-r2 sys-devel/make: 4.0-r1 sys-kernel/linux-headers: 3.16 (virtual/os-headers) sys-libs/glibc: 2.19-r1 Repositories: gentoo vortex systemd qutim ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O3 -march=native -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O3 -march=native -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fail-clean fixlafiles merge-sync news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync webrsync-gpg xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="ru_RU.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/vortex /var/lib/layman/systemd /var/lib/layman/qutim" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="7zip X a-like-o a52 aac aacplus aacs aalib acl acpi alsa amd64 apng applet archive artworkextra audacious audiofile automount avx bazaar berkdb bidi bittorrent bittorrent-external bluray branding bsf bzip2 cairo caps chardet chdir cjk cli collada colord cover cracklib crypt css cuda cue cupsddk curl cvs cxx dbus dconf device-mapper dga dhcp dhcpcd dht diff dirac disk-partition divx djvu dnsretry dos drawing dri dv eap-tls enca encode exif experimental extensions extras facedetect fat fbcondecor ffmpeg fftw fileinfo firefox firmware flac fontconfig fortran frei0r fts3 fuse g3dvl gd gdbm gdm geoip gif glade glib glitz gnome gnome-keyring gnome-online-accounts gnome-shell gphoto2 gpm graphite grp grub gstreamer gtk gtk3 gtkstyle gudev gzip hddtemp highlight histman hog hvm hwdb iconsets iconv icq id3tag idle idn infinality inifile intl introspection ioemu ipv6 iso jabber java javascript jingle joystick jpeg jpeg2k kate keymap kinetic kvm ladspa lame lcms libass libcaca libkms libnotify libsamplerate libsecret libtiger lights lm_sensors loop-aes lto lucene lyrics lzma lzo mad matroska melt mercurial minizip mmx mmxext mng modules mp2 mp3 mp4 mp4live mpeg mpeg2 mpg123 mplayer mpris mpu401 mtp mudflap multilib multimedia musepack mvl mysql mysqli nautilus ncurses netplay network nls nptl nsplugin nss ntfs ntfsprogs nvidia offensive ofx ogg ogm oodict openal opencore-amr opengl openmp openssl opensslcrypt optimization optimized-qmake oscar pam parse-clocks pcf pch pcre pcre16 pdf pdo pgo php pipelight player plugins png policykit ppds pppd projectm psf pulseaudio purple qml qpak quicktime rar readline realmedia realtime reiserfs resolvconf romio rtsp ru-dv ru-g ru-i ru-k sasl scale0tilt screen screenshot sdl secure-delete sendto session skins slp smp sndfile socialweb sound sounds speex spell sqlite sqlite3 sse sse2 sse2_4way sse3 sse4 sse4_1 sse4_2 ssl ssse3 startup-notification stream stroke strong-optimization subtitles subversion svg system-cairo system-icu system-jpeg system-sqlite systemd t1lib taglib tcpd textures theora threads thunderbird tiff tint2conf tk tls toolbar trayicon truetype tta tweak-mode twolame udev udisks unicode unzip upower usb utils uvm v4l2 vaapi vala vamp vdpau verse vkontakte vorbis vorbis-psy vpx wad wav wavpack webgl webkit webp webphoto whiteboarding winbind wma wmp x264 x265 xanim xattr xcb xcomposite xhtml xinetd xkb xml xmlreader xmlrpc xmlwriter xorg xosd xpm xsl xslt xulrunner xv xvfb xvid zip zlib" ABI_X86="32 64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CURL_SSL="nss" DRACUT_MODULES="plymouth systemd" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc efi-64" INPUT_DEVICES="evdev joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="ru ru_RU en" NETBEANS_MODULES="apisupport cnd enterprise harness ide j2ee java nb php profiler webcommon websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5 php5-6" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Console output LANG=C steam Running Steam on gentoo 64-bit STEAM_RUNTIME is enabled automatically Installing breakpad exception handler for appid(steam)/version(1417829162) libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast Installing breakpad exception handler for appid(steam)/version(1417829162) (steam:30949): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita", (steam:30949): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita", /usr/share/themes/Adwaita/gtk-2.0/gtkrc:1137: error: unexpected identifier `direction', expected character `}' (steamwebhelper:30983): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita", (steamwebhelper:30983): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita", /usr/share/themes/Adwaita/gtk-2.0/gtkrc:1137: error: unexpected identifier `direction', expected character `}' Installing breakpad exception handler for appid(steamwebhelper)/version(20141205165716) Installing breakpad exception handler for appid(steamwebhelper)/version(1417798636) [1208/194101:ERROR:nss_util.cc(1018)] Failed to load NSS libraries. Installing breakpad exception handler for appid(steamwebhelper)/version(20141205165716) Installing breakpad exception handler for appid(steamwebhelper)/version(1417798636) Installing breakpad exception handler for appid(steamwebhelper)/version(1417798636) Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 70: non-double matrix element Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 70: non-double matrix element Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 78: saw unknown, expected number Installing breakpad exception handler for appid(steam)/version(1417829162) libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast Error: OpenGL GLX context is not using direct rendering, which may cause performance problems. For more information visit https://support.steampowered.com/kb_article.php?ref=9938-EYZB-7457. Installing breakpad exception handler for appid(steam)/version(1417829162) Installing breakpad exception handler for appid(steam)/version(1417829162) Installing breakpad exception handler for appid(steam)/version(1417829162) Installing breakpad exception handler for appid(steam)/version(1417829162) Installing breakpad exception handler for appid(steam)/version(1417829162) Installing breakpad exception handler for appid(steam)/version(1417829162) FillInMachineIDInfo took a total of 0 milliseconds Installing breakpad exception handler for appid(steam)/version(1417829162) Installing breakpad exception handler for appid(steam)/version(1417829162) ** (steam:30949): WARNING **: Could not initialize NMClient /org/freedesktop/NetworkManager: Unit dbus-org.freedesktop.NetworkManager.service failed to load: No such file or directory. ** (steam:30949): WARNING **: Error enabling/disabling networking: Unit dbus-org.freedesktop.NetworkManager.service failed to load: No such file or directory.
Did you actually update your environment before running that?
(In reply to Jeroen Roovers from comment #2) > Did you actually update your environment before running that? I restarted PC
Could you try running 'lddtree' on the steam executable? Or at least 'readelf -d' for a start. Just make sure to run it on the real executable, not some wrapper :).
ne0sight@vortex ~> export LANG=C ne0sight@vortex ~> lddtree ~/.local/share/Steam/ubuntu12_32/steam steam => /home/ne0sight/.local/share/Steam/ubuntu12_32/steam (interpreter => /lib/ld-linux.so.2) libX11.so.6 => /usr/lib32/libX11.so.6 libxcb.so.1 => /usr/lib32/libxcb.so.1 libXau.so.6 => /usr/lib32/libXau.so.6 libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 librt.so.1 => /lib32/librt.so.1 libm.so.6 => /lib32/libm.so.6 libdl.so.2 => /lib32/libdl.so.2 libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/32/libstdc++.so.6 libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/32/libgcc_s.so.1 libpthread.so.0 => /lib32/libpthread.so.0 libc.so.6 => /lib32/libc.so.6 ne0sight@vortex ~> readelf -d ~/.local/share/Steam/ubuntu12_32/steam Dynamic section at offset 0x2656e0 contains 31 entries: Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [libX11.so.6] 0x00000001 (NEEDED) Shared library: [librt.so.1] 0x00000001 (NEEDED) Shared library: [libm.so.6] 0x00000001 (NEEDED) Shared library: [libdl.so.2] 0x00000001 (NEEDED) Shared library: [libstdc++.so.6] 0x00000001 (NEEDED) Shared library: [libpthread.so.0] 0x00000001 (NEEDED) Shared library: [libc.so.6] 0x0000000c (INIT) 0x12d78 0x0000000d (FINI) 0x1d357c 0x00000019 (INIT_ARRAY) 0x25f130 0x0000001b (INIT_ARRAYSZ) 304 (bytes) 0x00000004 (HASH) 0x1ac 0x00000005 (STRTAB) 0x2ff0 0x00000006 (SYMTAB) 0x1530 0x0000000a (STRSZ) 5991 (bytes) 0x0000000b (SYMENT) 16 (bytes) 0x00000015 (DEBUG) 0x0 0x00000003 (PLTGOT) 0x2667f8 0x00000002 (PLTRELSZ) 2496 (bytes) 0x00000014 (PLTREL) REL 0x00000017 (JMPREL) 0x123b8 0x00000011 (REL) 0x4c90 0x00000012 (RELSZ) 55080 (bytes) 0x00000013 (RELENT) 8 (bytes) 0x00000018 (BIND_NOW) 0x6ffffffb (FLAGS_1) Flags: NOW 0x6ffffffe (VERNEED) 0x4ab0 0x6fffffff (VERNEEDNUM) 6 0x6ffffff0 (VERSYM) 0x4758 0x6ffffffa (RELCOUNT) 6234 0x00000000 (NULL) 0x0
I don't see libGL there. I'm starting to be afraid that it uses some poor dlopen(). Could you maybe 'strace -f ... | grep -C 5 libGL' it a bit?
Created attachment 391236 [details] strace -f steam | grep -C 5 libGL
Could you paste your /etc/ld.so.conf then, please?
Created attachment 391238 [details] /etc/ld.so.conf
I think there is problem with steam user wrapper. It overrides LD_LIBRARY_PATH before running executable and return system variable after execution. It looks like that: /home/ne0sight/.local/share/Steam/ubuntu12_32:/home/ne0sight/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:/home/ne0sight/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib:/home/ne0sight/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/home/ne0sight/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib:/home/ne0sight/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/home/ne0sight/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib:/home/ne0sight/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/home/ne0sight/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib::/usr/lib32 This wrapper is placed in ~/.local/share/Steam and automatically updated by steam.
I look into steam wrappers (system and user) and think that proper solution would be to modify system steam wrapper (/usr/games/bin/steam) to define LD_LIBRARY_PATH from /etc/ld.so.conf while executing user steam wrapper. User steam wrapper prepends steam runtime paths to LD_LIBRARY_PATH and appends /usr/lib32 For example this call: "LD_LIBRARY_PATH="/usr/lib32/opengl/nvidia/lib:/usr/lib64/opengl/nvidia/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib32:/usr/lib32:/usr/local/lib32:/lib:/usr/lib:/usr/local/lib:/usr/lib32/OpenCL/vendors/nvidia:/usr/lib64/OpenCL/vendors/nvidia:/usr/lib64/qt4:/usr/lib32/qt4:/usr/lib/qt4:/opt/nvidia-cg-toolkit/lib64:/opt/nvidia-cg-toolkit/lib32:/usr/games/lib64:/usr/games/lib32:/usr/games/lib:/opt/cuda/lib64:/opt/cuda/lib" steam" works for me.
Created attachment 391242 [details, diff] Patch against steam-launcher-1.0.0.47-r1.ebuild Here is a patch
Argv. Honestly, it would be better if they didn't play with LD_LIBRARY_PATH like this. Especially if ld.so.conf has /usr/lib32 already...
Reported upstream: https://github.com/ValveSoftware/steam-for-linux/issues/3624
Comment on attachment 391242 [details, diff] Patch against steam-launcher-1.0.0.47-r1.ebuild That looks terrible. A proper unified diff would make this a lot easier on the eyes.
CC'ing dev of steam-overlay as it also affected
(In reply to Jeroen Roovers from comment #15) > Comment on attachment 391242 [details, diff] [details, diff] > Patch against steam-launcher-1.0.0.47-r1.ebuild > > That looks terrible. A proper unified diff would make this a lot easier on > the eyes. This is just temporal workaround. Nothing more. I do not know how to make it better. Except perhaps replace second sed with tr
Comment on attachment 391242 [details, diff] Patch against steam-launcher-1.0.0.47-r1.ebuild Nope, this patch won't do it. It needs to respect contents of ld.so.conf during run-time, not the one that was there during the build. Does the wrapper do anything useful? Maybe we could just ignore it.
(In reply to Michał Górny from comment #18) > Comment on attachment 391242 [details, diff] [details, diff] > Patch against steam-launcher-1.0.0.47-r1.ebuild > > Does the wrapper do anything useful? Maybe we could just ignore it. There is actually 2 wrappers. 1. System wrapper /usr/{games/}bin/steam - it just prepare actual stuff in user profile and call 2nd wrapper there 2. User wrapper ~/.local/share/Steam/steam.sh - it is part of "steam bootstrap" and automatically updated by Steam itself. User wrapper contains LD_LIBRARY_PATH with /usr/lib32 and steam runtime dirs. I do not think we could ignore it.
So for cheap solutions, I have two ideas. Either: a. add an extra wrapper that does 'sed -i -e' on the user wrapper -- so that the line is always removed, even if the wrapper is updated upstream. However, if Steam auto-restarts it using the wrapper this won't be of help on upgrades, b. add an extra wrapper that fills LD_LIBRARY_PATH in from ld.so.conf *in a readable* way. Just don't forget about ld.so.conf.d.
(if the system wrapper is in our control, we can add the extra code there)
(In reply to Michał Górny from comment #20) > So for cheap solutions, I have two ideas. Either: > > a. add an extra wrapper that does 'sed -i -e' on the user wrapper -- so that > the line is always removed, even if the wrapper is updated upstream. > However, if Steam auto-restarts it using the wrapper this won't be of help > on upgrades, This will not work as user wrapper will detect changes and self-update.
Ok. Could you tell me if the system wrapper is /bin/sh or bash? I will prepare some clean code for ya.
(In reply to Michał Górny from comment #23) > Ok. Could you tell me if the system wrapper is /bin/sh or bash? I will > prepare some clean code for ya. It's bash
Created attachment 391538 [details, diff] ld.so.conf-steam-launcher-1.0.0.49.patch I think it must look like this. Ebuild patch: --- ../../../../portage/layman/gamerlay/games-util/steam-launcher/steam-launcher-1.0.0.47-r1.ebuild 2014-12-08 19:49:45.860677134 +0300 +++ ./steam-launcher-1.0.0.49.ebuild 2014-12-13 12:28:56.933075754 +0300 @@ -54,12 +54,16 @@ S=${WORKDIR}/steam/ src_prepare() { + epatch "${FILESDIR}"/ld.so.conf-${P}.patch + # we use our ebuild functions to install the files rm Makefile sed -i \ -e "s:/usr/bin/steam:${GAMES_BINDIR}/steam:" \ - ${S}/steam.desktop || die "sed failed" + ${S}/steam.desktop || die "sed failed" + + epatch_user } src_install() {
Nope, ugly and incorrect. You should read ldconfig.c in glibc, then you'd know how to read the file format :P. But seriously, something much simpler: # Steam appends /usr/lib32 to LD_LIBRARY_PATH. We need to make sure that # OpenGL implementation dir goes before that, so we need to append it # to user's LD_LIBRARY_PATH ourselves. But that's needed only with # the new eselect-opengl that uses 000opengl file. if [ -f /etc/env.d/000opengl ]; then . /etc/env.d/000opengl # Append only when LDPATH is non-empty -- i.e. using nvidia or ati. if [ -n "${LDPATH}" ]; then export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}${LD_LIBRARY_PATH+:}${LDPATH} fi fi Solves the specific issues.
Created attachment 391542 [details, diff] ld.so.conf-steam-launcher-1.0.0.49.patch (In reply to Michał Górny from comment #26) > But seriously, something much simpler: Thanks for proper solution! Works good for me
*** Bug 567200 has been marked as a duplicate of this bug. ***