Currently, upstream (AOSP/RPi2) hardware rendering looks to be in pretty bad shape. Let's investigate this and help fixing upstream if needed.
UPDATE: I could finally make GFX stack work (mostly). This is how it works. * We have a kernel (4.2.1) with patches for the VC4 GPU, via DRM drivers. I needed to patch it  to support one of the pixel format we use in Gecko with the boot animation . * We are using Eric Anholt's drm_gralloc fork, because it has the patches for VC4 support, but the drm_gralloc fork version is outdated. I needed to patch this gralloc  version: to support newer kernel DRM drivers mostly, to add support for other pixel formats and to accommodate our build system. * We are using freedesktop Mesa library implementation for OpenGLES on it's latest release. In this release, there's not a good Android support yet (is coming for next releases..) so I needed to patch it  because Gecko is relying on this support for the GFX stack. I fixed some other pixel format related stuff and build system integration as well. Problems detected so far: * There are glitches rendering some of the components in Gaia. These are probably happening because there's not a good support for pitch alignment in the gralloc component . * We are not using hardware VSYNC because this is implemented via HWComposer on Android, but the HWComposer we have is v1.0, which is not supported by Gecko.  https://github.com/mozilla-b2g/rpi-linux/commit/bab892ec0e48bb8e11c9e1227e6ab6f206a48583  https://dxr.mozilla.org/mozilla-central/rev/0629918a09ae87808efdda432d7852371ba37db6/widget/gonk/libdisplay/GonkDisplayJB.cpp#70  https://github.com/mozilla-b2g/gralloc-rpi2b/commit/7de9af717088fec07f82ad0a2cb58ff396e5936e  https://github.com/mozilla-b2g/external_mesa3d/commit/278e6db39c7ccf3639d726c33e0fbe12bbcc990e  https://github.com/mozilla-b2g/gralloc-rpi2b/blob/vc4-ffos/gralloc_drm_vc4.c#L114