commit | b2e9fe23cdb5ed99186b26be7eed8f1f26f65966 | [log] [tgz] |
---|---|---|
author | Roman Stratiienko <r.stratiienko@gmail.com> | Sat Oct 03 10:52:36 2020 +0300 |
committer | Roman Stratiienko <r.stratiienko@gmail.com> | Tue Oct 20 23:19:42 2020 +0300 |
tree | 6da6e6fb22e4a24e9e4186f6e3562c15a84d8b16 | |
parent | 946126c9b3d7db49413664578ef569e48a85b439 [diff] |
drm_hwcomposer: refactor platform directory Motivation: Platform term meaning used in drm_hwcomposer does not correspond to the content of the platform directory. Platform directory consists of: 1. Buffer information getters for different gralloc (currently called platform). 2. Composition planner logic (which has flaws and should be reworked into layer->plane mapping during validation stage logic). 3. DrmGenericImpoter with reference counting logic. Android-11 IMapper@4 metadata API offers a generic way to access buffer information which makes other gralloc buffer information getters obsolete. Legacy getters should be maintained for some time until all known users will migrate to Mapper@4 API. Implementation: 1. Split 'PlatformImporter' logic to 'Importer' only and 'Buffer Getter' logic. a. Remove buffer_handle_t parameter from ImportBuffer(). Instead user should get BufferInfo using ConvertBoInfo to struct hwc_drm_bo_t, then use it for ImportBuffer(). b. Move DrmGenericImporter.{cpp/h} into the drm directory. 2. Isolate planner code in single file and move it to compositor directory as compositor/Planner.{cpp/h} 3. Rename platform definition a. Rename platform directory to bufferinfo. b. Rename/move bufferinfo/platorm*.{cpp,h} getters to bufferinfo/legacy/BufferInfo*.{cpp,h}. Align class names/includes. 4. Split legacy/metadata getters logic. a. Apply existing bufferinfogetter base class only for legacy getters. b. Combine legacy/generic gettera under new base class. c. Create a placeholder for generic(metadata) getter. Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
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 gitlab.freedesktop.org
drm_hwcomposer is Apache 2.0 Licensed and we require contributions to follow the developer's certificate of origin: http://developercertificate.org/
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-5.0 -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!