Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 33 additions & 10 deletions Runner/config/pkg_command_map.conf
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,8 @@ centos:package-set:bluetooth=bluez atheros-firmware expect
# Weston compositor and example-client mappings.
#
# Debian and Ubuntu provide the Weston compositor and example clients from
# the weston package.
# the weston package. CentOS splits the compositor and demo clients between
# weston and weston-demo.
# ---------------------------------------------------------------------------

apt:weston=weston
Expand All @@ -146,6 +147,20 @@ apt:package-set:weston-runtime=weston
# package sets.
apt:package-set:weston-runtime=weston libdrm-tests mesa-utils

centos:weston=weston
centos:weston-simple-egl=weston-demo
centos:weston-simple-shm=weston-demo
centos:weston-clickdot=weston-demo
centos:weston-cliptest=weston-demo
centos:weston-editor=weston-demo
centos:weston-flower=weston-demo
centos:weston-resizor=weston-demo
centos:weston-scaler=weston-demo
centos:weston-smoke=weston-demo
centos:eglinfo=egl-utils
centos:seatd=seatd
centos:package-set:weston-runtime=weston weston-demo seatd egl-utils

# ---------------------------------------------------------------------------
# X11 graphics validation package sets.
#
Expand Down Expand Up @@ -218,6 +233,10 @@ rpm:gst-launch-1.0=gstreamer1.0-tools
rpm:gst-inspect-1.0=gstreamer1.0-tools
rpm:efivar=efivar

# CentOS Stream uses the upstream KMSCube RPM name. Keep this explicit so
# command recovery queries the configured CentOS repositories for kmscube.
centos:kmscube=kmscube

# CentOS Stream 10 Bluetooth command ownership. Keep these OS-specific so
# Yocto RPM images retain their existing package policy. hciconfig and hcitool
# are deprecated BlueZ tools and are not shipped by CentOS Stream 10
Expand Down Expand Up @@ -368,8 +387,8 @@ ubuntu:package-set:urm=userspace-resource-manager userspace-resource-manager-tes
# for example:
# ./run.sh --overlay
#
# Debian packages are currently available from qli-staging. Once promoted to
# qli, only the source selection in the caller needs to change. CentOS packages
# Debian packages are currently available from qli-staging. Ubuntu packages
# come from the repositories already configured by the image. CentOS packages
# use the Qualcomm production RPM repositories.
#
# DKMS packages are skipped by lib_pkg_provider.sh when matching kernel headers
Expand All @@ -379,21 +398,25 @@ ubuntu:package-set:urm=userspace-resource-manager userspace-resource-manager-tes
# No qcom-distro mapping is provided, so Yocto remains no-op.
# ---------------------------------------------------------------------------

# Qualcomm proprietary graphics overlay package set.
debian:package-set:graphics=kgsl-dkms adreno-common libgbm-msm1 adreno-gles1 adreno-gles2 adreno-egl1 adreno-vulkan-icd adreno-opencl-icd adreno-opencl-dev
# Qualcomm proprietary graphics packages required by Weston EGL validation.
# Keep this set focused on KGSL, EGL, GLES, and the MSM GBM backend. Vulkan,
# OpenCL, and development packages are unrelated to this test path.
debian:package-set:graphics=kgsl-dkms adreno-common libgbm-msm1 adreno-gles1 adreno-gles2 adreno-egl1

# Upstream Debian Mesa/freedreno userspace required by the default KMSCube run.
debian:package-set:graphics-base=libegl-mesa0 libgl1-mesa-dri libgbm1 libegl1 libgles2 mesa-utils

# Ubuntu uses the same Mesa/freedreno base userspace as Debian.
ubuntu:package-set:graphics-base=libegl-mesa0 libgl1-mesa-dri libgbm1 libegl1 libgles2 mesa-utils

# Qualcomm proprietary graphics overlay package set for Ubuntu.
ubuntu:package-set:graphics=kgsl-dkms adreno-common libgbm-msm adreno-gles1 adreno-gles2 adreno-egl1 adreno-vulkan-icd adreno-opencl-icd adreno-opencl-dev
# Ubuntu Resolute uses the current qcom-adreno binary package family from its
# image-configured Qualcomm repository. Do not mix these packages with the
# Debian adreno package family from qli or qli-staging.
ubuntu:package-set:graphics=kgsl-dkms qcom-adreno-common1 libgbm-msm qcom-adreno-gles1 qcom-adreno-gles2 qcom-adreno-egl1

# CentOS Stream 10 Qualcomm graphics overlay. gbm-msm-backend is listed
# explicitly because graphics validation checks the installed GBM backend.
centos:package-set:graphics=gbm-msm-backend adreno-egl1 adreno-gles2 adreno-opencl-icd adreno-vulkan-icd
# CentOS Stream 10 Qualcomm graphics overlay. The RPM subpackage names follow
# the public pkg-rpm-adreno packaging and include only the Weston EGL runtime.
centos:package-set:graphics=kgsl-dkms gbm-msm-backend adreno-common adreno-gles1 adreno-gles2 adreno-egl1

# ---------------------------------------------------------------------------
# Audio validation package recovery.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Relaunch mode

./run.sh --allow-relaunch

This mode enables an explicit recovery attempt for a broken systemd-managed Weston runtime.
This mode enables an explicit recovery attempt for a broken or absent Weston runtime. On desktop distributions without a packaged `weston.service`, the shared helper starts Weston directly on the dynamically selected DRM device. CentOS installs `seatd` with the Weston runtime package set and starts `seatd.service` when the direct DRM launcher needs a seat provider.

In this mode, if Weston runtime is unhealthy, the testcase may:

Expand All @@ -79,7 +79,7 @@ stop weston.service

reset failed systemd state

restart the systemd-managed Weston runtime
restart the systemd-managed Weston runtime or launch the validated direct DRM runtime

re-check Weston service state, runtime directory, Wayland socket, and compositor process

Expand Down
2 changes: 2 additions & 0 deletions Runner/suites/Multimedia/Display/weston-clickdot/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
Runs `weston-clickdot` inside an existing Wayland/Weston session and validates the client created and committed
a Wayland surface using `WAYLAND_DEBUG` output.

On CentOS, the shared dependency path provides `weston`, `weston-demo`, `seatd`, and `egl-utils`. With `--allow-relaunch`, the test starts `seatd.service` when needed, launches Weston on the selected DRM device, and adopts the generated Wayland socket.

## What it validates

- A connected DRM display is present (otherwise SKIP)
Expand Down
2 changes: 2 additions & 0 deletions Runner/suites/Multimedia/Display/weston-cliptest/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
Runs `weston-cliptest` inside an existing Wayland/Weston session and validates the client created and committed
a Wayland surface using `WAYLAND_DEBUG` output.

On CentOS, the shared dependency path provides `weston`, `weston-demo`, `seatd`, and `egl-utils`. With `--allow-relaunch`, the test starts `seatd.service` when needed, launches Weston on the selected DRM device, and adopts the generated Wayland socket.

## What it validates

- A connected DRM display is present (otherwise SKIP)
Expand Down
3 changes: 2 additions & 1 deletion Runner/suites/Multimedia/Display/weston-editor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
Runs `weston-editor` inside an existing Wayland/Weston session and validates the client created and committed
a Wayland surface using `WAYLAND_DEBUG` output.

On CentOS, the shared dependency path provides `weston`, `weston-demo`, `seatd`, and `egl-utils`. With `--allow-relaunch`, the test starts `seatd.service` when needed, launches Weston on the selected DRM device, and adopts the generated Wayland socket.

## What it validates

- A connected DRM display is present (otherwise SKIP)
Expand All @@ -27,4 +29,3 @@ a Wayland surface using `WAYLAND_DEBUG` output.
cd Runner/suites/Multimedia/Display/weston-editor
./run.sh
cat weston-editor.res

2 changes: 2 additions & 0 deletions Runner/suites/Multimedia/Display/weston-flower/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

Runs `weston-flower` under a working Wayland session (existing Weston or private Weston started by helpers) and validates that the client actually exercised Wayland.

On CentOS, the shared dependency path provides `weston`, `weston-demo`, `seatd`, and `egl-utils`. With `--allow-relaunch`, the test starts `seatd.service` when needed, launches Weston on the selected DRM device, and adopts the generated Wayland socket.

## What this test validates

- A connected DRM display exists (otherwise SKIP)
Expand Down
2 changes: 2 additions & 0 deletions Runner/suites/Multimedia/Display/weston-resizor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
Runs `weston-resizor` inside an existing Wayland/Weston session and validates the client created and committed
a Wayland surface using `WAYLAND_DEBUG` output.

On CentOS, the shared dependency path provides `weston`, `weston-demo`, `seatd`, and `egl-utils`. With `--allow-relaunch`, the test starts `seatd.service` when needed, launches Weston on the selected DRM device, and adopts the generated Wayland socket.

## What it validates

- A connected DRM display is present (otherwise SKIP)
Expand Down
2 changes: 2 additions & 0 deletions Runner/suites/Multimedia/Display/weston-scaler/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

Runs `weston-scaler` as a Wayland client and validates it actually ran in a usable Wayland session.

On CentOS, the shared dependency path provides `weston`, `weston-demo`, `seatd`, and `egl-utils`. With `--allow-relaunch`, the test starts `seatd.service` when needed, launches Weston on the selected DRM device, and adopts the generated Wayland socket.

## What this test validates

1. **Display presence (DRM connector)**
Expand Down
3 changes: 2 additions & 1 deletion Runner/suites/Multimedia/Display/weston-smoke/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

Runs `weston-smoke` under a working Wayland session (existing Weston or private Weston started by helpers) and validates that the client actually exercised Wayland.

On CentOS, the shared dependency path provides `weston`, `weston-demo`, `seatd`, and `egl-utils`. With `--allow-relaunch`, the test starts `seatd.service` when needed, launches Weston on the selected DRM device, and adopts the generated Wayland socket.

## What this test validates

- A connected DRM display exists (otherwise SKIP)
Expand All @@ -23,4 +25,3 @@ Runs `weston-smoke` under a working Wayland session (existing Weston or private
- `weston-smoke.res` contains `weston-smoke PASS/FAIL/SKIP`
- `weston-smoke_run.log` contains WAYLAND_DEBUG output when protocol validation is enabled
- `weston-smoke_stdout_*.log` contains extra logs (including screenshot helper output)

8 changes: 7 additions & 1 deletion Runner/suites/Multimedia/Graphics/KMSCube/README_KMSCube.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,13 +116,19 @@ ensure EPEL and the Qualcomm CentOS 10 aarch64 and noarch repositories, refresh
DNF metadata, and install the documented Adreno overlay packages:

```text
adreno-egl1 adreno-gles2 adreno-opencl-icd adreno-vulkan-icd
kgsl-dkms gbm-msm-backend adreno-common adreno-gles1 adreno-gles2 adreno-egl1
```

The `gbm-msm-backend` dependency is tracked explicitly because this suite
validates the Qualcomm GBM backend before running KMSCube. Yocto execution
continues to use image-provided components.

`modetest` remains optional on CentOS because no verified `libdrm-tests`
package is available there. When `kmscube` is absent, the suite requests the
`kmscube` RPM from the configured CentOS repositories. If those repositories
do not publish the package, the suite reports an actionable SKIP asking for
the package to be published or provisioned in the image.

When the requested GPU stack has been installed but the running kernel still
uses the opposite `msm.skip_gpu` policy, the suite reports SKIP with a reboot
requirement. For example, overlay mode with `msm skip_gpu=N` requires a reboot
Expand Down
2 changes: 1 addition & 1 deletion Runner/suites/Multimedia/Graphics/KMSCube/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,7 @@ if [ "$OS_ID" = "centos" ]; then
if ! CHECK_DEPS_RECOVER="$CHECK_DEPS_RECOVER" \
CHECK_DEPS_NO_EXIT=1 \
check_dependencies kmscube; then
log_skip "$TESTNAME SKIP - required command kmscube is absent from the CentOS image"
log_skip "$TESTNAME SKIP - kmscube is unavailable from the configured CentOS repositories, publish or provision the kmscube package"
echo "$TESTNAME SKIP" >"$RES_FILE"
exit 0
fi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,21 @@ This suite validates OpenGL ES 2.0 through the `weston-simple-egl` Wayland clien

## Prerequisites

Yocto images must provide the required client and Weston runtime. On Ubuntu and Debian, the shared package provider ensures the mapped Weston and graphics packages.
Yocto images must provide the required client and Weston runtime. Debian and Ubuntu recover Weston from `weston`. CentOS recovers the compositor from `weston`, the example clients from `weston-demo`, the DRM seat provider from `seatd`, and `/usr/bin/eglinfo` from `egl-utils`. Overlay mode first accepts a complete image-provided Qualcomm EGL, GBM, and KGSL runtime. When graphics recovery is needed, it uses the distro-specific package family and repository policy.

- `weston-simple-egl` (Binary Available in /usr/bin) be default
- Write access to root filesystem (for environment setup)

## Desktop distribution modes

- `./run.sh --base` selects the upstream MSM/freedreno stack and ensures the OS-specific Mesa package set.
- `./run.sh --overlay` selects the Qualcomm KGSL/Adreno stack and ensures the OS-specific overlay package set. Package or DKMS changes can require a reboot before validation continues.
- Debian uses `libgbm-msm1`, while Ubuntu uses `libgbm-msm`. Set `GPU_OVERLAY_GBM_PACKAGE` only when an explicit override is required.
- `./run.sh --overlay` selects the Qualcomm KGSL/Adreno stack. A ready runtime is reused without package changes. Otherwise, the focused EGL/GLES package set is recovered and DKMS changes can require a reboot before validation continues.
- Debian uses the `adreno-*` packages from `qli-staging`. Ubuntu uses the `qcom-adreno-*` packages and existing image APT sources, never Debian `qli` or `qli-staging`. CentOS uses the `adreno-*` RPMs from the configured Qualcomm RPM repositories.
- The MSM GBM package is resolved from the distro package map: `libgbm-msm1` on Debian, `libgbm-msm` on Ubuntu, and `gbm-msm-backend` on CentOS. Set `GPU_OVERLAY_GBM_PACKAGE` only when an explicit override is required.
- Desktop automatic mode runs `weston-simple-egl -b` when the client advertises that option. This is an unsynchronized EGL throughput benchmark with a minimum functional FPS gate, not a display-refresh measurement.
- Yocto, other image-based runs, and `--strict-refresh-fps` keep the compositor-synchronized client mode. FPS evidence remains required by default. Use `--no-require-fps` only when connectivity and EGL execution are the intended coverage.
- On Ubuntu, the test reuses an active GNOME Wayland session when Weston is not running. A root-launched test executes the client as the Wayland socket owner without stopping or restarting GDM.
- On desktop distributions without a packaged `weston.service`, `--allow-relaunch` starts Weston directly on the dynamically selected DRM device and validates the resulting Wayland socket before launching the client. On CentOS, the shared runtime preparation starts the packaged `seatd.service` when needed. It does not enable the service persistently.
- GDM can throttle an unfocused greeter client. That path validates compositor connectivity and EGL startup while recording, but not performance-gating, any FPS samples.

Examples:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ Before running the testcase, ensure that:
- the target has the required Wayland runtime environment
- the display stack is already brought up on the system

On CentOS, the shared dependency path provides `weston`, `weston-demo`, `seatd`, and `egl-utils`. With `--allow-relaunch`, the test starts `seatd.service` when needed, launches Weston on the selected DRM device, and adopts the generated Wayland socket.

---

## Test Location
Expand Down
Loading
Loading