One more bit of information:
(precise_amd64)xxx@yhyh:/$ /sbin/ldconfig -p | grep libGL.so.1
libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so.1
libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/fglrx/libGL.so.1
libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/fglrx/libGL.so.1
libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/libGL.so.1
(precise_amd64)xxx@yhyh:/$ ls -l /usr/lib/x86_64-linux-gnu/libGL.so.1
lrwxrwxrwx 1 root root 50 Mar 19 06:11 /usr/lib/x86_64-linux-gnu/libGL.so.1 -> /etc/alternatives/glx--libGL.so.1-x86_64-linux-gnu
(precise_amd64)xxx@yhyh:/$ ls -l /etc/alternatives/glx--libGL.so.1-x86_64-linux-gnu
lrwxrwxrwx 1 root root 42 Mar 19 06:33 /etc/alternatives/glx--libGL.so.1-x86_64-linux-gnu -> /usr/lib/x86_64-linux-gnu/fglrx/libGL.so.1
(precise_amd64)xxx@yhyh:/$ ls -l /usr/lib/x86_64-linux-gnu/fglrx/libGL.so.1
lrwxrwxrwx 1 root root 18 Feb 1 13:11 /usr/lib/x86_64-linux-gnu/fglrx/libGL.so.1 -> fglrx-libGL.so.1.2
(precise_amd64)xxx@yhyh:/$ ls -l /usr/lib/x86_64-linux-gnu/fglrx/fglrx-libGL.so.1.2
-rw-r--r-- 1 root root 942120 Feb 1 13:11 /usr/lib/x86_64-linux-gnu/fglrx/fglrx-libGL.so.1.2
(precise_amd64)xxx@yhyh:/$
It's most likely a configuration issue where your 32-bit support doesn't match your 64-bit support. Can you run the 32-bit glxinfo and see what it says? You can also ldd the 32-bit glxinfo and see if it's loading the right OpenGL.
There's a bit more info here: https://support.steampowered.com/kb_article.php?ref=9938-EYZB-7457
I was able to run Counter Strike, without any issues.
TF2 and CS:S however, returns "Could not find required OpenGL entry point 'glColorMaskIndexedEXT'! Either your video card is unsupported, or your OpenGL driver needs to be updated."
Not sure how to run 32-big glxinfo.
I downloaded _i386 package, unpacked it manually, and started glxinfo from there:
and indeed there are some issues:
(precise_amd64)xxx@yhyh:~/a$ ./glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
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
client glx vendor string: ATI
client glx version string: 1.4
client glx extensions:
GLX_ARB_create_context, GLX_ARB_create_context_profile,
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_swap_control, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_MESA_allocate_memory, GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
GLX_MESA_swap_frame_usage, GLX_NV_swap_group, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_swap_barrier, GLX_SGIX_swap_group, GLX_SGIX_visual_select_group,
GLX_EXT_texture_from_pixmap, GLX_EXT_framebuffer_sRGB,
GLX_ARB_fbconfig_float, GLX_AMD_gpu_association
GLX version: 1.4
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
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,
GLX_EXT_texture_from_pixmap
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: AMD Radeon HD 7900 Series
OpenGL version string: 2.1 (4.2.12002 Compatibility Profile Context 8.982.13)
OpenGL shading language version string: (null)
OpenGL extensions:
...
...
(precise_amd64)xxx@yhyh:~/a$ ./glxinfo | grep draw_buffers2
(precise_amd64)xxx@yhyh:~/a$
ldd glxinfo, and ldd /usr/lib/i386-linux-gnu/fglrx/fglrx-libGL.so.1.2
both looks fine.
Debugging now.
(precise_amd64)xxx@yhyh:~/a$ ./glxinfo
name of display: :0.0
libGL: AtiGetClientDriverName: 9.1.11 fglrx (screen 0)
libGL error: dlopen fglrx_dri.so failed
display: :0 screen: 0
...
Looks a problem with dynamic loading.
Not sure how to solve it.
(precise_amd64)root@:/# dpkg -l | grep -- -dri
ii fglrx-driver 1:13.1-2 non-free ATI/AMD RadeonHD display driver
ii libgl1-mesa-dri 8.0.2-0ubuntu3 free implementation of the OpenGL API -- DRI modules
ii libgl1-mesa-dri:i386 8.0.2-0ubuntu3 free implementation of the OpenGL API -- DRI modules
Apparently I have both installed
(precise_amd64)root@:/# dpkg -S fglrx_dri
fglrx-driver: /usr/lib/dri/fglrx_dri.so
libfglrx: /usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so
libfglrx:i386: /usr/lib/i386-linux-gnu/dri/fglrx_dri.so
Not sure.
(precise_amd64)root@:/# dpkg -l | grep :i386
ii gcc-4.6-base:i386 4.6.3-1ubuntu5 GCC, the GNU Compiler Collection (base package)
ii libc6:i386 2.15-0ubuntu10 Embedded GNU C Library: Shared libraries
ii libcairo2:i386 1.10.2-6.1ubuntu2 The Cairo 2D vector graphics library
ii libdrm-intel1:i386 2.4.32-1ubuntu1 Userspace interface to intel-specific kernel DRM services -- runtime
ii libdrm-nouveau1a:i386 2.4.32-1ubuntu1 Userspace interface to nouveau-specific kernel DRM services -- runtime
ii libdrm-radeon1:i386 2.4.32-1ubuntu1 Userspace interface to radeon-specific kernel DRM services -- runtime
ii libdrm2:i386 2.4.32-1ubuntu1 Userspace interface to kernel DRM services -- runtime
ii libelf1:i386 0.152-1ubuntu3 library to read and write ELF files
ii libexif12:i386 0.6.20-2 library to parse EXIF files
ii libexpat1:i386 2.0.1-7.2ubuntu1 XML parsing C library - runtime library
ii libffi6:i386 3.0.11~rc1-5 Foreign Function Interface library runtime
ii libfglrx:i386 1:13.1-2 non-free ATI/AMD RadeonHD display driver (runtime libraries)
ii libfglrx-amdxvba1:i386 1:13.1-2 AMD XvBA (X-Video Bitstream Acceleration) runtime libraries
ii libfontconfig1:i386 2.8.0-3ubuntu9 generic font configuration library - runtime
ii libfreetype6:i386 2.4.8-1ubuntu2 FreeType 2 font engine, shared library files
ii libgcc1:i386 1:4.6.3-1ubuntu5 GCC support library
ii libgif4:i386 4.1.6-9ubuntu1 library for GIF images (library)
ii libgl1-fglrx-glx:i386 1:13.1-2 proprietary libGL for the non-free ATI/AMD RadeonHD display driver
ii libgl1-mesa-dri:i386 8.0.2-0ubuntu3 free implementation of the OpenGL API -- DRI modules
ii libgl1-mesa-glx:i386 8.0.2-0ubuntu3 free implementation of the OpenGL API -- GLX runtime
ii libglapi-mesa:i386 8.0.2-0ubuntu3 free implementation of the GL API -- shared library
ii libglib2.0-0:i386 2.32.1-0ubuntu2 GLib library of C routines
ii libjpeg-turbo8:i386 1.1.90+svn733-0ubuntu4 IJG JPEG compliant runtime library.
ii libjpeg8:i386 8c-2ubuntu7 Independent JPEG Group's JPEG runtime library (dependency package)
ii libllvm3.0:i386 3.0-4ubuntu1 Low-Level Virtual Machine (LLVM), runtime library
ii libpciaccess0:i386 0.12.902-1 Generic PCI access library for X
ii libpcre3:i386 8.12-4 Perl 5 Compatible Regular Expression Library - runtime files
ii libpixman-1-0:i386 0.24.4-1 pixel-manipulation library for X and cairo
ii libpng12-0:i386 1.2.46-3ubuntu4 PNG library - runtime
ii libselinux1:i386 2.1.0-4.1ubuntu1 SELinux runtime shared libraries
ii libstdc++6:i386 4.6.3-1ubuntu5 GNU Standard C++ Library v3
ii libtiff4:i386 3.9.5-2ubuntu1 Tag Image File Format (TIFF) library
ii libx11-6:i386 2:1.4.99.1-0ubuntu2 X11 client-side library
ii libx11-xcb1:i386 2:1.4.99.1-0ubuntu2 Xlib/XCB interface library
ii libxau6:i386 1:1.0.6-4 X11 authorisation library
ii libxcb-glx0:i386 1.8.1-1 X C Binding, glx extension
ii libxcb-render0:i386 1.8.1-1 X C Binding, render extension
ii libxcb-shm0:i386 1.8.1-1 X C Binding, shm extension
ii libxcb1:i386 1.8.1-1 X C Binding
ii libxdamage1:i386 1:1.1.3-2build1 X11 damaged region extension library
ii libxdmcp6:i386 1:1.1.0-4 X11 Display Manager Control Protocol library
ii libxext6:i386 2:1.3.0-3build1 X11 miscellaneous extension library
ii libxfixes3:i386 1:5.0-4ubuntu4 X11 miscellaneous 'fixes' extension library
ii libxrender1:i386 1:0.9.6-2build1 X Rendering Extension client library
ii libxxf86vm1:i386 1:1.1.1-2build1 X11 XFree86 video mode extension library
ii zlib1g:i386 1:1.2.3.4.dfsg-3ubuntu4 compression library - runtime
(precise_amd64)root@:/#
I run strace glxinfo, and
this is interesting bit:
...
write(2, "libGL: ", 7libGL: ) = 7
write(2, "AtiGetClientDriverName: 9.1.11 f"..., 48AtiGetClientDriverName: 9.1.11 fglrx (screen 0)
) = 48
futex(0xf72e7050, FUTEX_WAKE_PRIVATE, 2147483647) = 0
geteuid32() = 1000
getuid32() = 1000
open("/usr/lib/i386-linux-gnu/fglrx/dri/fglrx_dri.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/dri/fglrx_dri.so", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\263\37\0\0\0\0\0"..., 512) = 512
close(4) = 0
open("/usr/X11R6/lib32/modules/dri/fglrx_dri.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib32/dri/fglrx_dri.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "libGL error: ", 13libGL error: ) = 13
write(2, "dlopen fglrx_dri.so failed\n", 27dlopen fglrx_dri.so failed
) = 27
...
/usr/lib/dri/fglrx_dri.so is link to 64-bit so it obviously fail to open, and other ones, are missing.
Will create "/usr/lib/i386-linux-gnu/fglrx/dri" -> "/usr/lib/i386-linux-gnu/dri" link, and see what happens.
Sucess:
root@:/$ ln -s /usr/lib/i386-linux-gnu/dri /usr/lib/i386-linux-gnu/fglrx/dri
Then:
$ ./mesa-utils_i386/usr/bin/glxinfo
name of display: :0.0
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
client glx vendor string: ATI
client glx version string: 1.4
client glx extensions:
GLX_ARB_create_context, GLX_ARB_create_context_profile,
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_swap_control, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_MESA_allocate_memory, GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
GLX_MESA_swap_frame_usage, GLX_NV_swap_group, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_swap_barrier, GLX_SGIX_swap_group, GLX_SGIX_visual_select_group,
GLX_EXT_texture_from_pixmap, GLX_EXT_framebuffer_sRGB,
GLX_ARB_fbconfig_float, GLX_AMD_gpu_association
GLX version: 1.4
GLX extensions:
GLX_ARB_create_context, GLX_ARB_create_context_profile,
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_swap_control, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_MESA_swap_control, GLX_NV_swap_group, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_swap_barrier, GLX_SGIX_swap_group, GLX_SGIX_visual_select_group,
GLX_EXT_texture_from_pixmap
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: AMD Radeon HD 7900 Series
OpenGL version string: 4.2.12002 Compatibility Profile Context 8.982.13
OpenGL shading language version string: 4.20
OpenGL extensions:
...
GL_EXT_direct_state_access, GL_EXT_draw_buffers2, GL_EXT_draw_instanced,
...
Testing TF2 now.
TF2 and CS:S are starting now essentially, but still freezes somewhere on loading screen. Looks to be different bug. Will keep you updated.
Counter Strike (non source) and Conter Strike: Condition Zero, seems to be working perfectly. Including steam overlay.
I believe lack of dri symlink or wrong default search path is bug in package. I will report this to Debian, after confirming this first by reinstallation.
I am running Linux Mint 13, 64b
Messing around trying to fix this I ended up with a fresh OS installation with updates, installed the AMD Catalyst 13.4, installed Steam, added myself into the 'video' group and then without installing the mesa-libs:i386 specifically (i think steam installed something like that)
I was able to run Steam and Left 4 Dead 2 Beta, with this script:
#!/usr/bin/env bash
export LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu:/usr/lib/i386-linux-gnu/dri:/usr/lib/i386-linux-gnu/fglrx:/usr/lib/i386-linux-gnu:gconv
steam
Hello @baryluk, if you are still experiencing this issue with an up to date system, please open a new issue report and we can investigate further.
Nothing extracted yet.
I am running Ubuntu 12.04 amd64 chroot inside a Debian wheezy/unstable amd64.
I passed environment (mostly DISPLAY=:0), I have mounted /dev/shm and /tmp, etc, from outside of chroot to have access to X server. I installed fglrx 13.1 from Debian experimental both 64 and 32 bit versions, both in Debian and chrooted Ubuntu, so they match and work. After setting LD_LIBRARY_PATH or adding necessary paths to /etc/ld.so.conf, I have working OpenGL with direct rendering:
In fact this is exactly the same output I am getting outside of the chroot! glxgears work (4000+ fps)
I also successfully run Unigine Valey benchmark in it without ANY ISSUES with full speed.
The graphic card is Radeon 7970 (from gigabyte).
I can start steam without much issues, and it works. But it reports I do not have direct rendering for no apparent reasons:
I think steam messes up with library search.
Or is it releated to 32-bit vs 64-bit libs? I installed both, and both should work I think.
(with ldconfig followed under root)
Any ideas why steam thinks my X doesn't support direct rendering?
I tried running TF2, but it doesn't work. It ends with "Could not find required OpenGL entry point 'glColorMaskIndexedEXT'! Either your video card is unsupported, or your OpenGL driver needs to be updated."