1
0
Fork 0
No description
Find a file
Su Hong Koo a0f6ed9cc7 drm_hwcomposer: Wait for next present fence earlier in present
Currently, drm_hwcomposer has two main ways to lock up in the
composition hot path:

1. HwcDisplay::WaitForPresenttime(), where it looks at the expected
present time of the frame and sleeps until it is close to it (0.75
vsync period away from the target vsync).

2. DrmAtomicStateManager::WaitLastFrame(), where it waits on the
present fence of the last commit so that we don't call commit when
another present is pending

These are called in-order, which in certain multi-display configuration
with heterogenous refresh rates can lead to the slower display locking
up due to sleep in WaitForPresenttime().

This CL makes DrmAtomicStateManager::WaitLastFrame() public, and moves
its invocation to right before the call to
HwcDisplay::WaitForPresenttime(). This should minimize the impact of
WaitForPresenttime(), and allow drm_hwcomposer to hit more present
targets that it can hit.

Test: atest GraphicsComposerAidlCommandTest
Test: Manual testing w/ perfetto

Change-Id: Ic9c07ff0b6d00dfafce5dd109d8195886dd3094e
Signed-off-by: Su Hong Koo <sukoo@google.com>
2025-09-18 13:24:44 -06:00
.ci drm_hwcomposer: CI: Add vts job for multi-displays 2025-09-17 16:41:25 -07:00
backend drm_hwcomposer: Change cursor composition testing 2025-09-11 13:16:49 +00:00
bufferinfo drm_hwcomposer: Migrate to android::drm_hwcomposer namespace 2025-09-08 18:53:00 +00:00
compositor drm_hwcomposer: Add Rect utility type 2025-09-10 13:41:51 +00:00
drm drm_hwcomposer: Wait for next present fence earlier in present 2025-09-18 13:24:44 -06:00
hwc drm_hwcomposer: Wait for next present fence earlier in present 2025-09-18 13:24:44 -06:00
hwc2_device drm_hwcomposer: Add Rect utility type 2025-09-10 13:41:51 +00:00
hwc3 drm_hwcomposer: Return kUnsupported for ReadbackBuffer 2025-09-17 16:41:25 -07:00
stats drm_hwcomposer: Migrate to android::drm_hwcomposer namespace 2025-09-08 18:53:00 +00:00
tests drm_hwcomposer: Migrate to android::drm_hwcomposer namespace 2025-09-08 18:53:00 +00:00
utils drm_hwcomposer: Migrate to android::drm_hwcomposer namespace 2025-09-08 18:53:00 +00:00
.clang-format drm_hwcomposer: clang-format: Derive pointer alignment 2025-08-19 09:16:22 -06:00
.clang-tidy drm_hwcomposer: CI: Use aospext to provide headers for clang-tidy 2023-11-21 18:50:58 +02:00
.gitignore Add .gitignore 2024-10-14 12:32:10 -06:00
.gitlab-ci.yml drm_hwcomposer: CI: Add vts job for multi-displays 2025-09-17 16:41:25 -07:00
Android.bp drm_hwcomposer: Move atom reporter dependency 2025-06-11 22:36:26 +00:00
Makefile drm_hwcomposer: Fix build_deploy script and switch it to hwc3 2024-11-27 23:23:57 +02:00
meson.build drm_hwcomposer: CI: Update to Android 16 2025-08-19 14:52:08 -07:00
meson.options drm_hwcomposer: CI: Update to Android 16 2025-08-19 14:52:08 -07:00
MODULE_LICENSE_APACHE2 drm_hwcomposer: License NOTICE file and metadata from AOSP 2018-05-04 10:46:10 -07:00
NOTICE drm_hwcomposer: License NOTICE file and metadata from AOSP 2018-05-04 10:46:10 -07:00
README.md drm_hwcomposer: CI: Upgrade Ubuntu and clang version 2024-10-17 02:13:14 +03:00

drm_hwcomposer

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-19 -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!