commit | 0d1a2cdbdf1fa126735f49f07f709a6a501aea52 | [log] [tgz] |
---|---|---|
author | Roman Stratiienko <roman.stratiienko@globallogic.com> | Thu Nov 28 17:51:16 2019 +0200 |
committer | Roman Stratiienko <roman.stratiienko@globallogic.com> | Wed Dec 04 17:04:34 2019 +0200 |
tree | 87a59234db66d25817e324e74456202d1ae6b937 | |
parent | c56eede3396a4a8aa26126e20bf6d174a6a75f7c [diff] |
drm_hwcomposer: Introduce dumpsys metrics To make optimal performance/power consumption ratio we want to use composing by dedicated hardware to merge as much as possible composition cases. We are going to continuously optimize and improve drm_hwcomposer HAL, that makes high demand on formal validation process. Introduce "pixel operation" definition. It should be in direct ratio with power consumption, but currently it roughly calculated as sum of pixels merged by each layer. In some future we should apply some average gains depending of operation type to calculate pixops more precisely. (e.g. scaling should take more pixops than blending, and blending should take more that copying, etc.). Using pixops could be very helpful when drm_hwc HAL have a choice which layer sets to merge by GPU, making possible minimal energy model based planning. Create statistics of the following events: 1. Total frames count 2. Total pixel operations 3. Pixel operations validated to use GPU (CLIENT) 4. Calculate composer efficiency: DEVICE/TOTAL operations ratio 5. Failed atomic validation commits count 6. Failed atomic presenting commits count Usage: - $ adb shell dumpsys SurfaceFlinger Statistics will be shown at the end of the dump in 2 forms: 1. Since system launched 2. Since last dumpsys command called Using statistics for the regression slope monitoring example: 1. Boot the board without the change 2. Use touch or keyboard (avoid using of mouse pointer) to do some predefined actions (open application, start video, etc.) 3. Save the metrics 4. Boot the board with the change 5. Do exactly the same actions as in (2) 6. Save the metrics 7. Use metrics before and after change to indicate regression slope Signed-off-by: Roman Stratiienko <roman.stratiienko@globallogic.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!