drm-hwcomposer merge requestshttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests2020-01-16T18:33:28Zhttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/85Add check to vsync routine to avoid crash on callback2020-01-16T18:33:28ZRoman KovalivskyiAdd check to vsync routine to avoid crash on callbackVsync could be disabled during routine being running and this could potentially lead to crash on callback invocation. Crash happens if VSyncControl(false) was called when Routine has cached callback and
unlocked mutex but haven't callbac...Vsync could be disabled during routine being running and this could potentially lead to crash on callback invocation. Crash happens if VSyncControl(false) was called when Routine has cached callback and
unlocked mutex but haven't callback yet. At this point we can't be sure that callback is still valid so invoking it is incorrect behaviour.
Second check if vsync is enabled drastically shortens window when we could go into invalid state, from the whole vblank invocation to several machine instructions between check and invocation.
Please note that we can't check against cached value in this case, therefore operations on this flag should be atomic instead.
This issue was discovered during VTS testing, SetVsyncEnabled testcase occasionally crashed drm_hwcomposer process and that created invalid state for any following testcases:
| Module | Passed | Failed | Total Tests |
| ------ | ------ | ----- | ---------- |
| arm64-v8a VtsHalGraphicsComposerV2_1Target | 31 | 22 | 53 |
| armeabi-v7a VtsHalGraphicsComposerV2_1Target | 31 | 22 | 53 |
VTS tests after this fix:
| Module | Passed | Failed | Total Tests |
| ------ | ------ | ----- | ---------- |
| arm64-v8a VtsHalGraphicsComposerV2_1Target | 51 | 2 | 53 |
| armeabi-v7a VtsHalGraphicsComposerV2_1Target | 51 | 2 | 53 |https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/32Add commit message validation to checkstyle job2018-09-05T12:50:38ZSean Paulseanpaul@chromium.orgAdd commit message validation to checkstyle jobPulls commit validation into a dedicated script and adds commit message validation.Pulls commit validation into a dedicated script and adds commit message validation.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/87Add fallback to client for layers flattening2020-02-19T21:02:03ZRoman KovalivskyiAdd fallback to client for layers flatteningGoogle recommends to delegate composition to GLES instead of HWC when screen isn't updating to conserve power, as stated on [this](https://source.android.com/devices/graphics/implement-hwc) page.
Current implementation of hwcomposer h...Google recommends to delegate composition to GLES instead of HWC when screen isn't updating to conserve power, as stated on [this](https://source.android.com/devices/graphics/implement-hwc) page.
Current implementation of hwcomposer has flattening of layers if after some time there were no updates of frames, but it uses writeback connector. Not every device has a support of writeback feature, so
some sort of fallback should be provided.
It is possible to fallback to client composition in case if writeback isn't available. This is used to reduce power consumption since squashing layers into a single layer on GPU and then using that buffer is more efficient than loading drm device.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/108Add feature to search for KMS card2020-07-27T22:59:46ZMatvii ZorinAdd feature to search for KMS cardIn the case of absence of the "hwc.drm.device" system property we have no guarantee that "/dev/dri/card0" device will be especially KMS DRI card.
This MR adds the search of the first matched KMS device.In the case of absence of the "hwc.drm.device" system property we have no guarantee that "/dev/dri/card0" device will be especially KMS DRI card.
This MR adds the search of the first matched KMS device.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/54Add Imagination GFX support2022-04-24T07:06:24ZMykhailo SopihaAdd Imagination GFX supportThis patches add imagination GFX support for beagle_x15board and am57xevmboard (a modification of beagle_x15board + LCD display with touchscreen):
fa025b4fe7686fd1af5815a38d7e99a59f7ee727 adds Imagination GFX in scope of beagle_x15 proje...This patches add imagination GFX support for beagle_x15board and am57xevmboard (a modification of beagle_x15board + LCD display with touchscreen):
fa025b4fe7686fd1af5815a38d7e99a59f7ee727 adds Imagination GFX in scope of beagle_x15 project.
99715bebedbe291a0b6236b42a89daea6b1da2c8 adds LCD panel support as internal display.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/64Add Imagination platform support v22019-11-20T22:09:23ZRoman StratiienkoAdd Imagination platform support v2Finalization of !54
Depends on !69
External `Android.bp` file should be created in order to build this module:
```
cc_library_shared {
name: "hwcomposer.drm_imagination",
defaults: ["hwcomposer.drm_defaults"],
...Finalization of !54
Depends on !69
External `Android.bp` file should be created in order to build this module:
```
cc_library_shared {
name: "hwcomposer.drm_imagination",
defaults: ["hwcomposer.drm_defaults"],
srcs: [":drm_hwcomposer_platformimagination"],
whole_static_libs: ["drm_hwcomposer"],
shared_libs: ["libion"],
include_dirs: [
"path/to/imgtec/include/files",
],
}
```
Imagination provides different headers that should match their gralloc proprietary binary.
These headers are redefine/extending existing HAL_PIXEL_FORMAT_XXXX definitions.
Some of them are available publicly:
https://android.googlesource.com/platform/hardware/intel/img/hwcomposer/+/refs/heads/master/merrifield/include/pvr/hal/img_gralloc_common_public.h
https://github.com/xen-troops/android_external_drm_hwcomposer/blob/android-9.0.0_r3-xt0.2/img_gralloc_common_public.h
https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/61Add non hwfb filtering to generic drm importer and LCD panel support2019-07-12T22:38:25ZMykhailo SopihaAdd non hwfb filtering to generic drm importer and LCD panel supportThis merge request is about adding additional filtering option to generic drm importer, and adding LCD panel.
I have finished the effort around adjusting IMG handle from the internal type to gralloc_handle_t.
As was noticed - addit...This merge request is about adding additional filtering option to generic drm importer, and adding LCD panel.
I have finished the effort around adjusting IMG handle from the internal type to gralloc_handle_t.
As was noticed - additional filtering of non hwfb handles can be required for generic drm importer. This option was added so that the default behavior is not changed unless hwc.drm.exclude_non_hwfb_imports option is set to non-zero value.
LCD panel (represented as DRM_MODE_CONNECTOR_DPI) was added for Texas Instruments LCD boards support.
https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/80Add simplistic implementations for SetColorTransform and SetLayerColor2019-12-17T01:04:33ZRoman KovalivskyiAdd simplistic implementations for SetColorTransform and SetLayerColorSeveral VTS testcases for VtsHalGraphicsComposerV2_1Target fails since required functions (SetColorTransform and SetLayerColor) is marked as unsupported by drm_hwcomposer. We can't make complete implementation of those features for our p...Several VTS testcases for VtsHalGraphicsComposerV2_1Target fails since required functions (SetColorTransform and SetLayerColor) is marked as unsupported by drm_hwcomposer. We can't make complete implementation of those features for our platform for now, so this is acceptable way to pass tests for us.
Commit da5839cf9258 ("drm_hwcomposer: Add support for GetColorModes & SetCursorPosition") implements GetColorModes and SetCursorPosition simply by adding fields that store this values for future uses. Therefore we assume that it is okay to use this approach to at least support interface part.
This MR fixes two testcases, for SET_COLOR_TRANSFORM and SET_LAYER_COLOR. VTS test results before changes for our case:
| Module | Passed | Failed | Total Tests |
| ------ | ------ | ----- | ---------- |
| arm64-v8a VtsHalGraphicsComposerV2_1Target | 31 | 22 | 53 |
| armeabi-v7a VtsHalGraphicsComposerV2_1Target | 31 | 22 | 53 |
VTS tests after adding simplistic implementation:
| Module | Passed | Failed | Total Tests |
| ------ | ------ | ----- | ---------- |
| arm64-v8a VtsHalGraphicsComposerV2_1Target | 33 | 20 | 53 |
| armeabi-v7a VtsHalGraphicsComposerV2_1Target | 33 | 20 | 53 |https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/115Add support for color encoding and range properties2021-01-30T13:52:53ZMatvii ZorinAdd support for color encoding and range propertiesStarting from linux-v4.17 drm module have support for different non-RGB color encodings are controlled through-plane specific COLOR_ENCODING and COLOR_RANGE properties.
This PR creates a matching between the hwc layer dataspace which is...Starting from linux-v4.17 drm module have support for different non-RGB color encodings are controlled through-plane specific COLOR_ENCODING and COLOR_RANGE properties.
This PR creates a matching between the hwc layer dataspace which is supported by drm driver and drm plane properties.
Corresponding to the [Glodroid issue#78](https://github.com/GloDroid/glodroid_manifest/issues/78).https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/28Add support for P+ environments2018-08-31T18:44:28ZJohn StultzAdd support for P+ environmentsOriginally-by: Alistair Strachan <astrachan@google.com>
With Android P, the GraphicBufferMapper ImportBuffer interface
has changed, which breaks the current drm_hwcomposer master
branch:
https://android.googlesource.com/platform/fr...Originally-by: Alistair Strachan <astrachan@google.com>
With Android P, the GraphicBufferMapper ImportBuffer interface
has changed, which breaks the current drm_hwcomposer master
branch:
https://android.googlesource.com/platform/frameworks/native/+/dbbe33b95336efa74e8bb4ebcf6cba50919aa247
Alistair has updated the AOSP/master branch of drm_hwcomposer to
make it build:
https://android.googlesource.com/platform/external/drm_hwcomposer/+/4f73630dcdab6604a3f4b3e7d59068633d923745%5E2..4f73630dcdab6604a3f4b3e7d59068633d923745/
But since we need to keep older users working, so I've forward
ported and conditionalized the code so both new and old users
can properly build.
Also includes fixes for the FIXME issues Alistair pointed out in the initial patch.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/65Android VTS error handling2019-10-22T14:00:12ZVincent DonnefortAndroid VTS error handlingThe Android VtsHalGraphicsComposerV2_1TargetTest VTS test suite will fail with drm-hwcomposer. Some of the tests from this suite are running wrong HWC2 calls, which aren't handled nicely by drm-hwcomposer. This PR intends to fix them. Th...The Android VtsHalGraphicsComposerV2_1TargetTest VTS test suite will fail with drm-hwcomposer. Some of the tests from this suite are running wrong HWC2 calls, which aren't handled nicely by drm-hwcomposer. This PR intends to fix them. This has been tested with AOSP 10.0.0_r2.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/176Another attempt to fix hikey issue2022-01-13T02:58:26ZRoman StratiienkoAnother attempt to fix hikey issuehttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/174Assorted CI and code improvements2022-01-12T22:49:13ZRoman StratiienkoAssorted CI and code improvementshttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/182Assorted commits 2022w032022-01-25T09:33:30ZRoman StratiienkoAssorted commits 2022w03This series was extracted from !180 to make it a bit cleaner.
Mostly cleanups, but it also brings initial headless mode support. SF now won't crash and allow running Android without display connected.This series was extracted from !180 to make it a bit cleaner.
Mostly cleanups, but it also brings initial headless mode support. SF now won't crash and allow running Android without display connected.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/186Assorted fixes 2022 week 052022-02-01T09:35:12ZRoman StratiienkoAssorted fixes 2022 week 05Extracted from !180 to simplify it.Extracted from !180 to simplify it.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/130Build fixes pie-x86 w45 20202022-02-09T17:00:56ZmaurossiBuild fixes pie-x86 w45 2020Sending Merge Request for review
Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/45Sending Merge Request for review
Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/45https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/1Catch the gitlab tree up with freedesktop.org2018-03-20T12:55:00ZSean Paulseanpaul@chromium.orgCatch the gitlab tree up with freedesktop.orgLooks like we missed a commit when migrating.Looks like we missed a commit when migrating.Sean Paulseanpaul@chromium.orgSean Paulseanpaul@chromium.orghttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/143Ci improvements2021-03-03T10:20:02ZRoman StratiienkoCi improvements* Upgrade to clang-11
* Initial build and clang-tidy checks
Build android-agnostic code in linux environment.
Enable static code analysis using clang-tidy.
* Check Android.bp files style* Upgrade to clang-11
* Initial build and clang-tidy checks
Build android-agnostic code in linux environment.
Enable static code analysis using clang-tidy.
* Check Android.bp files stylehttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/26clang-format upgrade2018-08-27T18:02:32ZSean Paulseanpaul@chromium.orgclang-format upgradeclang-format-5.0 gives us a bit more control, so it'd be nice to take advantage of that.
The second patch I'm not so sure about, is it worth unifying everything at the risk of muddling up blame history?clang-format-5.0 gives us a bit more control, so it'd be nice to take advantage of that.
The second patch I'm not so sure about, is it worth unifying everything at the risk of muddling up blame history?https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/139Cleanup composition creation dependencies2021-04-26T06:19:14ZMatvii ZorinCleanup composition creation dependenciesThis MR is a part of general composition creation refactoring but includes only small independent changes. Requested by this comment - https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/136#note_795911.
Relate...This MR is a part of general composition creation refactoring but includes only small independent changes. Requested by this comment - https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/136#note_795911.
Related MRs: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/136 and https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/138