commit | a148f21336adb103964fea1d2cacc3f408715c4b | [log] [tgz] |
---|---|---|
author | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | Tue Nov 16 18:23:18 2021 +0200 |
committer | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | Thu Dec 02 14:35:08 2021 +0200 |
tree | cb25cc6537424661b03473469608760abc3e82a5 | |
parent | 0ee8f58b93a037c5a54bb0a05c12228845a70a76 [diff] |
drm_hwcomposer: Rework display modes handling Android likes to adapt display output frequency to match window context frequency. Unfortunately platform code has some limitations, therefore hwcomposer HAL should be careful with reporting supported display modes. Known platform limitations: 1: Framework doesn't distinguish between interlaced/progressive modes. 2. Framework will not switch display frequency in case margin in FPS rate is very small (<1FPS or so). Not a big issue, but that is causing some CTS tests to fail. In addition to that VRR technology (or seamless mode switching) require hwcomposer to group modes which tells the framework that seamless mode configuration change is supported within a group of display modes. By this commit do the following: 1. Group modes by the resolution: E.g. Group 1: 1024x768i@60 1024x768i@90 1024x768@50 1024x768@50.1 Group 2: 1920x1080@60 1920x1080@24.3 1920x1080i@60 1920x1080i@120 2. Disable modes in a way that each group keeps only interlaced or proressive modes enabled. In case KMS reported preferred mode is interlaced - prefer interlaced for the whole group, otherwise prefer progressive. 3. Disable mode in case different mode in the same group has similar frequency with delta less than 1FPS. 4. Report only modes which remain enabled to the framework. Test: atest CtsGraphicsTestCases Signed-off-by: Roman Stratiienko <roman.o.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-12 -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!