Well, I wanted to try to check out WebGL on Firefox (v38.0.5 on Linux); and I realized that in about:config
, webgl.osmesalib
was set to /usr/lib/libOSMesa.so.6
, while about:support
claimed:
Graphics
--------
Adapter Description: Tungsten Graphics, Inc -- Mesa DRI Intel(R) IGD GEM 20100330 DEVELOPMENT x86/MMX/SSE2
Device ID: Mesa DRI Intel(R) IGD GEM 20100330 DEVELOPMENT x86/MMX/SSE2
Driver Version: 1.4 Mesa 7.10.2
GPU Accelerated Windows: 0/1 Basic Blocked for your graphics card because of unresolved driver issues.
Vendor ID: Tungsten Graphics, Inc
WebGL Renderer: Blocked for your graphics card because of unresolved driver issues.
windowLayerManagerRemote: false
AzureCanvasBackend: cairo
AzureContentBackend: cairo
AzureFallbackCanvasBackend: none
AzureSkiaAccelerated: 0
So, I found Blocklisting/Blocked Graphics Drivers - MozillaWiki, which notes:
Mesa drivers are whitelisted if the Mesa version is at least 7.10.3 (see bug 659560).
Exception: with the Nouveau 3D driver, the Mesa version is required to be at least 8.0 (see bug 729817)
Right, so libOSMesa.so.6
doesn't actually check out with 1.4 Mesa 7.10.2
, but I thought I'd rebuild from source anyways.
So I got the source of 7.10.3 (MesaLib-7.10.3.tar.gz
, MesaGLUT-7.10.3.tar.gz
) and libdrm-2.4.24
, unpacked, ran PKG_CONFIG_PATH=/path/to/Mesa-7.10.3/libdrm-2.4.24 ./configure --enable-gl-osmesa
and make
, and indeed, I do get shared library files built libOSMesa.so -> libOSMesa.so.7 -> libOSMesa.so.7.10.3; and if we doubt the version info in the filename, we could also try this:
$ strings -a lib/libOSMesa.so.7 | grep 'Mesa 7'
%u.%u Mesa 7.10.3
OpenGL ES-CM 1.%d Mesa 7.10.3
OpenGL ES 2.0 Mesa 7.10.3
Nice, so now I thought, I'll just replace this library as webgl.osmesalib
:
... and run Firefox with:
LD_LIBRARY_PATH=/path/Mesa-7.10.3/lib LD_PRELOAD=/path/Mesa-7.10.3/lib/libOSMesa.so.7 strace /path/to/firefox -P default -safe-mode -new-instance 2>&1 | grep --color=always 'Mesa.*\.so'
... and strace
even tells me the library has been opened:
open("/path/Mesa-7.10.3/lib/libOSMesa.so.7", O_RDONLY) = 4
... and still - I get this in about:support
, the same as above:
So, it's still referring to Mesa 7.10.2, regardless - and I have no idea why?
Btw, I just now realized that the config setting webgl.osmesalib
may be something hanging in my profile from earlier versions, because if I start firefox
with default profile and safe mode, all I get is gfx.blacklist.suggested-driver-version
and gfx.prefer-mesa-llvmpipe
settings:
So - how can I persuade firefox, to try the newly built Mesa libraries, instead of the old ones?
webgl.force-enabled
to true? Also, is your graphics card driver also referencing the newly built Mesa libraries? You might want to share with us what GPU you're using, and what drivers specifically (it might be blacklisted in the current version...).