drm-hwcomposer merge requestshttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests2022-01-10T14:19:20Zhttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/175drm_hwcomposer: Restore DPMS setting for legacy platforms2022-01-10T14:19:20ZRoman Stratiienkodrm_hwcomposer: Restore DPMS setting for legacy platformsAims to fix #59Aims to fix #59https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/177drm_hwcomposer: Send crtc.active and crtc.mode together with the frame2022-01-12T08:27:23ZJohn Stultzdrm_hwcomposer: Send crtc.active and crtc.mode together with the frameOn HiKey/HiKey960 boards, enabling the crtc before the first
composition is set can cause trouble, as part of the display
engine is configured in the atomic plane update method.
So when commit 36a7f28516a4 ("drm_hwcomposer: Rework displ...On HiKey/HiKey960 boards, enabling the crtc before the first
composition is set can cause trouble, as part of the display
engine is configured in the atomic plane update method.
So when commit 36a7f28516a4 ("drm_hwcomposer: Rework display
Mode Setting and DPMS handling"), which reworked the dpms and
modeset logic to commit the modeset immediately, landed it
caused bootup regressions on those boards.
Talking with others it seems other drivers likely may have
issues trying to enable the crtc without a plane.
Thus this patch changes the logic to queue modesets so they
are submitted with the initial composition. Similarly it
removes the crtc activation, as the initial composition will
implicitly activate the crtc.
Fixes: 36a7f28516a4 ("drm_hwcomposer: Rework display Mode Setting and DPMS handling")
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
[jstultz: Added commit message, reworked a comment]
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Ie4d1f967da052b0b3ef73257c2ca76b30504a6c2https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/181drm_hwcomposer: fix sign-compare building error in uevent listener2022-02-10T09:14:57Zmaurossidrm_hwcomposer: fix sign-compare building error in uevent listener```
d26619b5 ("drm_hwcomposer: CI: Upgrade clang-* to v12") declared 'ret' as ssize_t
but after commit 1e053b4e ("drm_hwcomposer: Make uevent listener standalone")
drm/UEventListener.cpp is affected by the following builing error:
exter...```
d26619b5 ("drm_hwcomposer: CI: Upgrade clang-* to v12") declared 'ret' as ssize_t
but after commit 1e053b4e ("drm_hwcomposer: Make uevent listener standalone")
drm/UEventListener.cpp is affected by the following builing error:
external/drm_hwcomposer/drm/UEventListener.cpp:82:28:
error: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'ssize_t' (aka 'int') [-Werror,-Wsign-compare]
for (uint32_t i = 0; i < ret;) {
~ ^ ~~~
1 error generated.
Fixes: 1e053b4e ("drm_hwcomposer: Make uevent listener standalone")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
```https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/183Draft: drm_hwcomposer: Special handling of the most bottom plane2023-09-19T22:24:36ZRoman StratiienkoDraft: drm_hwcomposer: Special handling of the most bottom planeSome of DRM/KMS drivers has no planes with formats which Android requires,
but in some cases it's possible to modify the format of the buffer,
making such planes usable without any drawbacks.Some of DRM/KMS drivers has no planes with formats which Android requires,
but in some cases it's possible to modify the format of the buffer,
making such planes usable without any drawbacks.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/185drm_hwcomposer: Check for NaN refresh in VSyncWorker2022-01-25T18:28:55ZJason Macnakdrm_hwcomposer: Check for NaN refresh in VSyncWorker... to avoid a FPE_INTDIV noticed on Cuttlefish. I believe this
happens when the VSyncWorker starts working before an active
has been set.
Signed-off-by: Jason Macnak <natsu@google.com>... to avoid a FPE_INTDIV noticed on Cuttlefish. I believe this
happens when the VSyncWorker starts working before an active
has been set.
Signed-off-by: Jason Macnak <natsu@google.com>https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/192drm_hwcomposer: Add and use vintf fragment2023-01-02T17:36:58ZJason Macnakdrm_hwcomposer: Add and use vintf fragment... to specify supported hwcomposer version with drm_hwcomposer.
This is useful for Cuttlefish which can have the option to build with different hwcomposers for testing when the different hwcomposers support different versions.... to specify supported hwcomposer version with drm_hwcomposer.
This is useful for Cuttlefish which can have the option to build with different hwcomposers for testing when the different hwcomposers support different versions.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/193Small rework of internal structures2022-05-17T10:01:38ZRoman StratiienkoSmall rework of internal structureshttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/198drm_hwcomposer: Experimental: Allow HWC to skip frames2022-05-19T08:56:20ZRoman Stratiienkodrm_hwcomposer: Experimental: Allow HWC to skip frames... instead of blocking the thread.
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>... instead of blocking the thread.
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/199Draft: drm_hwcomposer: Be more careful with returning the release fences2023-01-02T17:31:54ZRoman StratiienkoDraft: drm_hwcomposer: Be more careful with returning the release fencesDon't return release fence for layer in case buffer wasn't updated.Don't return release fence for layer in case buffer wasn't updated.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/203Fix EINTR handling in clock_nanosleep2022-06-22T04:09:25ZMok KeithFix EINTR handling in clock_nanosleepclock_nanosleep return errno directly
instead of -1 with errno set
Signed-off-by: Keith Mok <keithmok@google.com>clock_nanosleep return errno directly
instead of -1 with errno set
Signed-off-by: Keith Mok <keithmok@google.com>https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/216drm_hwcomposer: Introduce YAGI bufferinfo supplier2023-09-19T22:24:23ZRoman Stratiienkodrm_hwcomposer: Introduce YAGI bufferinfo supplierDepends on !214
YAGI stands for Yet Another Gralloc Interface.
Despite gralloc4 API became standard interface requird by VTS, some of
existing grallocs in AOSP still does not provide it, and probably won't.
YAGI should help to both k...Depends on !214
YAGI stands for Yet Another Gralloc Interface.
Despite gralloc4 API became standard interface requird by VTS, some of
existing grallocs in AOSP still does not provide it, and probably won't.
YAGI should help to both keep drm_hwc codebase clean and allow AOSP
maintainers to advance their bufferinfo supplier independently.
Also current legacy getters aren't covering all grallocs variant,
which will be possible with YAGI.
YAGI represents a shared library with 3 symbols:
- yagi_init
- yagi_destroy
- yagi_perform
Selecting YAGI require setting sysprop in device.mk file, e.g.:
PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.drm.yagi.lib=libyagi_abc.so
YAGI smooth transition is planned to be accomplished in 4 steps:
1. Merge YAGI support into drm_hwcomposer.
2. Merge drm_hwcomposer into AOSP.
3. Replace all AOSP drm_hwc variants with YAGI library.
4. Remove legacy bufferinfo getters from drm_hwc.
YAGI libraries can be also used with more android graphics components,
e.g.: mesa3d, codecs, camera HAL, wayland_hwc, etc.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/224drm_hwcomposer: Make compositor frontend-agnostic2023-09-19T22:24:15ZRoman Stratiienkodrm_hwcomposer: Make compositor frontend-agnostic