How to get Firefox to use software rendering for WebGL using MESA / llvmpipe ?
I have Firefox 54 64-bit running on a VPS (Windows Server 2008 R2, no graphics card).
I was wondering if I could get WebGL to work with software rendering? I have successfully gotten other OpenGL apps to work using MESA.
I am using this build of MESA: https://github.com/pal1000/mesa-dist-win/releases
It has both 32 and 64 bit binary builds in it.
I have searched using Google and read that Firefox used to support osmesa.dll via the "webgl.software_rendering" boolean config setting and the "webgl.osmesalib" string config setting. However, those settings are no longer there, and adding them manually does not work.
I have also read that Firefox should support llvmpipe, but again, if there were any about:config settings for this in previous versions of Firefox, they are no longer there. Dropping the 64 bit MESA opengl32.dll file into Firefox's program directory also does not work. (This is all that is typically needed in other applications.)
I do have the three config keys set to force WebGL:
webgl.force-enabled: true / layers.acceleration.force-enabled: true / gfx.direct2d.force-enabled: true
These settings do stay enabled when Firefox is restarted, but about:support still shows "Basic" for Graphics Compositing.
Is there ANY way I can get Firefox to use llvmpipe via the 64 bit MESA opengl32.dll in order to support WebGL software rendering? Or is there some other way to force software rendering for WebGL?
Gewysig op
All Replies (3)
I tried using a DLL injector (https://github.com/master131/ExtremeInjector ), and was able to successfully inject the 64-bit MESA opengl32.dll into firefox.exe. I verified that it was hooked using Process Explorer (it made 6 threads but they never changed, even when trying to use WebGL). However, it made no difference... still no software WebGL, still in "Basic" Graphics Compositing. (I did try setting it to "auto" and started Firefox that way so that the injection happens immediately on startup.)
Gewysig op
Did you contact the software creator for more help on what your doing?
OpenGL has different implementations, the big three being Intel, Nvidia, and AMD. It also has a software implementation that can use the CPU rather than a graphics card. I linked to a software implementation. I am asking how to get Firefox to use it (llvmpipe).
https://www.mesa3d.org/intro.html https://mesamatrix.net/ https://en.wikipedia.org/wiki/Mesa_(computer_graphics)#Implementations_of_video_acceleration_APIs
Normally simply placing the software based opengl32.dll (either the x86 for 32 bit programs or the x64 for 64 bit) in the same directory as the .exe is enough to get the application to use the software based opengl32.dll driver instead of the hardware based one which is typically located in c:\windows\system32 in Windows.
That doesn't work with Firefox. Sometimes, if programs don't want to use the software based opengl32.dll driver, it can be forced using a .dll injector. That also doesn't work with Firefox.
Gewysig op