搜索 | 用户支持

防范以用户支持为名的诈骗。我们绝对不会要求您拨打电话或发送短信,及提供任何个人信息。请使用“举报滥用”选项报告涉及违规的行为。

详细了解

How to get Firefox to use software rendering for WebGL using MESA / llvmpipe ?

  • 3 个回答
  • 1 人有此问题
  • 1 次查看
  • 最后回复者为 BlohoJo

more options

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?

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?

由BlohoJo于修改

所有回复 (3)

more options

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.)

由BlohoJo于修改

more options

Did you contact the software creator for more help on what your doing?

more options

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.

由BlohoJo于修改