1
0
Fork 0
Commit graph

151 commits

Author SHA1 Message Date
Su Hong Koo
406a14f111 Add atom reporting for modes on hotplugged displays
Add and use DisplayHotplugConnectModeDetectedAtomReporter, which logs
all valid modes of a hotplugged display.

Change-Id: Ie93487ad8e4936195e3d949ce46034c5ec4fda83
2025-11-12 12:31:12 -05:00
Su Hong Koo
680790982c Add atom reporting for refresh rate changes
Add DisplayRefreshRatesChangedAtomReporter, which reports the changed
refresh rates of all the active displays managed by drm_hwcomposer.

Change-Id: I03a81c667c44160dc319a899a3bd9a8bc527a382
2025-11-12 12:31:12 -05:00
Andrew Wolfers
a890ccd62f Add atom reporting for flattening controller state
Change-Id: I09f60c95519d844359d5f1c70b940b47f756da21
2025-11-06 15:30:45 +00:00
Deborah Brouwer
e54f0897ed CI: Update cuttlefish container tags
Force the cuttlefish container to rebuild, then fetch the new cuttlefish
tarball by rebuilding the android container in which the CI test jobs run.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-10-03 15:52:50 -07:00
Deborah Brouwer
624a1d975f CI: cts-runner: skip testAndroidBaselineProfile2021Support
The testAndroidBaselineProfile2021Support fails because lavapipe does not
support
  "textureCompressionASTC_LDR"
  "textureCompressionETC2"

See: cts/tests/tests/graphics/jni/VP_ANDROID_baseline_cpu_only_2021.json
and mesa/src/gallium/frontends/lavapipe/lvp_device.c

Unless/until lavapipe adds this support, skip this test.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-10-03 15:52:50 -07:00
Deborah Brouwer
75ca83c730 CI: Set a cache directory for mesa
If a shader cache directory is not specified, mesa attempts to make a
cache directory at root. But since cuttlefish root is read-only, this
creates errors which fail the CI jobs.

Specify a shader cache directory for mesa to use that is writable and
will not cause spurious errors in CI.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-10-03 15:49:50 -07:00
Deborah Brouwer
ea1515b7cf CI: Return to using mesa software drivers
When the CI pipeline was converted to Android 16, the mesa software
drivers (llvmpipe and lavapipe) were temporarily removed until mesa's
Android.mk build could be reconciled with the Soong build of mesa.

Keep the Soong blueprints for other devices, but use mesa's make files
to build llvmpipe and lavapipe. Use mesa drivers when running CI jobs.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Reviewed-by: Valentine Burley <valentine.burley@collabora.com>
Reviewed-by: Antonio Ospite <antonio.ospite@collabora.com>
2025-10-03 15:49:50 -07:00
Andrew Wolfers
ec00b3dc25 drm_hwcomposer: Add PipelineBindable unit tests
Change-Id: Iada6f16cb3b72f38cbaad1b71b38c8ef201c4722
2025-10-02 15:06:16 +00:00
Drew Davenport
151c10dc9a CI: Remove drm_hwcomposer: prefix requirement
The prefix doesn't provide a lot of value, and unnecessarily lengthens
the commit message subject lines.

Change-Id: I5e234510b2ad9822e95135e56a8a19b4b9329357
2025-09-29 09:26:01 -06: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
Deborah Brouwer
a4777dbf87 drm_hwcomposer: CI: Add vts job for multi-displays
Currently VtsHalGraphicsComposer3_TargetTest is run only with a single
display. Use the configurable vkms driver to run vts with multiple
displays.

This job should help to catch errors that arise only when there are
multiple displays. It also allows the test
ConnectedDisplaysTest.IndependentConfigChange to run whereas it is
otherwise skipped for single display configurations.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-09-17 16:41:25 -07:00
Deborah Brouwer
8f82d3d682 drm_hwcomposer: CI: Add job to run with writeback
Currently VtsHalGraphicsComposer3_TargetTest is run without a writeback
connector enabled. Use the configurable vkms driver to create a writeback
connector and run VtsHalGraphicsComposer3_TargetTest.

This job should help to catch errors that arise only for writeback
connectors.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-09-17 16:41:25 -07:00
Deborah Brouwer
acb3e3d8f7 drm_hwcomposer: CI: Add job to run headless
Currently VtsHalGraphicsComposer3_TargetTest is run with a crosvm
display with a connected display. Use the configurable vkms driver to
run VtsHalGraphicsComposer3_TargetTest with a disconnected display.

This job should help to catch errors that arise only in headless mode.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-09-17 16:41:25 -07:00
Deborah Brouwer
670385a79f drm_hwcomposer: CI: Add vkms helper functions
Add reusable functions to help load, configure, and print vkms to make
it easier to add and maintain jobs that use vkms to run CI jobs.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-09-17 16:41:25 -07:00
Deborah Brouwer
5cf71b3a00 drm_hwcomposer: CI: Add reusable function for vts
Currently VtsHalGraphicsComposer3_TargetTest is run only once in a
single script. In anticipation of running vts with different display
configurations, add a reusable function to run vts, and use a different
script to actually run vts.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-09-17 16:41:25 -07:00
Deborah Brouwer
996acd8793 drm_hwcomposer: CI: Update vts tests to skip
The current list of tests to skip from VtsHalGraphicsComposer3_TargetTest
is from Android15, but the CI is running Android16, so update the list
of tests that are expected to skip from Android16.

This make the CI more accurate, because if a change causes a new test to
skip unexpectedly, the CI job will fail.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-09-15 16:21:22 -07:00
Deborah Brouwer
e43697d99c drm_hwcomposer: CI: launch_cvd: run modem_simulator
The modem simulator is currently disabled because, in an earlier version
of cuttlefish, it was preventing drmhwc from launching. However, the
missing service causes a lot of noise in logcat as the ServiceManager
continuously looks for the IRadioModem service.

Since the cuttlefish modem simulator is now working with drmhwc on
Android16, enable the modem simulator and reduce the logcat and Activity
Manager noise.

Also, while here, remove the executable bit from launch-cvd.sh since it
is only sourced, not run directly.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-09-15 16:11:27 -07:00
Deborah Brouwer
ba799096db drm_hwcomposer: CI: Add hotplugs test with vkms
Add a new test job to use the configurable vKMS driver to test hotplugs
from `aosp/platform_testing/tests/display/hcct/tests/hotplugs.cpp`

Skip the test `DetectSingleDisconnectHotplugs` which currently fails
because it expects drm-hwcomposer to send a disconnect event for the
primary display. When this test is updated on a public branch of
platform_testing, it will be added back to the CI job.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-09-12 08:55:59 -07:00
Deborah Brouwer
2e853865c2 drm_hwcomposer: CI: Refactor containers
The `ubuntu/x86_64_android` container is the base for running cts/vts
tests, but it is getting very large (~4GB) and takes a long time to build.
To make the base container smaller (~2.6GB), and to make it quicker to
rebuild specific components, carve out two new containers from the base
container:
  1) `ubuntu/x86_64_android_tools` for any tools that can be downloaded;
  2) `ubuntu/x86_64_android_binaries` for any binaries (excluding
      cuttlefish) that need to be built within the aosp repo.

Also, remove the jobs that start with the prefix `use-*`. These jobs pull
containers (e.g. debian/x86_64_cuttlefish) to make files inside the
container (e.g. cuttlefish.tar.xz) available to other jobs in the pipeline
as artifacts. But these `use-*` jobs can take a long time to run
(anywhere from 3 to 20 minutes to use the cuttlefish container). Instead,
use skopeo with umoci to fetch the containers and access their files,
which is much quicker.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-09-12 08:55:59 -07:00
Deborah Brouwer
c02ebae650 drm_hwcomposer: CI: Shrink cuttlefish container
Instead of just removing unnecessary packages from the cuttlefish
container, purge them and their dependencies. This reduces the container
size by about 280M and should make it quicker to pull and inspect the
container.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-09-12 08:55:59 -07:00
Deborah Brouwer
abd366858b drm_hwcomposer: CI: Build vkms hotplug binaries
Since the android container already initializes and syncs the aosp repo,
also build the vkms hotplug binaries so that they can be used later in the
CI pipeline.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-09-12 08:55:59 -07:00
Deborah Brouwer
a59c50f641 drm_hwcomposer: CI: Update CTS test names
In Android 16, some CtsGraphicsTestCases test names have changed which
causes the module to fail. Update the test names.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-08-19 15:22:58 -07:00
Deborah Brouwer
d1b819b89d drm_hwcomposer: CI: Add CTS skips file
Android 16 added a new test, GetSupportedRefreshRatesIsDivisorRate,
which will fail when CI is updated to Android 16.

Add the ability to skip a CTS test and skip this test for now.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-08-19 15:22:58 -07:00
Deborah Brouwer
1771c8fd66 drm_hwcomposer: CI: Update container tags
Force all containers to rebuild to implement the Android 16 changes.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-08-19 15:22:58 -07:00
Deborah Brouwer
bf2035bc2f drm_hwcomposer: CI: Update launch-cvd for Android 16
Update the commands for launching cuttlefish, since they changed slightly
between Android 15 and Android 16.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-08-19 15:22:58 -07:00
Deborah Brouwer
4c03575eb0 drm_hwcomposer: CI: Android: Use Android 16
Update the android container to include all of the packages, tools, and
tests that are up-to-date with Android 16.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-08-19 15:22:58 -07:00
Deborah Brouwer
abdb5fa5b8 drm_hwcomposer: CI: aospless: Use Android 16
Update the aospless container to work with the Android 16 repositories.
This ensures that aospless can still be used to build drm-hwcomposer
binaries for Android 16.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-08-19 15:22:58 -07:00
Deborah Brouwer
5d47be1918 drm_hwcomposer: CI: cuttlefish: Use Android 16
Build the cuttlefish device for Android 16. This keeps CI coverage
as complete and up-to-date as possible.

Since Android 16 deprecates builds with make, temporarily stop using mesa
libraries with the intention of adding a Soong build of mesa in the
future.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-08-19 15:19:03 -07:00
Deborah Brouwer
ea5689b295 drm_hwcomposer: CI: Update to Android 16
In preparation for rebuilding all CI containers to use Android 16,
update CI/build variables to use Android 16 and Android SDK 36.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-08-19 14:52:08 -07:00
Deborah Brouwer
3312d98b61 drm_hwcomposer: CI: Save CTS failure logs
When $FDO_CI_BASH_HELPERS was added, it included an ERR trap that is
triggered when a cts failure is found in the invocation summary. This
prevents the full cts logs from being saved in the job results.

Revise the cts failure check to avoid triggering the trap on error and
allow the full cts logs to be saved.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-08-19 14:52:08 -07:00
Deborah Brouwer
42ab0b9f1d drm_hwcomposer: CI: Remove custom formatting functions
Now that all of the custom formatting functions are replaced with helper
functions from ci-templates, the custom formatting functions can be
removed.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-27 15:38:05 -07:00
Deborah Brouwer
ffad3e6b1b drm_hwcomposer: CI: Update cuttlefish container tag
Rebuild the cuttlefish container to add formatting functions.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-27 15:38:05 -07:00
Deborah Brouwer
bbe4ae7b5b drm_hwcomposer: CI: Use new formatting for cuttlefish
Replace the custom formatting functions from setup-test-env.sh with the
new formatting functions available from ci-templates.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-27 15:38:05 -07:00
Deborah Brouwer
1640040629 drm_hwcomposer: CI: Update android container tag
Rebuild the android container to add formatting functions.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-27 15:38:05 -07:00
Deborah Brouwer
9e5c37ae08 drm_hwcomposer: CI: Use new formatting for android
Replace the custom formatting functions from setup-test-env.sh with the
new formatting functions available from ci-templates.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-27 15:38:05 -07:00
Deborah Brouwer
72ec38a6cb drm_hwcomposer: CI: Simplify VTS failure check
In preparation for introducing $FDO_CI_BASH_HELPERS, which adds an ERR
trap that is triggered even in subshells, simplify the VTS failure check
to avoid triggering the trap when no failures are found.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-27 15:00:16 -07:00
Deborah Brouwer
0cb8a07844 drm_hwcomposer: CI: Update aospless container tag
Rebuild the aospless container to add formatting functions.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-26 17:58:01 -07:00
Deborah Brouwer
2283650026 drm_hwcomposer: CI: Use new formatting for aospless
Replace the custom formatting functions from setup-test-env.sh with the
new formatting functions available from ci-templates.

Gitlab logs will still be formatted with collapsible sections, but now
drm-hwcomposer does not need to maintain its own custom versions of
these functions.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-25 14:08:08 -07:00
Deborah Brouwer
397dc100e5 drm_hwcomposer: CI: Build and swap apex package
Currently the CI pipeline is pushing the drm-hwcomposer binaries into
the vendor partition. Instead put the drm-hwcomposer binary into a new
apex package and run it in cuttlefish.

This approach aligns better with developer workflow.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-23 09:10:55 -07:00
Deborah Brouwer
c36dcfa1df drm_hwcomposer: CI: Update cuttlefish container tag
Rebuild the cuttlefish container.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-23 09:10:55 -07:00
Deborah Brouwer
58ad5d7232 drm_hwcomposer: CI: Build drm-hwcomposer apex
Currently cuttlefish is building the ranchu apex package. Instead
configure it to build the drm-hwcomposer apex package. This will make
it possible to hot-swap the apex package later in the CI pipeline.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-23 09:10:55 -07:00
Deborah Brouwer
1be7f545a4 drm_hwcomposer: CI: Fetch repos by release tag
Currently custom repos are fetched by commit sha. Instead fetch them by
release tag or branch name to be clear that the commit is not arbitrary.

Also update the mesa repository to the lastest release.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-23 09:10:55 -07:00
Deborah Brouwer
13d96bf492 drm_hwcomposer: CI: Fix file copying in cuttlefish
When building the cuttlefish tarball, the entire cvd-host_package is
copied instead of the individual files. This adds an extra step later
when the tarball is unpacked because the files have to be copied to
the correct location.

Fix the minor file copying issue to make the code cleaner.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-23 09:10:55 -07:00
Deborah Brouwer
28317655ba drm_hwcomposer: CI: Update android container tag
Rebuild the android container.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-23 09:10:55 -07:00
Deborah Brouwer
c5b3e1a597 drm_hwcomposer: CI: Add apex tools to android container
Add apexer and android.jar to the android container to support building
new apex packages in the cts/vts jobs.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-23 09:10:55 -07:00
Deborah Brouwer
ac63f967e8 drm_hwcomposer: CI: Update cuttlefish packages
Since the android container is being rebuilt, update the cuttlefish
packages that it uses from v1.0.1 -> v.1.5.0.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-23 09:10:55 -07:00
Deborah Brouwer
842681a9b6 drm_hwcomposer: CI: Use 22.04 LTS for android container
Currently the android container is using 24.10 just to be consistent
with the aospless container, but since 24.10 is reaching end of life,
rebuild the android container with Ubuntu 22.04 for long-term support.

Ubuntu 22.04 is a better base than 24.04 because the cuttlefish support
packages expect older package versions.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-23 09:10:55 -07:00
Deborah Brouwer
542eed1478 drm_hwcomposer: CI: Update aospless container tag
Rebuild the aospless container.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-23 09:10:55 -07:00
Deborah Brouwer
f046c16c11 drm_hwcomposer: CI: Move aospless flags to meson.build
Currently __ANDROID_API__ is defined by adding it directly to the
aospless cross-configuration file. But aospless is designed to use the
meson.build files in drm-hwcomposer, so put the flag in there instead.
This aligns better with the proper use of aospless.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-06-23 09:10:55 -07:00
Deborah Brouwer
56b63f4dfa drm_hwcomposer: CI: Use 24.04 LTS for aospless container
The aospless container uses the Ubuntu interim release 24.10 as its base
because, originally, clang 19 packages were not available in the Ubuntu
long-term support release 24.04. But these packages were backported to
24.04 in February 2025 as part of the 24.04.2 update.

Change the aospless container base to 24.04 since it now provides all
necessary packages and will ensure long-term support.
2025-06-23 09:10:55 -07:00