- 18 Feb, 2022 1 commit
-
-
Jason Macnak authored
... to specify supported hwcomposer version with drm_hwcomposer. Signed-off-by:
Jason Macnak <natsu@google.com> Change-Id: I4a332e0ff211b7432771d75945e8ae3f3b24fe65
-
- 15 Feb, 2022 3 commits
-
-
Roman Stratiienko authored
Fixes drm_hwcomposer build for Android-9. Signed-off-by:
Roman Stratiienko <r.stratiienko@gmail.com> Change-Id: I14e931c37c3d09284dfd338e6482a27cf21e0e10
-
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> [RomanS: Fixed CI nitpicks] Signed-off-by:
Roman Stratiienko <r.stratiienko@gmail.com> Change-Id: Ia97d9019c21ac68be386a627cb101f6e423bbfc7
-
Fixes the following building error: external/drm_hwcomposer/DrmHwcTwo.cpp:985:14: error: decomposition declarations are a C++17 extension [-Werror,-Wc++17-extensions] for (auto &[handle, layer] : layers_) { ^~~~~~~~~~~~~~~ 1 error generated. Signed-off-by:
Mauro Rossi <issor.oruam@gmail.com> Signed-off-by:
Roman Stratiienko <r.stratiienko@gmail.com> Change-Id: I236f16969e4500ff2efb79c06500bc4d3a3d810c
-
- 09 Feb, 2022 2 commits
-
-
Roman Stratiienko authored
Primary responsibilities of this class are: 1. Send composition/mode/active state over DRM atomic commit IOCTL to the kernel 2. Track commit state and keep planes owned by the Pipeline while they are either displayed or staged for displaying. 3. Keep framebuffers alive while they are in use or staged. Not much related to composition itself, therefore rename it to DrmAtomicStateManager and move it to drm folder. Bump clang-tidy level of DrmAtomicStateManager.c to normal by fixing minor clang-tidy findings. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Now we can use empty DrmKmsPlan to achieve the same goal. + Remove unused HwcDisplay::ClearDisplay() Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
- 04 Feb, 2022 4 commits
-
-
Roman Stratiienko authored
We are not testing it for more than year, therefore it's better to use generic logic for 'rcar-du' instead. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Rewrite Layer-to-Plane planner. Get rid of ~200 redundant lines of code + added plane sharing functionality. Closes: #11 Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Enough to get 100% passes in Composer 2.4 VTS. Some SOCs require a VTS fix to pass [1] [1]: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1954544 Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Composer 2.4 will require another vsyncworker callback to send VsyncPeriodTimingChanged event. It makes sence to use single VSyncWorker and flags to indicate which actions are required to perform. This should also save some runtime resources. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
- 02 Feb, 2022 3 commits
-
-
Roman Stratiienko authored
The following use scenarios are now possible: 1. When no display connected, primary HwcDisplay is created in headless mode. 2. When user connects first display, it binds to primary slot, replacing headless HwcDisplay. 3. When user connects another display it binds to the new HwcDisplay slot, creating new display for the framework. 4. When user disconnects first (Primary) display, drm_hwc detaches second display and attaches it to the Primary slot. In this case framework is notified as Primary display resolution updated (Plugged->Plugged transition). And second display is disconnected (Plugged->Unplugged transition). DrmDisplayPipeline is now created on demand (after hotplug event). HwcDisplay class is now destructed on connector unplug, which will give us ability to destroy any resource caches (will be required for FB caching logic). Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
HwcDisplay can now take all necessary objects from DrmDisplayPipeline. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
We should assign weak pointer object to really take ownership. Fixes: cad8e0ca ("drm_hwcomposer: Introduce DrmDisplayPipeline class") Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
- 31 Jan, 2022 10 commits
-
-
Roman Stratiienko authored
Create systematic way of binding DRM objects (Crtc,Encoder,Planes...) to the pipeline using RAII. Use it to create the pipeline. + Allow pipeline creation to fail. Closes: #14 Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
1. Move drm/DrmConnector.h to Normal clang-tidy checks list by fixing clang-tidy findings. 2. Remove DrmDevice self-reference. 3. Replace shared_ptr reference to DrmDevice in DrmFbImporter with a pointer, making ResourceManager only owner of DrmDevice and its chilren. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Implement DrmConnector instantiation through CreateInstance() static method, which helps to reduce complexity of DrmDevice::Init() function. Move Connector-to-CRTC binding information to the DrmDevice class. Move drm/DrmConnector.h to Normal clang-tidy checks list by fixing clang-tidy findings. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Implement DrmEncoder instantiation through CreateInstance() static method, which helps to reduce complexity of DrmDevice::Init() function. Move Encoder-to-CRTC binding information to the DrmDevice class. Move drm/DrmEncoder.h to Normal clang-tidy checks list by fixing clang-tidy findings. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Implement DrmCrtc instantiation through CreateInstance() static method, which helps to reduce complexity of DrmDevice::Init() function. Move CRTC-to-Display binding information to the DrmDevice class. Move drm/DrmCrtc.h to Normal clang-tidy checks list by fixing clang-tidy findings. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
This feature isn't correctly fits hwc2 and SF requirements. Primary display prioritization shall be done by introducing ability to override internal/external connector type for any connector. 'vendor.hwc.drm.primary_display_order' property is no longer relevant. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Primary display should always be internal. Closes: #58 Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
This allow to throw away few lines from DrmDevice::Init() making it less complicated. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Cosmetic change: make GetDisplay() non-static class method + use deduced return type. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Composer service has to be started again. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
- 20 Jan, 2022 9 commits
-
-
Roman Stratiienko authored
AutoLock class is no longer used. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Remove unused functionality. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Remove unused functionality. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Headless mode required to keep SurfaceFlinger alive when all displays are disconnected, Without headless mode Android will continuously crash. Only single internal (primary) display is required to be in HEADLESS mode to prevent the crash. See [1]. [1]: https://source.android.com/devices/graphics/hotplug#handling-common-scenarios Closes: drm-hwcomposer/drm-hwcomposer#57 Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Implement Google guidelines from [1] 1. The supported display config IDs are: id=1, 1080x1920 60hz id=2, 1080x1920 50hz 2. When a change of display configs is processed, the next set of config IDs are assigned starting from the next unused integer, shown as follows: id=3, 2160x3840 60hz id=4, 2160x3840 50hz id=5, 1080x1920 60hz id=6, 1080x1920 50hz + Don't update modes in GetDisplayConfigs() . Modes is now updated at init or after every hotplug event. [1]: https://source.android.com/devices/graphics/hotplug#configuring-composer-hal-sequential-ids Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Further development will require more asynchronous processing. Introduce project-wide single mutex for these purposes. Use it instead for callback handling instead of callback_lock. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Process and log __PRETTY_FUNCTION__ compiler string. Prints HWC2 API logs as follows: hwc2-device: Display #0 Layer: #0 hook: android::HwcLayer::SetLayerBuffer hwc2-device: Display #0 hook: android::HwcDisplay::ValidateDisplay hwc2-device: Display #0 hook: android::HwcDisplay::GetChangedCompositionTypes hwc2-device: Display #0 hook: android::HwcDisplay::GetChangedCompositionTypes hwc2-device: Display #0 hook: android::HwcDisplay::GetDisplayRequests hwc2-device: Display #0 hook: android::HwcDisplay::GetDisplayRequests hwc2-device: Display #0 hook: android::HwcDisplay::AcceptDisplayChanges hwc2-device: Display #0 hook: android::HwcDisplay::PresentDisplay hwc2-device: Display #0 hook: android::HwcDisplay::GetReleaseFences hwc2-device: Display #0 hook: android::HwcDisplay::GetReleaseFences Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
+ address new clang-tidy findings. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
We need some delay to ensure DrmConnector::UpdateModes() will query correct modes list, otherwise at least RPI4 board may report 0 modes. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
- 18 Jan, 2022 1 commit
-
-
Roman Stratiienko authored
It was accidentally removed by my previous commit. Restore it. Fixes: a148f213 ("drm_hwcomposer: Rework display modes handling") Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
- 14 Jan, 2022 1 commit
-
-
Roman Stratiienko authored
It should help us with manual testing. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
- 13 Jan, 2022 1 commit
-
-
Roman Stratiienko authored
Some of KMS drivers like kirin are sensitive to display pipeline configuration, modern kernel will configure the pipeline correctly when user sets DPMS property. To be more precise current compositor logic will not attach primary plane to the CRTC, while kirin relies on it internally. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
- 12 Jan, 2022 5 commits
-
-
Roman Stratiienko authored
To reduce complexity of HwcDisplay class. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
To keep all frontend-related files in a single directory. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
Reduces code complexity. Closes: drm-hwcomposer/drm-hwcomposer#35 Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
... to reduce complexity of DrmHwcTwo.* files. Bump-up tidy level of new files to NORMAL (fix function naming, add NOLINT, etc.) Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-
Roman Stratiienko authored
... to reduce complexity of DrmHwcTwo class. Create "hwc2_device" directory that will be later used to fit all frontend-related code. Signed-off-by:
Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-