Closed Bug 731983 Opened 12 years ago Closed 5 years ago

Make a firefox add-on that wraps Mesa llvmpipe for WebGL software rendering

Categories

(Core :: Graphics: CanvasWebGL, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: bjacob, Unassigned, Mentored, NeedInfo)

References

Details

(Whiteboard: webgl-next)

This bug depends on bug 731836: "Add a preference to use Mesa llvmpipe for WebGL software rendering".

Once we have the ability to use Mesa llvmpipe, the next step, that we should do here, is to wrap a build of Mesa llvmpipe in a Firefox add-on that also turns on the preference to use it.

Cedric said he volunteers to be the mentor for this. See bug 731836 comment 1.

Once this is done, the next step will be to have Firefox automatically download that when needed, and automatically fall back to that (when hardware-accelerated WebGL is not possible).
Whiteboard: [mentor=cedricv] → [mentor=cedricv] webgl-next
Assignee: nobody → andrew.quartey
It seems that the first blocker here is that building LLVMpipe for Windows is difficult, even unsupported. So, "fix the Windows port of Mesa/LLVMpipe" would be an important prereq here at least as far as Windows is concerned. Of course, now that we have the use-LLVMpipe preference working on Linux (bug 761155), it's also possible to complete most of the rest of the work here independently of the Windows issue.
This mailing list email shows the trouble :drexler ran into when trying to make a LLVMpipe build for Windows:
http://lists.freedesktop.org/archives/mesa-users/2012-April/000411.html
Automatically unassigning mentored bugs that haven't seen action for two weeks. The idea is to maximize the number of mentored bugs that newcomers can pick from.
Assignee: andrew.quartey → nobody
Now fixed?
(In reply to csredrat from comment #4)
> Now fixed?

No. The work we've done so far is allow for using LLVMpipe in place of an existing native GL driver, but what we want to do here is to leverage this in order to build an addon which includes LLVMpipe itself, and sets Firefox up to use it for WebGL rendering.
Mentor: cedricv
Whiteboard: [mentor=cedricv] webgl-next → webgl-next
Hey, I am currently had to figure out howto make firefox use mesa instead of angle. 
I read bug 731836 and this thread, and sucessfully managed to use firefox with Gallium llvmpipe driver.
Following both threads, it seams to me that one problem that made people stop working on the add-on part (this bug) is that it was difficult to build mesa (the opengl32.dll) on windows. I managed to create my own build using MSYS2 and using this howto: http://qt-project.org/wiki/Cross-compiling-Mesa-for-Windows
I would volunteer to provide help on building mesa or even create/maintain an add-on, if someone could provide me with guidance on which steps are neccessary for building this add-on. 
If I understood (bug 731836, comment 1) correctly there is still some coding work to do in order to create some kind of hook, such that the add-on can tell gecko where to look for the opengl32.dll / mesallvmpipe.dll ?

By the way, you can find prebuild recent dlls here: http://sourceforge.net/projects/msys2/files/REPOS/MINGW (or by using MSYS2 and installing them with  pacman -S mingw32/mingw-w64-i686-mesa)
Flags: needinfo?(cedricv)
(In reply to Ismail.Khoffi from comment #6)
> Hey, I am currently had to figure out howto make firefox use mesa instead of
> angle. 
> I read bug 731836 and this thread, and sucessfully managed to use firefox
> with Gallium llvmpipe driver.
> Following both threads, it seams to me that one problem that made people
> stop working on the add-on part (this bug) is that it was difficult to build
> mesa (the opengl32.dll) on windows. I managed to create my own build using
> MSYS2 and using this howto:
> http://qt-project.org/wiki/Cross-compiling-Mesa-for-Windows
> I would volunteer to provide help on building mesa or even create/maintain
> an add-on, if someone could provide me with guidance on which steps are
> neccessary for building this add-on. 
> If I understood (bug 731836, comment 1) correctly there is still some coding
> work to do in order to create some kind of hook, such that the add-on can
> tell gecko where to look for the opengl32.dll / mesallvmpipe.dll ?

I just saw that the Mesa llvm switch was removed some time ago (bug 958368, comment 1). I am one year to late ;-) Is there a reason why the preference "gfx.prefer-mesa-llvmpipe" is still present in all.js ? It is never used (due to bug 958368). 
(If ones card/driver is blacklistet on a windows machine it is still possible to use use mesa-llvmpipe by copying opengl32.dll somewhere LoadLibrary will find it, disabling angle by webgl.disable-angle and enforcing webgl by webgl.force-enabled but this is rather unconvinient for the regular user)
Blocks: 1193695

WONTFIX in favor of Swiftshader: bug 1286056

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.