Ну, я хотел попробовать WebGL в Firefox (v38.0.5 в Linux); и я понял, что в about:config
, webgl.osmesalib
был установлен /usr/lib/libOSMesa.so.6
, а about:support
заявил:
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
Итак, я нашел блочные списки / драйверы заблокированной графики - MozillaWiki, который отмечает:
Драйверы Mesa заносятся в белый список, если версия Mesa не ниже 7.10.3 (см. Ошибку 659560).
Исключение: для 3D-драйвера Nouveau версия Mesa должна быть не ниже 8.0 (см. Ошибку 729817).
Правильно, поэтому libOSMesa.so.6
самом деле не работает с 1.4 Mesa 7.10.2
, но я решил, что все равно пересоберу из исходного кода.
Итак, я получил исходный код 7.10.3 (MesaLib-7.10.3.tar.gz
, MesaGLUT-7.10.3.tar.gz
) и libdrm-2.4.24
, без упаковки, запустил PKG_CONFIG_PATH=/path/to/Mesa-7.10.3/libdrm-2.4.24 ./configure --enable-gl-osmesa
и make
, и я действительно получаю файлы общей библиотеки, созданные libOSMesa.so -> libOSMesa.so.7 -> libOSMesa.so.7.10.3 ; и если мы сомневаемся в информации о версии в имени файла, мы могли бы также попробовать это:
$ 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
Хорошо, теперь я подумал, я просто заменю эту библиотеку на webgl.osmesalib
:
... и запустить Firefox с:
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'
... и strace
даже говорит мне библиотека была открыта:
open("/path/Mesa-7.10.3/lib/libOSMesa.so.7", O_RDONLY) = 4
... и все же - я получаю это about:support
, так же, как и выше:
Итак, это все еще относится к Mesa 7.10.2, независимо от того - и я понятия не имею, почему?
Кстати, я только сейчас понял, что параметр конфигурации webgl.osmesalib
может быть чем-то зависшим в моем профиле из более ранних версий, потому что, если я запускаю firefox
с профилем по умолчанию и безопасным режимом, все, что я получаю, это gfx.blacklist.suggested-driver-version
и gfx.prefer-mesa-llvmpipe
:
Итак, как мне убедить Firefox попробовать новые библиотеки Mesa вместо старых?