Android’s SurfaceFlinger, a system service responsible for compositing all the system and application surfaces into a single buffer uses the HWC API. However, at the moment, the HWC API is not supported on the mainline Linux graphics stack. This is where the drm_hwcomposer shim developed by Collabora comes into play. When Linux kernel 4.10 was released, we told you that ten Collabora’s developers contributed 39 patches, including fence support that is on par to that of Android’s. Based on that work, the devs enabled the drm_hwcomposer shim also to support the new HWC2 API used in newer Android versions, such as Nougat.