Steam on openSUSE 12.3 x86_64 Radeon 7xxx not using DRI

Hi all,

I have a problem with Steam:

$ steam
Running Steam on opensuse 12.3 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1367621987_client)
libGL: screen 0 does not appear to be DRI2 capable
libGL: OpenDriver: trying /usr/lib/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/dri/swrast_dri.so
libGL error: failed to load driver: swrast

However, the fglrx driver is correctly installed; I can run Unreal Tournament 2004 without any problems, obviously rendered via OpenGL. Also, fgl_glxgears is working, and glxinfo delivers

$ glxinfo
name of display: :0
libGL: AtiGetClientDriverName: 12.10.5 fglrx (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/fglrx_dri.so
libGL: OpenDriver: trying /usr/lib64/dri/fglrx_dri.so
ukiDynamicMajor: found major device number 250
ukiDynamicMajor: found major device number 250
ukiDynamicMajor: found major device number 250
ukiOpenDevice: node name is /dev/ati/card0
ukiOpenDevice: open result is 4, (OK)

display: :0 screen: 0
direct rendering: Yes
server glx vendor string: ATI
server glx version string: 1.4
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGIS_multisample,
GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group

I put myself into the video group, but this did not help either.

Michael

OK, I saw Doom3 gives me similar error messages. So the messages do not come from Steam.

(with LIBGL_DEBUG=verbose)

----- R_InitOpenGL -----
Setup X display connection
dlopen(libGL.so.1)
Initializing OpenGL display
Using XFree86-VidModeExtension Version 2.2
DGA DirectVideo Mouse (Version 2.0) initialized
XFree86-VidModeExtension: not fullscreen, ignored
libGL: screen 0 does not appear to be DRI2 capable
libGL: OpenDriver: trying /usr/lib/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/dri/swrast_dri.so
libGL error: dlopen /usr/lib/dri/swrast_dri.so failed (libstdc++.so.6: version `GLIBCXX_3.4.15’ not found (required by /usr/lib/dri/swrast_dri.so))
libGL: OpenDriver: trying /usr/lib64/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib64/dri/swrast_dri.so
libGL error: dlopen /usr/lib64/dri/swrast_dri.so failed (/usr/lib64/dri/swrast_dri.so: wrong ELF class: ELFCLASS64)
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
Using 8/8/8 Color bits, 8 Alpha bits, 24 depth, 8 stencil display.
GL_RENDERER: AMD Radeon HD 7800 Series

Am 25.05.2013 14:16, schrieb mizapf:
> (/usr/lib64/dri/swrast_dri.so: wrong ELF class: ELFCLASS64)
Looks like it expects 32bit libraries, have you tried to install the
Mesa-32bit compatibility package for 32bit applications?


PC: oS 12.3 x86_64 | i7-2600@3.40GHz | 16GB | KDE 4.10.2 | GTX 650 Ti
ThinkPad E320: oS 12.3 x86_64 | i3@2.30GHz | 8GB | KDE 4.10.3 | HD 3000
HannsBook: oS 12.3 x86_64 | SU4100@1.3GHz | 2GB | KDE 4.10.2 | GMA4500

Your problem seems to only affect 32bit applications/games I guess.

So your Mesa-32bit package seems to be incompatible to your system or you are missing libstdc++6-32bit.

But I’m not sure why it even tries to use swrast (which is a software renderer), if you have fglrx installed… But maybe that’s also caused by a broken/wrong Mesa-32bit or libGL1-32bit. Try to reinstall those from the standard openSUSE repo.

Another question: Where did you install the fglrx driver from? Maybe you’re missing the 32bit version?
The “official” RPMs and the installer from AMD should install both 32bit and 64bit versions AFAIK, though.

OK, one thing I just found is that Doom3 brings its own libstdc++, which certainly fails with the existing swrast since that one is linked against a later version (why are people just doing such things? This is bound to break as soon as you have a newer system than at the one when this package was created…)

If I remove the lib I don’t get that error message, but I have a libGL error nevertheless, so it fails again with “failed to load driver: swrast”.

Apart from the fact that I want fglrx to render it, of course.

I built fglrx from the official AMD package. I know there is a repository for the AMD driver, so I’m going to try that one next.

Michael

OK, so now I tried exactly the same on an openSUSE 12.2 system (almost identical hardware, only difference is that here I have a Club3D Royal Queen 7850 while on the other system it is a Club3D Royal King 7850), latest Catalyst, x86_64, and …

… everything’s fine.

The same is true for both Steam and Doom3.

So what has changed between openSUSE 12.2 and 12.3? I’m starting to believe it was a really bad idea to upgrade; I’d better have stayed with 12.2. The 12.3 has not given me any interesting new feature but just more trouble.

When I installed the 12.3, I was some days early and had to use the RC2 instead of the official version. Could this have any impact (now after some weeks with updates in the meantime)?

Michael

Some packages have been renamed, especially regarding Mesa. F.e. Mesa-libGLU1 is now called just libGLU1.
Maybe you were missing some needed package because of this?

And of course, 12.3 contains newer versions of everything.
But I doubt that was your issue.

When I installed the 12.3, I was some days early and had to use the RC2 instead of the official version. Could this have any impact (now after some weeks with updates in the meantime)?

Possibly yes. Maybe there was something wrong with some package dependencies that got fixed for the final release.

OK, I just did a new installation of openSUSE 12.3 (final, not RC). No luck yet:

libGL: screen 0 does not appear to be DRI2 capable

This is a fresh openSUSE 12.3 installation; I’ve added the latest fglrx (12.04) from the repository, patched everything to the current level, and finally selected steam from the repository. This auto-selected a lot of additional files, which were all successfully installed. But I’m here again. No Steam, no Doom3.

I can now just try to swap the graphics card between my two PCs, and if that does not help there must be something in openSUSE 12.3 which prevents my system to successfully run the openGL applications. No problems with glxgears and fgl_glxgears.

I already make use of export LIBGL_DEBUG=verbose; is there anything I can do to trace the issue? Just at that point the libGL is not verbose enough. Why is screen0 not DRI2-capable?

Works now.

In fact, I was using the fglrx driver from the openSUSE repository (Index of /mirror/amd-fglrx/openSUSE_12.3), but after uninstalling that one and using the original catalyst from AMD, everything seems OK now.

Michael