commit | 1542d29a538683250b818922527aec33774c793b | [log] [tgz] |
---|---|---|
author | Alexandru Gheorghe <alexandru-cosmin.gheorghe@arm.com> | Wed Jun 13 16:46:36 2018 +0100 |
committer | Alexandru Gheorghe <alexandru-cosmin.gheorghe@arm.com> | Thu Jun 14 10:32:37 2018 +0100 |
tree | 44b683c6339fc14eafd949e8142440236120b86b | |
parent | 4f6c62e978a02c78c6ae4e9707f0cb0a174f5721 [diff] |
drm_hwcomposer: Set client composition buffer at the bottom. Currently, we allocate layers to device composition from bottom to top and save the last DrmPlane from the top to be used by the client target buffer. However, we don't know much about client layer, so information for layers which we decided to set as ClientComposition, will be lost. For example, in BlendMode case if we have the following scene, with 2 DrmPlanes available. z0: LAYER0 AR24 BlendNone. z1: LAYER1 AR24 BlendPremulti. z2: LAYER2 AR24 BlendPremulti. We decide: z0: LAYER0 DeviceComposition z1: LAYER1 ClientComposition z2: LAYER2 ClientComposition LAYER1+LAYER2 will be in client target buffer, but we don't know nothing about the blending for client_target_layer. Which Android actually expects to be still BlendPremulti. So, we are kind of stucked we the default value which is BlendNone. I think there are two ways to solve this issue: 1) This commit, allocate layers as DeviceComposition from top to bottom and save the bottom for ClientComposition. 2) A smarter logic for detecting what should be the actual properties of client_layer_target, but I still think it makes more sense to actually have the client_layer_target at the bottom. Signed-off-by: Alexandru Gheorghe <alexandru-cosmin.gheorghe@arm.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-3.5 -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!