Closed Bug 1084624 Opened 5 years ago Closed 2 years ago

Tracking: switch to mesa/gallium upstream gfx stack

Categories

(Firefox OS Graveyard :: General, defect)

x86_64
Linux
defect
Not set

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: cjones, Unassigned)

References

(Blocks 1 open bug)

Details

The long-term plan for fxpi and Raspbian to share a graphics backend is through a stack that Eric Anholt is bringing up [1].  This stack uses the mesa GL impl in userspace, and the standard drm/kms backend on the kernel side.  There's quite a lot of scaffolding that comes along with it, but in exchange it brings some nice features like kernel-side shader verification and full mesa power.

One issue for FFOS using this stack is having a gralloc impl for mesa/gallium, and ensuring that the little android GL turd extensions can be supported in mesa.  Alex Bradbury was kind enough to pass along a link to android-x86 [2], which includes an Intel-based gralloc/ANDROID_ext graphics stack.  So there seems to be a proof of concept at least.  This stack was also imported into Chrome OS recently [3].

This work would also provide a good excuse to rebase fxpi on JB or KK.  (It was the old broadcom GL stack that was tying us to ICS.)

[1] https://github.com/anholt/linux
[2] http://git.android-x86.org/?p=platform/hardware/drm_gralloc.git;a=tree;h=refs/heads/ics-x86;hb=refs/heads/ics-x86
[3] https://chromium.googlesource.com/chromiumos/third_party/hwcplus-drm/+/master/src
(In reply to Chris Jones [:cjones] temporarily active; ni?/f?/r? if you need me from comment #0)
> The long-term plan for fxpi and Raspbian to share a graphics backend is
> through a stack that Eric Anholt is bringing up [1].

I should add that Eric is making great progress there, but not done yet.  It would be great to contribute to that effort but it's not ready to be "shipped" on FFOS (or Raspbian) yet.
To actual get started trying to build this stack, here's what we can do

 1. Produce a build of Eric Anholt's linux source https://github.com/anholt/linux that includes the options from our bcmrpi_gonk_defconfig
 2. Remove the brcm_usrlib/dag graphics stack
 3. (Now would be a good opportunity to rebase RPi on JB or KK, preferably)
 4. Import the mesa stack and whatever else is needed
 5. Try to integrate the existing gralloc backend, tweak as needed http://git.android-x86.org/?p=platform/hardware/drm_gralloc.git;a=tree;h=refs/heads/ics-x86;hb=refs/heads/ics-x86 and https://chromium.googlesource.com/chromiumos/third_party/hwcplus-drm/+/master/src

This requires some kernel expertise, and a pretty good amount of experience with the gonk-level graphics layer.  The resulting stack won't be 100% functional yet.
If you've got the other 2835 support derived from Rasperry Pi's tree (particularly the mailbox driver), then just dropping drivers/gpu/drm/ from my tree into yours (plus the tiny diff to arch/ to add the platform info) will probably be easier than porting everything else to my tree.  This is the approach typically used by distributions' backporters of DRM code for stable kernels, and apparently it works out trivially most of the time.
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.