Bugzilla – Bug 338947
/usr/lib/libIndirectGL.so.1 conflict with compiz start
Last modified: 2007-11-26 20:54:30 UTC
Computer: Toshiba Satellite P35-S629 Graphics: ATI MOBILITY RADEON 9600/9700 Series compiz with new ATI 8.42.3 driver --using (AIGLX) Related Bug: 338930 /usr/lib/libIndirectGL.so.1 causes compiz to fail to start. Removing the /usr/lib/libIndirectGL.so.1 -> /usr/lib/libIndirectGL.so.2 link resolves enough of the problem to allow compiz to start, but then only with fusion-icon. However, compiz will never autostart on the system and can only be started by using fusion-icon which makes very little sense except for the potential relation of Bug 338930. The only way I can explain this bizarre situation is just to walk through the scenario and show you what it takes to get compiz started on my Toshiba P35 laptop and leave it there. The most probable reason compiz will never autostart is because there is no option in KDE -> session manager that will allow compiz to be selected as the wm. (Again, probably related to Bug 338930 not enabling the 3D subsystem) the only option shown is kwin in a "greyed out" state that does not offer any other choice. After logging in to kwin, first I try and start compiz with fusion-icon which fails due to the presence of /usr/lib/libIndirectGL.so.1. (Failure #1) Additionally an attempt is made to manually start compiz with the command shown by "ps ax" 00:01 Rankin-P35a~> compiz --replace --sm-disable --ignore-desktop-hints ccp --indirect-rendering --no-libgl-fallback compiz (core) - Fatal: GLX_EXT_texture_from_pixmap is missing compiz (core) - Error: Failed to manage screen: 0 compiz (core) - Fatal: No manageable screens found on display :0.0 (Failure #2) Next, of course, I have to remove the /usr/lib/libIndirectGL.so.1 -> libIndirectGL.so.1.2* link. (I've done it so often, I just created a script to do it) 00:01 Rankin-P35a~> su Password: [root Rankin-P35a/home/david] # ./linux/scripts/llibi [root Rankin-P35a/home/david] # exit exit Now with the link gone, let's try again: 00:03 Rankin-P35a~> compiz --replace --sm-disable --ignore-desktop-hints ccp --indirect-rendering --no-libgl-fallback compiz (core) - Fatal: GLX_EXT_texture_from_pixmap is missing compiz (core) - Error: Failed to manage screen: 0 compiz (core) - Fatal: No manageable screens found on display :0.0 (Failure #3) Next Get kwin back so my decorations return: 00:03 Rankin-P35a~> kwin --replace trying '/home/david/.xcompmgrrc' as configfile finished parsing the config file Ok, now with the /usr/lib/libIndirectGL.so.1 link removed, another test to start with fusion-icon. Success, compiz is back. Now, lets see how it is running: 00:03 Rankin-P35a~> ps ax | grep compiz 3804 ? S 0:01 compiz --replace --sm-disable --ignore-desktop-hints ccp --indirect-rendering --no-libgl-fallback 3807 pts/1 R+ 0:00 grep compiz So, the bottom line is that compiz will not start with the /usr/lib/libIndirectGL.so.1 link present and will only start with fusion-icon after the link has been removed. Go figure? Let me know what I can send for attachments, etc. that will help narrow down the source and origin of the problem
/usr/lib/libIndirectGL.so.1 -> /usr/lib/libIndirectGL.so.2??? I assume you mean /usr/lib/libIndirectGL.so.1 -> /usr/lib/libIndirectGL.so.1.2 On my system, both these files come from the Mesa package.
Just for some background # rpm --changelog -q Mesa [...] * Do Jan 18 2007 sndirsch@suse.de - added libIndirectGL for indirect rendering only (Bug #234154)
This is not a Xgl bug. Here is my advise use radeon driver as suggested by Stefan in other bug. Enable 3D as it is supported with those drivers with your card. Use 8.40 drivers with Xgl. If you insist on using AIGLX on self compiled fglrx 8.42 driver this bug report does not belong here as afaik neither is officially supported. I can however confirm that compiz does not work with /usr/lib/libIndirectGL.so.1 available, AIGLX and new ATI drivers. Hopefully ATI will come up with better drivers that works as well as nvidia's does with AIGLX and without any issue with libIndirectGL.so.1.
Stefan, if you want to use this bug to assign to ATI, please do, otherwise just close.
We should try to fix this AIGLX issue. This would help us to improve the AIGLX support on openSUSE 11.0 as well.
Please note that the new ATI drivers don't work well with AIGLX for any distro. To put it another way, it works as well on openSUSE as it does elsewhere. Nvidia with nvidia-xconfig --composite --render-accel --add-argb-glx-visuals -d 24 works quite well without Xgl.
Might be, but /usr/lib/libIndirectGL.so.1 is a special library only available on openSUSE.
(In reply to comment #7 from Stefan Dirsch) > Might be, but /usr/lib/libIndirectGL.so.1 is a special library only available > on openSUSE. > (In reply to comment #6 from Jigish Gohil) > Please note that the new ATI drivers don't work well with AIGLX for any distro. > To put it another way, it works as well on openSUSE as it does elsewhere. > > Nvidia with nvidia-xconfig --composite --render-accel --add-argb-glx-visuals -d > 24 works quite well without Xgl. > If this wasn't a laptop, I'd rip the ATI card out and replace it with an nVidia so fast it would make your head spin. I have a half dozen or so other boxes with nVidia cards ranging from old MX440s to new 8600GTs. Driver and compiz setup takes 2 minutes at most. All then work without any problems. But many systems come with ATI and somehow, (hopefully with ATI's help -- are you listening AMD?) the OS has to function with those cards too. At least, until consumers start demanding nVidia in all of their products.
Working with Bug 338930, as a test, I have completely stripped fglrx from the system. This did resolve the log out freeze that hardlocked the system. Subsequent to that test I have loaded it back. So that this discussion is complete, let me document what lib changes are required to get compiz going. This is going from a pure stock radeon driver and then loading the 8.42.3 driver via Yast from www2.ati.com (1) The original libGL driver will not work with compiz. Specifically this driver: [root Rankin-P35a/home/david] # l /usr/lib/libGL.so.1.2 -rwxr-xr-x 1 root root 391344 2007-09-21 20:34 /usr/lib/libGL.so.1.2* (2) Another version of this same driver gets installed (presumably by the ati install) in /usr/X11R6/lib that will work. Specifically: [root Rankin-P35a/home/david] # l /usr/X11R6/lib/libGL.so.1.2 -rwxr-xr-x 1 root root 676640 2007-10-25 12:05 /usr/X11R6/lib/libGL.so.1.2* (3) To get compiz to work, you must move the /usr/lib/libGL.so.1.2 somewhere else and either (a) copy the /usr/X11R6/lib/libGL.so.1.2 to /usr/lib or (b) soft link it with "ln -s /usr/X11R6/lib/libGL.so.1.2 /usr/lib/libGL.so.1.2" (4) Remove /usr/lib/libIndirectGL.so.1 NOW, compiz will start by invoking fusion-icon and selecting compiz as the WM. Is there any way to straighten out this library alphabet soup? Hopefully this complete library change picture will yield some more answers. Thanks for you help!
The libGL in /usr/X11R6/lib is the ATI one and should be preferred over the one in /usr/lib. I don't understand why this does not happen. Maybe you modified your /etc/ld.so.conf. Attach the output of ldd /usr/bin/glxinfo |grep GL.so' It is my understanding that especially the fglrx driver, i.e. it's libGL needs libIndirectGL since it doesn't support EXT_texture_from_pixmap. So removing this library makes no sense to me either.
No modifications. I didn't even know ld.do.conf existed until you just said so. # ldd /usr/bin/glxinfo |grep GL.so libGL.so.1 => /usr/lib/libGL.so.1 (0xb7dec000) Here is what's in ld.so.conf and it's includes: [root Rankin-P35a/home/david/linux/ati-compiz] # cat /etc/ld.so.conf /usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/lib/Xaw3d /usr/i386-suse-linux/lib /usr/local/lib /opt/kde3/lib include /etc/ld.so.conf.d/*.conf [root Rankin-P35a/home/david/linux/ati-compiz] # l /etc/ld.so.conf.d/ total 20 drwxr-xr-x 2 root root 4096 2007-10-12 02:41 ./ drwxr-xr-x 110 root root 12288 2007-11-07 01:31 ../ -rw-r--r-- 1 root root 250 2007-09-21 20:34 graphviz.conf [root Rankin-P35a/home/david/linux/ati-compiz] # cat /etc/ld.so.conf.d/graphviz.conf /usr/lib/graphviz /usr/lib/graphviz/sharp /usr/lib/graphviz/java /usr/lib/graphviz/perl /usr/lib/graphviz/php /usr/lib/graphviz/ocaml /usr/lib/graphviz/python /usr/lib/graphviz/lua /usr/lib/graphviz/tcl /usr/lib/graphviz/guile /usr/lib/graphviz/ruby And, no, it doesn't make any sense to me either. Thanks for looking into it.
> # ldd /usr/bin/glxinfo |grep GL.so > libGL.so.1 => /usr/lib/libGL.so.1 (0xb7dec000) This is the wrong one. It should be /usr/X11R6/lib/libGL.so.1 > [root Rankin-P35a/home/david/linux/ati-compiz] # cat /etc/ld.so.conf > /usr/X11R6/lib/Xaw3d > /usr/X11R6/lib Looks good.
Created attachment 182382 [details] Radeon 3D Xorg.0.log
Start compiz with "--no-libgl-fallback" No removing or moving of /usr/lib/libIndirectGL.so.1 is required. The latest ATI drivers work really well *with AIGLX*, but only when manual installation is selected. http://dev.compiz-fusion.org/~cyberorg/2007/11/23/
See also Bug #343927.
ATI uses a wrong SONAME ("libGL.so.1.2" instead of "libGL.so.1").
*** This bug has been marked as a duplicate of bug 344135 ***