Investigate hardware rendering on RPi2

NEW
Unassigned

Status

Firefox OS
GonkIntegration
2 years ago
2 years ago

People

(Reporter: gerard, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

2 years ago
Currently, upstream (AOSP/RPi2) hardware rendering looks to be in pretty bad shape. Let's investigate this and help fixing upstream if needed.
(Reporter)

Updated

2 years ago
Blocks: 1225139
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 [1] to support one of the pixel format we use in Gecko with the boot animation [2].
* 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 [3] 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 [4] 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 [5].
* 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.


[1] https://github.com/mozilla-b2g/rpi-linux/commit/bab892ec0e48bb8e11c9e1227e6ab6f206a48583
[2] https://dxr.mozilla.org/mozilla-central/rev/0629918a09ae87808efdda432d7852371ba37db6/widget/gonk/libdisplay/GonkDisplayJB.cpp#70
[3] https://github.com/mozilla-b2g/gralloc-rpi2b/commit/7de9af717088fec07f82ad0a2cb58ff396e5936e
[4] https://github.com/mozilla-b2g/external_mesa3d/commit/278e6db39c7ccf3639d726c33e0fbe12bbcc990e
[5] https://github.com/mozilla-b2g/gralloc-rpi2b/blob/vc4-ffos/gralloc_drm_vc4.c#L114
You need to log in before you can comment on or make changes to this bug.