OpenGL GLX上下文未使用直接渲染,可能会导致性能问题。(steam)AMD驱动程序

当我在终端中启动蒸汽时,会出现以下错误信息。
charlie@SteamMPL:~$ steam rm: unable to delete "/home/charlie/.steam/steam": It is a directory rm: unable to delete "/home/charlie/.steam/bin": It is a directory Running Steam on ubuntu 14.04 64-bit STEAM_RUNTIME is enabled automatically [2014-08-03 11:50:13] Startup - updater built Jul 15 2014 18:14:26 Installing breakpad exception handler for appid(steam)/version(1405474565_client) libGL error: failed to load driver: swrast Looks like steam didn't shutdown cleanly, scheduling immediate update check Installing breakpad exception handler for appid(steam)/version(1405474565_client) [2014-08-03 11:50:14] Checking for update on startup [2014-08-03 11:50:14] Searching for available updates... Installing breakpad exception handler for appid(steam)/version(1405474565_client) [2014-08-03 11:50:14] Download skipped: /client/steam_client_ubuntu12 version 1405474565, installed version 1405474565 [2014-08-03 11:50:14] Nothing to do [2014-08-03 11:50:14] Verifying installation... [2014-08-03 11:50:14] Performing checksum verification of executable files [2014-08-03 11:50:15] Verification complete Gtk-Message: Failed to load module "overlay-scrollbar" Gtk-Message: Failed to load module "unity-gtk-module" Installing breakpad exception handler for appid(steam)/version(1405474565_client) 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 [0803/115015:WARNING:proxy_service.cc(958)] PAC support disabled because there is no system implementation libGL error: failed to load driver: swrast Error: OpenGL GLX context is not using direct rendering, which may cause performance problems.
硬件信息:
  • CPU:AMD Athlon x4 760k
  • GPU:AMD Radeon R7 250 1 GB GDDR5(驱动程序:Catalyst 14.4)
  • RAM:8 GB DDR3 1600
我该怎么做才能避免这个问题?

嗯,我猜没人能得到我的赏金。我通过将专有的NVidia驱动程序从340降级到304(可能还结合以下方法)来解决了这个问题。 - jpaugh
5个回答

Steam自带了它自己的gcc库,但这些库已经过时,在使用较新版本库的发行版上无法正常工作。如需更多信息,请参考:https://wiki.archlinux.org/index.php/steam#Steam_runtime_issues

要解决Ubuntu 14.04上的问题,请关闭Steam并运行以下命令:

rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1

14.10这一天,路径改变了,命令也相似。
rm ~/.steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1
rm ~/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
rm ~/.steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
rm ~/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
rm ~/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1

or

rm ~/.steam/bin32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1
rm ~/.steam/bin32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
rm ~/.steam/bin32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
rm ~/.steam/bin32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
rm ~/.steam/bin32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1

3令人惊讶的回答,只有一件事,代替说"libstdc++.so.6",说"libstdc++.so.*",因为可能安装了不同版本。对于从Ubuntu 14.04升级到14.10的人来说,Steam路径将保持不变作为运行时。 - mmm3743
1有人知道Steam是否会更新他们的软件包以在14.10上正常运行吗?现在情况一团糟... - Afiefh
看起来这个解决方案正在起作用。上帝保佑你,我的救世主! - Yehonatan Tsirolnik
1似乎删除文件并不是一个好的解决方案,但这个方法似乎非常出色 :-p 赞!希望沃尔沃能尽快修复。 - thirdender
6不起作用,怎么回事。我还是得到同样的错误。 - Nick Bailuc
第一个答案是我在14.10版本中实际上有效的六个解决方案之一! - ts01
第三个解决方案对我来说有效,在Ubuntu 14.10和R9 270上。 - Alexander Kim
1没帮到我,使用的是14.05版本和专有的Nvidia驱动程序... - aXept
我在Ubuntu 14.10中更改了删除路径为~/.steam/bin,然后删除了在此主题中列出的原始文件。经过测试,一切正常运行。 - user384718
真是个非常棒的回答 - Steven Combs
1@NickBailuc @aXept 或许在删除库文件后,你需要执行sudo ldconfig -v命令。请记住,libstdc++6是系统中的核心库之一(数十个程序依赖于它),如果Steam安装程序将其自己的版本合并到/etc/ld.so.conf(或者/etc/ld.so.conf.d/steam.conf等)中,并使用ldconfig命令,那么混乱就会迅速出现。按照我的建议运行该命令将彻底从内部列表中移除旧的库文件。 - syntaxerror
1谢谢,但是还是不行,还是出现同样的错误...有趣的是,这种情况最近才开始发生。 - m0skit0
@aXept对我也不起作用,即使使用专有的Nvidia驱动程序。顺便说一下,在切换到默认的“通用”驱动程序后,这个问题出现了。 - jpaugh
适用于Ubuntu 16.04(第三组命令; rm ~/.steam/bin32/ ......等) - user

我做了以下事情
$ tar cjvf ~/.steam/gcc_libs_backup.tar.bz2 $(find ~/.steam | grep -e libstdc++ -e libgcc_s) && rm $(find ~/.steam | grep -e libstdc++ -e libgcc_s)

然后一切正常运作。如果需要的话,您将会在~/.steam/gcc_libs_backup.tar.bz2中备份库文件。


这是最常见的答案,赢了!但你可以尝试使用find ~/.steam -name 'libstdc++*' -o -name 'libgcc_s*'而不是添加一个grep - jpaugh
看起来.steam文件夹下的所有相关内容都是指向.local/share/Steam文件夹中的某个符号链接,所以我在那个文件夹上运行了这个命令。然而,它并没有起作用。 - jpaugh

我也遇到了同样的错误,问题出在AMD驱动程序上。尝试按照以下步骤操作:

卸载Steam
卸载AMD驱动程序
安装Steam
启动Steam
进行设置
安装AMD驱动程序

希望能有所帮助


2谢谢你提出了对于任何软件问题最显而易见的解决方案。天才! - Nick Bailuc
真聪明,确实如此。 - Alexander Kim
在Ubuntu 13.04(或者前后的一个版本)中存在一个bug,当在安装AMD驱动程序之前安装Steam时会出现相同的错误信息。解决方法是先安装Steam,然后再安装AMD驱动程序。 - mmm3743

我遇到了同样的问题,无法解决,但多亏了@user22153,我才能解决它,不过有一点不同。(我创建了一个新答案,这样我可以更容易地发布我使用的命令,也方便以后参考。:D)所有的功劳归功于@user22153。
rm ~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
rm ~/.steam/steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
rm ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1
rm ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
rm ~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1

所以,简单来说,如果上述代码(由@user22153提供)不起作用,就要四处寻找,直到找到文件为止。

在Ubuntu 14.04.2上安装nvidia Geforce驱动程序版本346.47后出现了此错误。在安装驱动程序时,我收到一条消息,说无法安装32位兼容性库,但我愚蠢地忽略了它。重新运行视频驱动程序的安装程序,并确保安装那些32位库可以解决问题。