|1897fd6||2021-04-11 04:07:51||Mauro Rossi||r-x86 Link against firstname.lastname@example.org...|
|1eac35e||2021-04-11 04:04:56||Mauro Rossi||Link against email@example.com|
|cd13934||2020-05-16 18:49:58||Mauro Rossi||q-x86 Merge remote-tracking branch 'goffioul/master'|
|1ebf97d||2019-10-10 02:51:07||Michael Goffioul||Add CAP_NET_ADMIN capability This is required to use uev...|
|2b29f0e||2019-10-10 00:58:16||Michael Goffioul||Always enable vsync thread when requested by surfacefling...|
|d38f15c||2019-10-10 00:56:55||Michael Goffioul||Link against firstname.lastname@example.org|
|f53f172||2019-06-10 07:26:46||Mauro Rossi||pie-x86 disable drmfb-composer service by default In order to st...|
|9084741||2019-05-08 19:12:13||lambdadroid||Android.mk: Allow setting a custom minigbm path|
|8f89cef||2019-04-21 21:56:24||lambdadroid||sepolicy: Add simple sepolicy for drmfb-composer|
|d82ffb9||2019-01-17 03:10:39||lambdadroid||Avoid logging handlePageFlip() warning after disconnect ...|
|r-x86||1897fd6||2021-04-11 04:07:51||Mauro Rossi||Link against android.hardwa...|
|q-x86||cd13934||2020-05-16 18:49:58||Mauro Rossi||Merge remote-tracking branc...|
|pie-x86||f53f172||2019-06-10 07:26:46||Mauro Rossi||disable drmfb-composer serv...|
drmfb-composer is a simple HIDL HAL implementation of [
Linux DRM legacy Kernel Mode Setting.
It specifically does not make use of Atomic Mode Setting to support older hardware and kernels.
Note: For newer devices with stable Atomic Mode Setting support, prefer using drm_hwcomposer. It is a more complete implementation that can offload parts of the composition from the GPU to hardware. (See Comparison to drm_hwcomposer)
drmfb-composer is mostly a proof of concept: it is a Graphics Composer HAL that works very much like the old Framebuffer (FB) HALs. This allows implementing additional features like multiple display support, while still supporting all old hardware.
The main difference from implementations like drm_hwcomposer is that it does not do any composition in hardware. It only handles displaying the results of client (GPU) composition in SurfaceFlinger using Kernel Mode Setting. That makes it less efficient, but avoids use of Atomic Mode Setting and multiple planes that sometimes cause issues on older hardware.
It has also turned out to be a great learning experience, especially to understand which features are supposed to be provided by a Graphics Composer HAL, and how they can be implemented using DRM/KMS.
drm_hwcomposer is a more complete and efficient implementation of a HWC2 HAL implemented using Atomic Mode Setting. However, it does not run on older hardware without Atomic Mode Setting (e.g. radeon) in the kernel.
OUT_FENCE_PTRonly exist as properties for Atomic Mode Setting
drm_gralloc was one of the first Gralloc HAL implementations for DRM and used to implement a Framebuffer HAL that is still being used in Android-x86 today. drmfb-composer has a couple of advantages compared to drm_gralloc:
email@example.com(a header library drmfb-composer is built on) does not exist on previous Android versions
Add drmfb-composer to your Android build tree and build
drmfb-composer is a binderized HIDL HAL service. Ensure that the binary and init file is pushed to your device:
sepolicy contains a simple SELinux Policy definition for drmfb-composer.
You can include it in the build by adding the directory to