firefox & thunderbird crashing due to pipelight plugin after dual GPU enabled

Bug #1392897 reported by Dijx
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Pipelight
New
Undecided
Unassigned

Bug Description

Hi there.

Software: Linux Mint 17 KDE (3.13.0-39-generic #66-Ubuntu SMP Tue Oct 28 13:30:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux), Thunderbird 31.2.0, Firefox 33
Hardware: Asus K53K notebook, dual graphics.
inxi -C -G output:

CPU: Quad core Intel Core i7-2670QM CPU (...)
Graphics: Card-1: Intel 2nd Generation Core Processor Family Integrated Graphics Controller
           Card-2: Advanced Micro Devices [AMD/ATI] Whistler LE [Radeon HD 6610M/7610M]
           X.Org: 1.15.1 drivers: fglrx,intel Resolution: 1366x768@60.0hz
           GLX Renderer: Mesa DRI Intel Sandybridge Mobile GLX Version: 3.0 Mesa 10.1.3

Heart of the matter:
Everything was fine until I enabled dual graphics by disabling radeon power managment (passing radeon.runpm=0 to kernel) and installing proprietary fglrx-14.301 driver, witch is AFAIK the only way to switch between IGD and discrete graphics on non-mux/mux-less system.

Now, when ati graphics is enabled, everything is fine. But when IGD (intel HD) is enabled, I cannot run firefox, neither thunderbird due to pipelight plugin problem (console output attached).
console output says:
  Major opcode of failed request: 157 (ATIFGLEXTENSION)
but ATI card is not active one at the moment, no radeon/amd/ati/fglrx module loaded, although graphics card is visible on the system...
  I tried to reinstall both pipelight and wine-compholio (with --purge) while IGD enabled - doesn't help. Only way to run firefox and thunderbird when IGD enabled it to run pipelight-plugin --remove-mozilla-plugins first. And only way to use pipelight is to enable radeon card, reboot and run pipelight-plugin --create-mozilla-plugins.

Any ideas how to workaround this problem?

Revision history for this message
Dijx (dijxie) wrote :
Revision history for this message
Dijx (dijxie) wrote :

OK, it seems problem is somehow related with... driver white list? Driver detection?

I've found pipelight configs in /usr/share/pipelight/configs, and unhashing line
overwriteArg = enableGPUAcceleration=false
or line
overwriteArg = enableGPUAcceleration=true

does the job - firefox and thunderbird works in both cases on Intel GPU.

Revision history for this message
Michael Müller (mqchael) wrote :

Hi,

the problem is that you do not change your libgl.so when changing between the Intel gpu and the AMD gpu. This basically means your OpenGL implementation is broken when you are using the Intel gpu.

You are always using the AMD libgl.so which tries to use some AMD specific Xorg extensions. When you are using your Intel GPU this extension is not available, causing Wine, and therefore Pipelight, to crash.

Pipelight tests the OpenGL implementation during the startup (unless you overwrite the check) to prevent crashes with broken drivers. In your case the OpenGL implementation is completely broken and can not even return the name of the graphic card. Try to run programs like glxinfo or glxgears with the Intel GPU and you will notice that they do not work either.

Overwriting the check with true does not actually solve the problem, since the plugin would crash as soon as Silverlight tries to use gpu acceleration. You would need to disable gpu acceleration.

You should change the symlink of libgl.so to one provided by Intel (when using the Intel GPU), so that you also get working OpenGL with your Intel HD GPU.

Michael

Revision history for this message
Dijx (dijxie) wrote :

Hi Michael,

Above all, thanks for your hard work on pipelight. And thanks for your answer, althoug it seems that guys from AMD were clever enough to implement symlink switching in Catalyst Control Center:

using INTEL:

dx@dx-K53SK:/usr/lib > ls -allh | grep -i libGL
-rw-r--r-- 1 root root 0 lis 14 22:00 FGL.renamed.libGL.so.1.2
lrwxrwxrwx 1 root root 23 lip 7 21:22 libglademm-2.4.so.1 -> libglademm-2.4.so.1.0.5
-rw-r--r-- 1 root root 39K gru 29 2013 libglademm-2.4.so.1.0.5
lrwxrwxrwx 1 root root 10 lis 15 00:56 libGL.so -> libGL.so.1
lrwxrwxrwx 1 root root 12 lis 15 00:56 libGL.so.1 -> libGL.so.1.2
lrwxrwxrwx 1 root root 57 lis 15 00:56 libGL.so.1.2 -> /usr/lib/x86_64-linux-gnu/mesa/FGL.renamed.libGL.so.1.2.0

using ATI:

dx@dx-K53SK:/usr/lib > ls -allh | grep -i libGL
-rw-r--r-- 1 root root 0 lis 14 22:00 FGL.renamed.libGL.so.1.2
lrwxrwxrwx 1 root root 23 lip 7 21:22 libglademm-2.4.so.1 -> libglademm-2.4.so.1.0.5
-rw-r--r-- 1 root root 39K gru 29 2013 libglademm-2.4.so.1.0.5
lrwxrwxrwx 1 root root 10 lis 15 02:01 libGL.so -> libGL.so.1
lrwxrwxrwx 1 root root 12 lis 15 02:01 libGL.so.1 -> libGL.so.1.2
lrwxrwxrwx 1 root root 33 lis 15 02:01 libGL.so.1.2 -> /usr/lib/fglrx/fglrx-libGL.so.1.2

And GL is working fine on intel GPU - tested on pipelight when overwriteArg = enableGPUAcceleration=true as well as on google earth, kstars and some webGL demos. And glxgears of course ;]

Revision history for this message
Michael Müller (mqchael) wrote :

Your output only shows the symlinks for the 64 bit libGL, but the Silverlight version used by Pipelight is 32 bit only. The driver most probably does not change the 32 bit library symlinks. Run the following command to find out which library is used by Pipelight:

WINEDEBUG=-all pipelight-plugin --system-check | grep libGL

You will most probably see two results, the 32 and 64 bit library. Only the 32 bit library is relevant in your case. Check whether the symlink points to the correct driver when you are using the Intel GPU.

Revision history for this message
Dijx (dijxie) wrote :

Unfortunately, you're right... library in /usr/lib/i386-linux-gnu is continously linked to ati
libGL.so.1.2 -> /usr/lib/i386-linux-gnu/fglrx/fglrx-libGL.so.1.2 - output attached.

And I was mistaken - google earth was somehow tested on ati, and now google-earth:i386 is broken indeed... says unsupported hardware detected and no 3d earth present. Alhough google-earth-amd64 works.

But how is that pipeligth is working with "overwriteArg = enableGPUAcceleration=true" - although it seems it is not hardware-accelerated (intel_gpu_top shows low gpu usage, and top shows quite high cpu usage on 1080p)

So it seems I need to write some startup deamon to switch i386 library's symlink...

Thank you for your help!

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.