1
0
Fork 0
Commit graph

70 commits

Author SHA1 Message Date
Lucas Bertou
8eeece3993 drm_hwc: fixing hal version issue.
The version is being updated downstream so ndk_shared points to v5 which
is not yet upstreamed and breaks the build. Pinning to v4 instead.

Change-Id: I68b26aad6a55bbf58d8c3786c6de1661a04d7484
2025-10-14 15:12:24 +00:00
Andrew Wolfers
5b8fc6f028 Update reporting for new DesktopAtoms
Change-Id: I5e0053c65480b26c02377320bb9904ed141504f4
2025-10-08 16:44:41 +00:00
Andrew Wolfers
ec00b3dc25 drm_hwcomposer: Add PipelineBindable unit tests
Change-Id: Iada6f16cb3b72f38cbaad1b71b38c8ef201c4722
2025-10-02 15:06:16 +00:00
Andrew Wolfers
ff954db228 drm_hwcomposer: Add buildflag guards around libsync deps
This change adds the buildflag HAS_LIBSYNC for managing
availability of libsync. This is necessary for the
unittests target for which libsync doesn't provide the
necessary variant.

DrmAtomicStateManager.cpp is the only file which depends
on libsync. Guards have been added using the HAS_LIBSYNC
flag, such that any method which would depend on libsync
is now stubbed when it is unavailable.

Change-Id: I101083074a9fad98e1c40c27b55f2eddf1c53581
2025-10-02 15:06:06 +00:00
Drew Davenport
c50f6851d6 drm_hwcomposer: Add tests for FlatteningController
Add gtest unittests to validate expected behaviour of
FlatteningController.

Change-Id: Ia40d232c7a72912df9480bd82adfe3315baaa493
2025-09-19 16:57:30 -06:00
Drew Davenport
5623570a56 drm_hwcomposer: Move atom reporter dependency
Some downstream projects use hwcomposer.drm_defaults and define their
own .so with downstream logic.

Move the drm_hwcomposer_atom_reporter dependency into
hwcomposer.drm_defaults to avoid link errors when building such an .so

Change-Id: Ie3ad0d2c923fba1f2f47b4c7b5cdef3e66436c26
2025-06-11 22:36:26 +00:00
Drew Davenport
3e4b0758a2 drm_hwcomposer: Use atom reporter for HWC3
When initializing the ComposerClient, create a
CompositionStatsAtomReporter and poll the DrmHwc periodically for
stats to send.

By default, the stub reporter is used

Change-Id: I864a3cc8e148b03cc6e693d141d2dcbf6d5c70d3
Signed-off-by: Drew Davenport <ddavenport@google.com>
2025-06-10 06:59:57 +00:00
Drew Davenport
129d12f38a drm_hwcomposer: Report composition stats as vendor atoms
The IStats service provides an interface for reporting metrics from
vendor processes through the IStats::reportVendorAtom interface.

The type and ordering of the data in a VendorAtom are determined by a
proto definition which is typically OEM-specific. The code to construct
the VendorAtom is generated from the proto definition.

Add a soong config variable in the DRMHWC config namespace to enable the
atom reporting. Currently there is only one such implementation.
  atom_reporter: Set this to configure OEM-specific atom reporting.

With the config variable omitted, reporting will be disabled and a stub
implementation is used, ensuring no build or runtime dependency or usage
of the IStats service.

Change-Id: I832adbd42412db1ab4c9403c1da60fa075443caa
Signed-off-by: Drew Davenport <ddavenport@google.com>
2025-06-10 06:59:51 +00:00
Drew Davenport
23e05e0b85 drm_hwcomposer: Move common files out of hwc2_device directory
HwcDisplay etc. are shared between frontends and shouldn't live in the
hwc2_device directory.

Change-Id: I4bf3845f6cf7adde5f625a736cc1dffea27e5168
2025-05-23 09:01:32 -06:00
Drew Davenport
9d3be012fd drm_hwcomposer: Remove hwc2 usage from common code
No longer need to #include the hwcomposer2 headers in common code.

Pull the hwc2 specific files into a different filegroup. There is no
need to build these for hwc3. Additionally, no need for hwc2-specific
CPPFLAGS in common or hwc3 code.

Change-Id: Ie194e9dc4b0d8f7b900227bd5d3b73efc692d975
2025-05-23 09:01:32 -06:00
Drew Davenport
d34c094030 drm_hwcomposer: Remove obsolete HWC2<->HWC3 conversion functions
With removal of HWC2 usage from internal layers, these functions are no
longer needed.

Change-Id: Id57bd56307a0e5c078e1a10c3b592e8a8e781c97
2025-05-23 09:01:32 -06:00
Sasha McIntosh
094b09d976 drm_hwcomposer: Use latest available composer3 API
This will allow us to cherry-pick downstream changes from Android16
without breaking those using the Android15 source tree.

Add Android15 target to CXXFLAGS so that Android16 APIs are
ignored on CI.

Add ANDROID_SDK_VERSION to ci builds.

Change-Id: I4e37e5ce5b2c2b5dc5134dc8c33f284fe26d4019
Signed-off-by: Sasha McIntosh <sashamcintosh@google.com>
2025-05-20 13:36:11 -04:00
Drew Davenport
98360f9e0c drm_hwcomposer: Add CompositionStats
CompositionStats struct is a copy of HwcDisplay::Stats and is extracted
from HwcDisplay as a prestep for supporting stats reporting beyond
dumpsys.

CompositionStatsProvider interface can be implemented by a class that
will poll all displays and return a display->CompositionStats map for
the cumulative stats for each display.

CompositionStatsTracker is a helper class that tracks the state of the
last queried stats and calculates the delta between the last stats and
the currently pulled stats. A Callback function can be passed into the
Report function which will be called for each display, with the
cumulative and delta stats as arguments.

Change-Id: I4200df5b41a4dbc612160aec038c83336b68bc4b
Signed-off-by: Drew Davenport <ddavenport@google.com>
2025-04-29 14:12:59 -06:00
Drew Davenport
7eba8bbac5 drm_hwcomposer: Add libbase to drm_defaults
Fixes a link error in hwcomposer.filegroups_build_test

Change-Id: Ie6cf781a71f5d01c17a7559dfe3cb8307685020c
Signed-off-by: Drew Davenport <ddavenport@google.com>
2025-04-02 08:41:32 -06:00
Roman Stratiienko
e501a97f5e drm_hwcomposer: HWC3: Remove HWC2 ComposerResources dependencies
Now that we have our own buffer importer and slots tracker,
ComposerResourcer is no longer needed.

Change-Id: I9b1e15800695b4c5f1a3f2c942ba669526e8a94c
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
2025-02-07 00:21:15 +02:00
Sasha McIntosh
851ea4dc26 drm_hwcomposer: Implement getHdrCapabilities and getColorModes
Retrieve color and HDR information from the EDID.

Change-Id: I1aac27644d5c4fd5d5f295ca32b69ed69e94e0c6
Signed-off-by: Sasha McIntosh <sashamcintosh@google.com>
2025-01-31 13:21:15 -05:00
Sasha McIntosh
f9062b6964 drm_hwcomposer: Set HDR metadata on the connector
Implement a function to set HDR metadata on the connector. Support HDR10
and HLG, which are common HDR types.

Change-Id: Id3dbe8eea2ee6b8ba700af23845a43e2070dd14e
Signed-off-by: Sasha McIntosh <sashamcintosh@google.com>
2025-01-30 23:09:52 -05:00
Sasha McIntosh
f8c14115ec drm_hwcomposer: Add wrapper for EDID parsing
Use libdisplay-info to parse display EDID. Wrap the parsing logic in a
class to extract specific EDID information.

Change-Id: I20376eb96ebcd0073155cedf1e8f055bbf8dfb49
Signed-off-by: Sasha McIntosh <sashamcintosh@google.com>
2025-01-30 15:55:22 -05:00
Drew Davenport
b50482dbf5 drm_hwcomposer: Remove hwc2 build targets
All devices in aosp have been migrated to hwc3. Remove the hwc2 build
targets as a first step towards removing hwc2 from this project.

Change-Id: I116e4d13342368e9375b4d96d9598ba058f936a0
Signed-off-by: Drew Davenport <ddavenport@google.com>
2025-01-16 10:57:06 -07:00
Drew Davenport
0bc3df0be2 drm_hwcomposer: Define cc_defaults for hwc3 binary
Some vendors do not use gralloc4 and can't use the BufferInfoGetter
implemented on top of the IMapper 4 API. These vendors use a
LegacyBufferInfoGetter implementation, and need to define a new build
target for it.

Move the majority of the configuration for the hwc3 service to a
cc_defaults target, so that this can be referenced downstream and reduce
duplication.

Change-Id: I2561ecbb2d3c520f8cd8bdbf171a28d5f7fb1a51
Signed-off-by: Drew Davenport <ddavenport@google.com>
2024-12-13 16:52:08 -07:00
Tim Van Patten
16933c3dcf drm_hwcomposer: Check "Present Not Reliable" property
Check the "Present Not Reliable" property to determine if the capability
PRESENT_FENCE_IS_NOT_RELIABLE should be enabled or not.

The virtio gpu module sends frames to the host as fast as possible and
does not emulate "real display timing". Devices using the virtio gpu
module (for example, the virtual Android device Cuttlefish) should set
the following property to "true" to enable the capability:

    ro.vendor.hwc.drm.present_not_reliable.enabled

For example, in an Android BoardConfig.mk:

    PRODUCT_VENDOR_PROPERTIES += \
        vendor.hwc.drm.present_not_reliable.enabled=true

Signed-off-by: Tim Van Patten <timvp@google.com>
2024-11-18 11:00:09 -07:00
Drew Davenport
b6eb4b8d85 drm_hwcomposer: Set std=c++17 in Android.bp
The CI is configured to build using std=c++17, so update the default
build flags to the same.

This avoids the case where a contributor's change builds properly
locally, but fails in CI due to the usage of c++20 features.

Change-Id: I41d3115a314305e3863cd65623b244e9ab82dc3c
Signed-off-by: Drew Davenport <ddavenport@google.com>
2024-10-29 09:47:31 -06:00
Roman Stratiienko
57ba08add7 drm_hwcomposer: CI: Upgrade Ubuntu and clang version
Why:
The aospless file from Android-15 contains compiler flags that
clang-15 does not understand.

Additionally, new tidy findings were suppressed.
It would be nice to fix them in the future instead.

Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
2024-10-17 02:13:14 +03:00
Jason Macnak
1f26384f2a Support drm hwcomposer as an apex
... so that Cuttlefish can runtime select between drm_hwcomposer
and ranchu.

Drops the libbinder to avoid error:

  APEX can't use libbinder (must use libbinder_ndk)

and fixes a couple includes.

Bug: b/348466630
Test: cvd start
Test: cvd start --hwcomposer=drm_hwcomposer
Change-Id: I50681677d89c56fb6761b740a465bf92890157ea
2024-09-19 12:20:52 -07:00
Drew Davenport
7f1761b7c7 drm_hwcomposer: Use hwc3 version 3
Add stubs for new APIs. Bump the version number in the manifest
fragment.

Update Docker configuration to use new aospless tarball that contains
the required build dependencies for hwc3 v3.

Change-Id: I521f649c2f820f54bc3c6adcda8e17d5ab3112e1
Signed-off-by: Drew Davenport <ddavenport@google.com>
2024-09-13 10:32:43 -06:00
Mykhailo Androsiuk
d44ffc78ae [Android.bp] Remove duplicate source entry in filegroup
Remove the duplicate entry of "hwc3/DrmHwcThree.cpp" from the filegroup
{ name: "drm_hwcomposer_hwc3" }. This fixes the following Android build
error:

```
FAILED: ninja: out/soong/build.ninja:4521392: multiple rules generate
out/soong/.intermediates/external/drm_hwcomposer/
android.hardware.composer.hwc3-service.drm/
android_vendor.34_arm64_armv8-a_cortex-a53/obj/external/drm_hwcomposer/
hwc3/DrmHwcThree.o [-w dupbuild=err]
```

Signed-off-by: Mykhailo Androsiuk <mykhailo_androsiuk@epam.com>
2024-09-12 15:54:14 +03:00
Drew Davenport
5951b111ce drm_hwcomposer: Connect ComposerClient with HwcDisplay
Implements the HWC3 frontend by calling the HWC2 interfaces already
exposed through DrmHwc, HwcDisplay, HwcLayer, and so on.

Convert between hwc2 types and hwc3 types in ComposerClient.

The following changes from !238 were used as a basis for this change,
and squashed together:
(drm_hwcomposer: Connect ComposerClient with HwcDisplay)
(drm_hwcomposer: Implement HWC3 frontend by calling down to HWC2)

The projects [1, 2] were used as a reference for the implementation.

[1]: https://android.googlesource.com/platform/hardware/google/graphics/common/+/refs/heads/main/hwc3/
[2]: https://android.googlesource.com/device/generic/goldfish-opengl/+/refs/heads/master/system/hwc3/

Co-authored-by: Normunds Rieksts <normunds.rieksts@arm.com>
Co-authored-by: Dennis Tsiang <dennis.tsiang@arm.com>
Change-Id: I98c10175d5c5f01aec1e192863238e16aa1537ec
Signed-off-by: Drew Davenport <ddavenport@chromium.org>
Signed-off-by: Drew Davenport <ddavenport@google.com>
2024-08-30 22:15:14 +00:00
Drew Davenport
ade696579a drm_hwcomposer: Add DrmHwcThree class
Inherit from DrmHwc base class and implement the client
callback functions in terms of IComposerCallback.

Signed-off-by: Drew Davenport <ddavenport@chromium.org>
Signed-off-by: Drew Davenport <ddavenport@google.com>
2024-08-30 22:15:14 +00:00
Drew Davenport
6b56aceccc drm-hwcomposer: Build hwc3 service in Android.bp
Add a android.hardware.composer.hwc3-service.drm binary target that
builds relevant hwc3 sources and common sources.

Uses BufferInfoLibdrm. The structure of this service may need to be
looked at again to support other BufferInfo implementations.

Also update the executable name in hwc3-drm.rc to match the target name.

Signed-off-by: Drew Davenport <ddavenport@chromium.org>
Signed-off-by: Drew Davenport <ddavenport@google.com>
2024-08-30 22:15:14 +00:00
Dennis Tsiang
33f0eceb58 drm_hwcomposer: Add hwc3 frontend stub
Adds a stub implementation of the HWC3 interface and service.
This is a barebones implementation of HWC3 interface that should contain
all the necessary code to build a HWC3 module but provides no
functionality.

The project [1] was used as a reference.
[1]: https://android.googlesource.com/platform/hardware/google/graphics/common/+/refs/tags/android-13.0.0_r18/hwc3/

Change-Id: I99754bb72f12183a94b24b7182cb7857173b31d2
Co-authored-by: Roman Stratiienko <r.stratiienko@gmail.com>
Signed-off-by: Dennis Tsiang <dennis.tsiang@arm.com>
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Signed-off-by: Normunds Rieksts <normunds.rieksts@arm.com>
Signed-off-by: Drew Davenport <ddavenport@google.com>
2024-08-30 22:15:14 +00:00
Drew Davenport
93443188b7 drm_hwcomposer: Extract DrmHwc abstract base class
DrmHwc holds implementation details that can be shared between hwc2 and
hwc3. It exposes abstract functions for implementing callbacks to hwc
clients.

Leave the HWC2 specific implementation details in the DrmHwcTwo class, such
as the client callback implementation, and implement the DrmHwc abstract
functions in terms of hwc2.

DrmHwc is based on the DrmHwcInterface extracted in
(drm_hwcomposer: Connect ComposerClient with HwcDisplay) from !238

Co-authored-by: Dennis Tsiang <dennis.tsiang@arm.com>
Co-authored-by: Normunds Rieksts <normunds.rieksts@arm.com>
Signed-off-by: Drew Davenport <ddavenport@chromium.org>
2024-08-12 12:27:10 -06:00
Elliott Hughes
ad2143df05 drm_hwcomposer: Use the global default cpp_std.
Issues can arise when shared libraries with c++17 and c++20
loaded into the same process refer to the same global symbol
(usually std::string).

So avoid overriding the default cpp_std.

Bug: http://b/344590580
Signed-off-by: Elliott Hughes <enh@google.com>
[jstultz: Tweaked & expanded commit message]
Signed-off-by: John Stultz <jstultz@google.com>
Change-Id: I6bde2ab4d208c990103e6d303ec96a4969fa06ef
2024-06-28 09:20:55 -07:00
Roman Stratiienko
bdc4382f8b drm_hwcomposer: Fix missing dependency in hwc-drm-uevent-print
Error:
ld.lld: error: undefined symbol: android::MakeUniqueFd(int)

Fixes: 76892784ac ("drm_hwcomposer: Introduce SharedFd, use standard c++ RAII for UniqueFd")
Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/77
Change-Id: I6d37ff15b002cc49159a239393e18a8ca5b3cb27
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
2023-06-27 21:29:44 +03:00
Roman Stratiienko
22fe9617da drm_hwcomposer: Make flattening thread-based instead of vsync-based
Using vsync means consume some CPU time every frame for
IRQ -> Kernel_Thread -> UserSpace_listener thread transitions.

Framework tries to reduce vsync usage to the minimum, by using timelines
instead.

New flattening controller thread wakes-up only once per second.

This commit also removes flattening info from dumpsys. Practice shows
that it is almost useless. Instead debugging can be done using ALOGV
dumps.

Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
2023-01-18 19:25:08 +02:00
Roman Stratiienko
76892784ac drm_hwcomposer: Introduce SharedFd, use standard c++ RAII for UniqueFd
We use too much dup() system calls for present fence propagating.
Also when propagating acquire fence we use additional logic for
skipping such propagation for the validate/test cycle.

Both issues can be solved by introducing SharedFd, which will track
reference count of fd object.

After that the UniqueFd is used very rarely and can be simplified by
wrapping it into std::unique_ptr without caring too much of adding
an extra malloc/free operation.

Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
2023-01-16 20:13:58 +02:00
Roman Stratiienko
14bc764de0 drm_hwcomposer: Remove utils/worker from the project
utils/worker is no longer used and can be removed.

Change-Id: I5fc9bd2b3b8b0375622ee2446044d3b893756b30
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
2022-12-28 19:18:34 +02:00
Roman Stratiienko
6b40505a7e drm_hwcomposer: Use __ANDROID_API__ instead of PLATFORM_SDK_VERSION
__ANDROID_API__ definition is available by default in AOSP and NDK.

It also exported by standard system clang when the user sets
the '-target <ARCH>-linux-android<LEVEL>' compiler flag.

Reason for this change is integration of meson build script, where
otherwise the user has to provide the API level manually.

Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
2022-12-11 21:19:43 +02:00
Roman Stratiienko
4dfa62d825 drm_hwcomposer: Use header library instead of hardcoded path
This allows to put drm_hwcomposer in any directory.

Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
2022-11-16 16:51:06 +02:00
Roman Stratiienko
4b2cc484f9 drm_hwcomposer: Reorganize struct DrmHwcLayer
1. Move BlendMode, ColorSpace, SampleRange fields to the struct BufferInfo,
   allowing extraction of the data from native_handle using Metadata@4 API.
   Use it when data from HWC2 API can't be used (Currently it's a BlendMode
   case for CLIENT layer)

2. Rename DrmHwcLayer to LayerData and move it to compositor/ directory.
   (I was confused in the past because of similarity of names DrmHwcLayer
    vs HwcLayer, so this step should meke it easier for newcomers to
    understand the code)

3. Allow clonning of the LayerData to propagate it through the composition
   pipeline. Thus LayerData can be used by both HwcLayer to track state
   and by the compositor.

Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
2022-05-17 11:20:44 +03:00
Mauro Rossi
a8927b83ff drm_hwcomposer: build with -std=c++17 cppflag
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
2022-02-15 12:06:32 +02:00
Roman Stratiienko
4e994055a3 drm_hwcomposer: Rename DrmDisplayCompositor->DrmAtomicStateManager
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>
2022-02-09 17:40:35 +02:00
Roman Stratiienko
71f196fce0 drm_hwcomposer: Remove RCAR-DU specific code.
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>
2022-02-04 12:27:55 +02:00
Roman Stratiienko
9362cef4c3 drm_hwcomposer: Rework KMS composition planner + plane sharing support
Rewrite Layer-to-Plane planner. Get rid of ~200 redundant lines of code
+ added plane sharing functionality.

Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/11
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
2022-02-04 11:19:40 +02:00
Roman Stratiienko
cad8e0ca57 drm_hwcomposer: Introduce DrmDisplayPipeline class
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: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/14
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
2022-01-31 21:48:40 +02:00
Roman Stratiienko
f377ff7bd6 drm_hwcomposer: Remove utils/autolock.*
AutoLock class is no longer used.

Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
2022-01-20 17:21:46 +02:00
Roman Stratiienko
0137f867df drm_hwcomposer: Move HwcDisplayConfigs out of HwcDisplay class
To reduce complexity of HwcDisplay class.

Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
2022-01-12 11:28:09 +02:00
Roman Stratiienko
3e1689054d drm_hwcomposer: Move DrmHwcTwo.{cpp|h} to hwc2_device/ directory
To keep all frontend-related files in a single directory.

Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
2022-01-12 11:27:09 +02:00
Roman Stratiienko
3627bebf7b drm_hwcomposer: Move HwcDisplay out of DrmHwcTwo class
Reduces code complexity.

Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/35
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
2022-01-12 11:27:07 +02:00
Roman Stratiienko
03fd35cdfa drm_hwcomposer: Move HwcLayer out of DrmHwcTwo class
... 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>
2022-01-12 11:17:41 +02:00
Roman Stratiienko
26fd2b2606 drm_hwcomposer: Move hw_module related code out of DrmHwcTwo.* files
... 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>
2022-01-12 11:17:41 +02:00