Merge remote-tracking branch 'gitlab/main' into HEAD

This updates the AOSP/master branch to include the current
upstream gitlab/main branch, which includes a fair amount of

Most are connected to the gitlab CI improvements, but there
are also a fair amount of code cleanups and new functionality
like composer@2.4 support.

* gitlab/main:
  drm_hwcomposer: update README for clang-format-diff-11 and touch up formatting
  drm_hwcomposer: remove unused variable blend
  drm_hwcomposer: reject rotations reported as unsupported by hardware
  drm_hwcomposer: add DRM_PROPERTY_TYPE_BITMASK
  drm_hwcomposer: Fix regression after composition creation cleanup
  drm_hwcomposer: Move ValidatePlane method into DrmPlane
  drm_hwcomposer: Remove useless setters from DrmHwcLayer
  drm_hwcomposer: Add GetOrderLayersByZPos method
  drm_hwcomposer: Move HardwareSupportsLayerType into Backend
  drm_hwcomposer: Move MarkValidated into Backend
  drm_hwcomposer: Add GetExtraClientRange method
  drm_hwcomposer: Move CalcPixOps into Backend
  drm_hwcomposer: Remove ctrc from DrmCompositionPlane
  drm_hwcomposer: Remove SquashState class declaration
  drm_hwcomposer: Remove DrmCompositionDisplayLayersMap
  drm_hwcomposer: Remove DrmCompositionRegion struct
  drm_hwcomposer: Cleanup DrmDisplayComposition initialization
  drm_hwcomposer: CI: Increase coverage
  drm_hwcomposer: CI: Pull headers from the AOSPv11
  drm_hwcomposer: Fix client range selection logic
  drm_hwcomposer: Remove writeback-based flattening logic
  drm_hwcomposer: add missing HAL pixel format
  drm_hwcomposer: CI: Add more source files to the build
  drm_hwcomposer: clang-tidy: enable cppcoreguidelines-* checks
  drm_hwcomposer: clang-tidy: enable clang-analyzer-* checks
  drm_hwcomposer: enable code analysis using clang-tidy
  drm_hwcomposer: CI: Use bpfmt to check Android.bp files style
  drm_hwcomposer: CI: Initial build and clang-tidy checks
  drm_hwcomposer: CI: Use clang-11 for the CI
  drm_hwcomposer: Create make target to test filegroups
  drm_hwcomposer: Fix drmSetMaster() usage
  drm_hwcomposer: Initial composer@2.4 HAL support
  drm_hwcomposer: Add support for color encoding and range properties
  drm_hwcomposer: Add minigbm video and format_modifier support
  drm_hwcomposer: Support unique fd for every YUV plane
  drm_hwcomposer: Ensure composer has master access to DRM/KMS
  drm_hwcomposer: Reorganize modifiers handling logic
  drm_hwcomposer: libdrmgetter: fix RGB565 format translation

Change-Id: I3a9801bd858bc869844ac5d2d81383767029b09e
Signed-off-by: John Stultz <>
tree: e342b8f25b0bd373404791175aaec467c5298354
  1. .ci/
  2. backend/
  3. bufferinfo/
  4. compositor/
  5. drm/
  6. include/
  7. tests/
  8. utils/
  9. .clang-format
  10. .clang-tidy
  11. .gitlab-ci.yml
  12. Android.bp
  13. DrmHwcTwo.cpp
  14. DrmHwcTwo.h
  17. NOTICE
  18. OWNERS


Patches to drm_hwcomposer are very much welcome, we really want this to be the universal HW composer implementation for Android and similar platforms. So please bring on porting patches, bugfixes, improvements for documentation and new features.

A short list of contribution guidelines:

  • Submit changes via gitlab merge requests on

  • drm_hwcomposer is Apache 2.0 Licensed and we require contributions to follow the developer's certificate of origin:

  • When submitting new code please follow the naming conventions documented in the generated documentation. Also please make full use of all the helpers and convenience macros provided by drm_hwcomposer. The below command can help you with formatting of your patches:

    git diff | clang-format-diff-11 -p 1 -style=file
  • Hardware specific changes should be tested on relevant platforms before committing.

If you need inspiration, please checkout our TODO issues.

Happy hacking!