Compare commits
192 Commits
23.1
...
mesa-23.0.
Author | SHA1 | Date | |
---|---|---|---|
|
95b9a13e27 | ||
|
73cb9863a5 | ||
|
9397b1d83f | ||
|
ad2d053201 | ||
|
8766da2cdb | ||
|
aa6b386915 | ||
|
725bec9372 | ||
|
f0d63e70f1 | ||
|
e0b3d5c76a | ||
|
b6ccf26d26 | ||
|
39c160dd26 | ||
|
59ccc2966d | ||
|
a4b64b6c9c | ||
|
07e5de3b2b | ||
|
dd8e1b2693 | ||
|
a6267c3801 | ||
|
1001fa6aaf | ||
|
3024083f5d | ||
|
c70770b4f4 | ||
|
778a63e791 | ||
|
887e598277 | ||
|
bb0222b5cf | ||
|
656b086fcf | ||
|
edc9ab9b0f | ||
|
7c4a9a4c99 | ||
|
1d82337a2b | ||
|
abd2f1ee44 | ||
|
c0b137db13 | ||
|
7a979fc2dd | ||
|
73aa5be27e | ||
|
039a200e43 | ||
|
99a1c04fba | ||
|
5a22e9cf4c | ||
|
a9156d823b | ||
|
51e8278bc6 | ||
|
5985fbbbd1 | ||
|
22e6a085b4 | ||
|
bd964b4fc3 | ||
|
883b3ae0ca | ||
|
a31787312d | ||
|
cacdccbb15 | ||
|
745c11192f | ||
|
85c5197923 | ||
|
0cceab6eb9 | ||
|
796af8e799 | ||
|
47557044cb | ||
|
cf18e9d388 | ||
|
127d328f33 | ||
|
399ea13b33 | ||
|
d539e26ae0 | ||
|
3dfd0429d1 | ||
|
6f53119c27 | ||
|
251ee9b2b1 | ||
|
67068c91ff | ||
|
b0402b6bf7 | ||
|
b84c43476c | ||
|
099b95adaa | ||
|
3b2985fa35 | ||
|
9c00c2d9ff | ||
|
d34ff0b916 | ||
|
ccdb1221ea | ||
|
8bb100fc02 | ||
|
23336938ca | ||
|
c954ea7b3d | ||
|
bdeb93fb0f | ||
|
7c53e5748b | ||
|
1cafb71a19 | ||
|
9ac14f49cf | ||
|
2c2629f280 | ||
|
49d677d326 | ||
|
53c7beedec | ||
|
7c846e4606 | ||
|
0758a96117 | ||
|
7d62b72c65 | ||
|
00923a7d44 | ||
|
e89933a676 | ||
|
950f54d6a1 | ||
|
7013b3204c | ||
|
b9984bbc7d | ||
|
0bb555b64d | ||
|
19f9d41f80 | ||
|
e2153c29fe | ||
|
f9cf3599b4 | ||
|
633a208f1e | ||
|
3adff1c9d7 | ||
|
364a15c352 | ||
|
6d973fed48 | ||
|
86a7567ca6 | ||
|
1b444a7574 | ||
|
23659a5cce | ||
|
a5b18bd478 | ||
|
eac64397de | ||
|
89f0b69207 | ||
|
0d6434c842 | ||
|
98a6cfd395 | ||
|
48de75f438 | ||
|
5f76187f23 | ||
|
406ef423b9 | ||
|
3962bcfdae | ||
|
c172f1de89 | ||
|
f89be5c1d6 | ||
|
36ba0f36fd | ||
|
9eec52701f | ||
|
b204c4fb23 | ||
|
611a7b9f75 | ||
|
603914384a | ||
|
924a4de013 | ||
|
ab083f34d8 | ||
|
450ac592e2 | ||
|
497e3028f0 | ||
|
233f61ccdd | ||
|
09480330d6 | ||
|
e3ec2e2ea9 | ||
|
06072d3bb5 | ||
|
4ad9d7be36 | ||
|
d6418b173d | ||
|
f5a5b74b02 | ||
|
b27354806a | ||
|
ea4ecc3e72 | ||
|
598e985d65 | ||
|
0a9dc20094 | ||
|
488c900b08 | ||
|
eb112a38f6 | ||
|
6f59991d29 | ||
|
b435372078 | ||
|
becfa703df | ||
|
a3c2f78c3d | ||
|
01ff451d34 | ||
|
14ecd96183 | ||
|
6bd3bd5ae1 | ||
|
1984d994fb | ||
|
9cd9c7e863 | ||
|
7289901ce7 | ||
|
cb9b189166 | ||
|
f0d643eb27 | ||
|
0255c80d78 | ||
|
73091e4d27 | ||
|
440050346e | ||
|
c1d8827f5a | ||
|
c34510badf | ||
|
53e77d072b | ||
|
97cdeddcf3 | ||
|
e6bc0076e1 | ||
|
03980525cd | ||
|
89e4ad1b83 | ||
|
a1e3b3964c | ||
|
2d11fda237 | ||
|
34055e7822 | ||
|
d965740df1 | ||
|
6ad6660013 | ||
|
9590bf141f | ||
|
638dae71b0 | ||
|
22f2a32ed6 | ||
|
dc13019b78 | ||
|
22d6d67a46 | ||
|
c90f932257 | ||
|
e6313e8be3 | ||
|
5c92a8394b | ||
|
4e341d22c2 | ||
|
2dbdee9909 | ||
|
5510c75a4e | ||
|
5c3cd5da22 | ||
|
291c51a2ec | ||
|
41648b0e3f | ||
|
269dba25b6 | ||
|
de650de6d8 | ||
|
48adf7ae1e | ||
|
0b3e2cda24 | ||
|
d6c199ae15 | ||
|
aeb5a36003 | ||
|
1c6b8b8ad6 | ||
|
805065606d | ||
|
667218a8d2 | ||
|
05e9555046 | ||
|
c1393d1430 | ||
|
7dd8437e09 | ||
|
6b139c2be7 | ||
|
0b4c673810 | ||
|
e8dd7a275e | ||
|
20f8f6ebc6 | ||
|
ec70534827 | ||
|
fdf09a06ca | ||
|
35213f18b8 | ||
|
bbf4675847 | ||
|
668503534d | ||
|
4b0a1e19d6 | ||
|
2114fdf5eb | ||
|
54cfb552ab | ||
|
264d64cc6c | ||
|
a56dcf635e | ||
|
f081fa4047 | ||
|
376f8131d0 |
128
.gitlab-ci.yml
128
.gitlab-ci.yml
@@ -1,16 +1,3 @@
|
||||
workflow:
|
||||
rules:
|
||||
- if: $GITLAB_USER_LOGIN == "marge-bot" && $CI_COMMIT_BRANCH == null
|
||||
variables:
|
||||
MESA_CI_PERFORMANCE_ENABLED: 1
|
||||
- if: $GITLAB_USER_LOGIN == "marge-bot" && $CI_COMMIT_BRANCH
|
||||
variables:
|
||||
LAVA_JOB_PRIORITY: 40
|
||||
- if: $GITLAB_USER_LOGIN != "marge-bot"
|
||||
variables:
|
||||
LAVA_JOB_PRIORITY: 50
|
||||
- when: always
|
||||
|
||||
variables:
|
||||
FDO_UPSTREAM_REPO: mesa/mesa
|
||||
MESA_TEMPLATES_COMMIT: &ci-templates-commit d5aa3941aa03c2f716595116354fb81eb8012acb
|
||||
@@ -41,13 +28,10 @@ variables:
|
||||
|
||||
default:
|
||||
before_script:
|
||||
- >
|
||||
export SCRIPTS_DIR=$(mktemp -d) &&
|
||||
curl -L -s --retry 4 -f --retry-all-errors --retry-delay 60 -O --output-dir "${SCRIPTS_DIR}" "${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/setup-test-env.sh" &&
|
||||
chmod +x ${SCRIPTS_DIR}/setup-test-env.sh &&
|
||||
. ${SCRIPTS_DIR}/setup-test-env.sh &&
|
||||
echo -n "${CI_JOB_JWT}" > "${CI_JOB_JWT_FILE}" &&
|
||||
unset CI_JOB_JWT # Unsetting vulnerable env variables
|
||||
- echo -e "\e[0Ksection_start:$(date +%s):unset_env_vars_section[collapsed=true]\r\e[0KUnsetting vulnerable environment variables"
|
||||
- echo -n "${CI_JOB_JWT}" > "${CI_JOB_JWT_FILE}"
|
||||
- unset CI_JOB_JWT
|
||||
- echo -e "\e[0Ksection_end:$(date +%s):unset_env_vars_section\r\e[0K"
|
||||
|
||||
after_script:
|
||||
- >
|
||||
@@ -57,14 +41,15 @@ default:
|
||||
export CI_JOB_JWT="$(<${CI_JOB_JWT_FILE})" &&
|
||||
rm "${CI_JOB_JWT_FILE}"
|
||||
|
||||
# Retry when job fails. Failed jobs can be found in the Mesa CI Daily Reports:
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/?sort=created_date&state=opened&label_name%5B%5D=CI%20daily
|
||||
# Retry build or test jobs up to twice when the gitlab-runner itself fails somehow.
|
||||
retry:
|
||||
max: 1
|
||||
max: 2
|
||||
when:
|
||||
- runner_system_failure
|
||||
|
||||
include:
|
||||
- project: 'freedesktop/ci-templates'
|
||||
ref: 16bc29078de5e0a067ff84a1a199a3760d3b3811
|
||||
ref: ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2
|
||||
file:
|
||||
- '/templates/ci-fairy.yml'
|
||||
- project: 'freedesktop/ci-templates'
|
||||
@@ -79,7 +64,6 @@ include:
|
||||
- local: '.gitlab-ci/build/gitlab-ci.yml'
|
||||
- local: '.gitlab-ci/test/gitlab-ci.yml'
|
||||
- local: '.gitlab-ci/test-source-dep.yml'
|
||||
- local: 'docs/gitlab-ci.yml'
|
||||
- local: 'src/amd/ci/gitlab-ci.yml'
|
||||
- local: 'src/broadcom/ci/gitlab-ci.yml'
|
||||
- local: 'src/etnaviv/ci/gitlab-ci.yml'
|
||||
@@ -122,6 +106,15 @@ stages:
|
||||
# --------------------------------
|
||||
.rules-anchors:
|
||||
rules:
|
||||
# Pipeline for forked project branch
|
||||
- if: &is-forked-branch '$CI_COMMIT_BRANCH && $CI_PROJECT_NAMESPACE != "mesa"'
|
||||
when: manual
|
||||
# Forked project branch / pre-merge pipeline not for Marge bot
|
||||
- if: &is-forked-branch-or-pre-merge-not-for-marge '$CI_PROJECT_NAMESPACE != "mesa" || ($GITLAB_USER_LOGIN != "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event")'
|
||||
when: manual
|
||||
# Pipeline runs for the main branch of the upstream Mesa project
|
||||
- if: &is-mesa-main '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_COMMIT_BRANCH'
|
||||
when: always
|
||||
# Post-merge pipeline
|
||||
- if: &is-post-merge '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_BRANCH'
|
||||
when: on_success
|
||||
@@ -136,15 +129,82 @@ stages:
|
||||
when: on_success
|
||||
|
||||
|
||||
.docs-base:
|
||||
variables:
|
||||
BUILDER: html
|
||||
extends:
|
||||
- .fdo.ci-fairy
|
||||
- .build-rules
|
||||
artifacts:
|
||||
expose_as: 'Documentation preview'
|
||||
paths:
|
||||
- public/
|
||||
script:
|
||||
- apk --no-cache add graphviz doxygen
|
||||
- pip3 install sphinx===5.1.1 breathe===4.34.0 mako===1.2.3 sphinx_rtd_theme===1.0.0
|
||||
- docs/doxygen-wrapper.py --out-dir=docs/doxygen_xml
|
||||
- sphinx-build -W -b $BUILDER docs public
|
||||
|
||||
pages:
|
||||
extends: .docs-base
|
||||
stage: deploy
|
||||
needs: []
|
||||
rules:
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
- if: *is-mesa-main
|
||||
changes: &docs-or-ci
|
||||
- docs/**/*
|
||||
- .gitlab-ci.yml
|
||||
when: always
|
||||
# Other cases default to never
|
||||
|
||||
test-docs:
|
||||
extends: .docs-base
|
||||
# Cancel job if a newer commit is pushed to the same branch
|
||||
interruptible: true
|
||||
stage: deploy
|
||||
needs: []
|
||||
rules:
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
- if: *is-forked-branch
|
||||
changes: *docs-or-ci
|
||||
when: manual
|
||||
# Other cases default to never
|
||||
|
||||
test-docs-mr:
|
||||
extends:
|
||||
- test-docs
|
||||
needs:
|
||||
- sanity
|
||||
rules:
|
||||
- if: *is-pre-merge
|
||||
changes: *docs-or-ci
|
||||
when: on_success
|
||||
# Other cases default to never
|
||||
|
||||
lincheck-docs:
|
||||
extends: .docs-base
|
||||
# Cancel job if a newer commit is pushed to the same branch
|
||||
interruptible: true
|
||||
stage: deploy
|
||||
needs: []
|
||||
rules:
|
||||
- !reference [.scheduled_pipeline-rules, rules]
|
||||
allow_failure: true
|
||||
variables:
|
||||
BUILDER: linkcheck
|
||||
|
||||
# When to automatically run the CI for build jobs
|
||||
.build-rules:
|
||||
rules:
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
# If any files affecting the pipeline are changed, build/test jobs run
|
||||
# automatically once all dependency jobs have passed
|
||||
- changes: &all_paths
|
||||
- VERSION
|
||||
- bin/git_sha1_gen.py
|
||||
- bin/install_megadrivers.py
|
||||
- bin/meson_get_version.py
|
||||
- bin/symbols-check.py
|
||||
# GitLab CI
|
||||
- .gitlab-ci.yml
|
||||
@@ -174,6 +234,7 @@ stages:
|
||||
|
||||
.container-rules:
|
||||
rules:
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
# Run pipeline by default in the main project if any CI pipeline
|
||||
# configuration files were changed, to ensure docker images are up to date
|
||||
- if: *is-post-merge
|
||||
@@ -214,8 +275,6 @@ make git archive:
|
||||
script:
|
||||
# Compactify the .git directory
|
||||
- git gc --aggressive
|
||||
# Download & cache the perfetto subproject as well.
|
||||
- rm -rf subprojects/perfetto ; mkdir -p subprojects/perfetto && curl https://android.googlesource.com/platform/external/perfetto/+archive/$(grep 'revision =' subprojects/perfetto.wrap | cut -d ' ' -f3).tar.gz | tar zxf - -C subprojects/perfetto
|
||||
# compress the current folder
|
||||
- tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
|
||||
|
||||
@@ -240,3 +299,18 @@ sanity:
|
||||
when: on_failure
|
||||
reports:
|
||||
junit: check-*.xml
|
||||
|
||||
# Rules for tests that should not block merging, but should be available to
|
||||
# optionally run with the "play" button in the UI in pre-merge non-marge
|
||||
# pipelines. This should appear in "extends:" after any includes of
|
||||
# test-source-dep.yml rules, so that these rules replace those.
|
||||
.test-manual-mr:
|
||||
rules:
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
- if: *is-forked-branch-or-pre-merge-not-for-marge
|
||||
changes:
|
||||
*all_paths
|
||||
when: manual
|
||||
variables:
|
||||
JOB_TIMEOUT: 80
|
||||
|
||||
|
@@ -15,20 +15,3 @@ glx@glx_arb_sync_control@timing.*
|
||||
|
||||
# This test is not built with waffle, while we do build tests with waffle
|
||||
spec@!opengl 1.1@windowoverlap
|
||||
|
||||
# These tests all read from the front buffer after a swap. Given that we
|
||||
# run piglit tests in parallel in Mesa CI, and don't have a compositor
|
||||
# running, the frontbuffer reads may end up with undefined results from
|
||||
# windows overlapping us.
|
||||
#
|
||||
# Piglit does mark these tests as not to be run in parallel, but deqp-runner
|
||||
# doesn't respect that. We need to extend deqp-runner to allow some tests to be
|
||||
# marked as single-threaded and run after the rayon loop if we want to support
|
||||
# them.
|
||||
#
|
||||
# Note that "glx-" tests don't appear in x11-skips.txt because they can be
|
||||
# run even if PIGLIT_PLATFORM=gbm (for example)
|
||||
glx@glx-copy-sub-buffer.*
|
||||
# Reads the front buffer but it doesn't have to.
|
||||
# https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/755
|
||||
glx-swap-copy
|
||||
|
@@ -80,9 +80,8 @@ mkdir -p /nfs/results
|
||||
|
||||
rm -rf /tftp/*
|
||||
if echo "$BM_KERNEL" | grep -q http; then
|
||||
apt-get install -y curl
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
$BM_KERNEL -o /tftp/vmlinuz
|
||||
apt install -y wget
|
||||
wget $BM_KERNEL -O /tftp/vmlinuz
|
||||
else
|
||||
cp $BM_KERNEL /tftp/vmlinuz
|
||||
fi
|
||||
|
@@ -1,7 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
. "$SCRIPTS_DIR"/setup-test-env.sh
|
||||
|
||||
BM=$CI_PROJECT_DIR/install/bare-metal
|
||||
CI_COMMON=$CI_PROJECT_DIR/install/common
|
||||
|
||||
@@ -102,12 +100,10 @@ fi
|
||||
# moving that container to the runner. So, if BM_KERNEL+BM_DTB are URLs,
|
||||
# fetch them instead of looking in the container.
|
||||
if echo "$BM_KERNEL $BM_DTB" | grep -q http; then
|
||||
apt-get install -y curl
|
||||
apt install -y wget
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
"$BM_KERNEL" -o kernel
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
"$BM_DTB" -o dtb
|
||||
wget $BM_KERNEL -O kernel
|
||||
wget $BM_DTB -O dtb
|
||||
|
||||
cat kernel dtb > Image.gz-dtb
|
||||
rm kernel
|
||||
|
@@ -1,7 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
. "$SCRIPTS_DIR"/setup-test-env.sh
|
||||
|
||||
# Boot script for devices attached to a PoE switch, using NFS for the root
|
||||
# filesystem.
|
||||
|
||||
@@ -73,8 +71,6 @@ fi
|
||||
|
||||
set -ex
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
# Clear out any previous run's artifacts.
|
||||
rm -rf results/
|
||||
mkdir -p results
|
||||
@@ -83,18 +79,13 @@ mkdir -p results
|
||||
# state, since it's volume-mounted on the host.
|
||||
rsync -a --delete $BM_ROOTFS/ /nfs/
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
# If BM_BOOTFS is an URL, download it
|
||||
if echo $BM_BOOTFS | grep -q http; then
|
||||
apt-get install -y curl
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
"${FDO_HTTP_CACHE_URI:-}$BM_BOOTFS" -o /tmp/bootfs.tar
|
||||
apt install -y wget
|
||||
wget ${FDO_HTTP_CACHE_URI:-}$BM_BOOTFS -O /tmp/bootfs.tar
|
||||
BM_BOOTFS=/tmp/bootfs.tar
|
||||
fi
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
# If BM_BOOTFS is a file, assume it is a tarball and uncompress it
|
||||
if [ -f $BM_BOOTFS ]; then
|
||||
mkdir -p /tmp/bootfs
|
||||
@@ -102,20 +93,14 @@ if [ -f $BM_BOOTFS ]; then
|
||||
BM_BOOTFS=/tmp/bootfs
|
||||
fi
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
# Install kernel modules (it could be either in /lib/modules or
|
||||
# /usr/lib/modules, but we want to install in the latter)
|
||||
[ -d $BM_BOOTFS/usr/lib/modules ] && rsync -a $BM_BOOTFS/usr/lib/modules/ /nfs/usr/lib/modules/
|
||||
[ -d $BM_BOOTFS/lib/modules ] && rsync -a $BM_BOOTFS/lib/modules/ /nfs/lib/modules/
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
# Install kernel image + bootloader files
|
||||
rsync -aL --delete $BM_BOOTFS/boot/ /tftp/
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
# Set up the pxelinux config for Jetson Nano
|
||||
mkdir -p /tftp/pxelinux.cfg
|
||||
cat <<EOF >/tftp/pxelinux.cfg/default-arm-tegra210-p3450-0000
|
||||
@@ -147,8 +132,6 @@ EOF
|
||||
mkdir -p /nfs/results
|
||||
. $BM/rootfs-setup.sh /nfs
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
echo "$BM_CMDLINE" > /tftp/cmdline.txt
|
||||
|
||||
# Add some required options in config.txt
|
||||
@@ -172,12 +155,8 @@ while [ $((ATTEMPTS--)) -gt 0 ]; do
|
||||
done
|
||||
set -e
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
# Bring artifacts back from the NFS dir to the build dir where gitlab-runner
|
||||
# will look for them.
|
||||
cp -Rp /nfs/results/. results/
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
exit $ret
|
||||
|
@@ -8,17 +8,12 @@ mkdir -p $rootfs_dst/results
|
||||
cp $BM/bm-init.sh $rootfs_dst/init
|
||||
cp $CI_COMMON/init*.sh $rootfs_dst/
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
# Make JWT token available as file in the bare-metal storage to enable access
|
||||
# to MinIO
|
||||
cp "${CI_JOB_JWT_FILE}" "${rootfs_dst}${CI_JOB_JWT_FILE}"
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
cp $CI_COMMON/capture-devcoredump.sh $rootfs_dst/
|
||||
cp $CI_COMMON/intel-gpu-freq.sh $rootfs_dst/
|
||||
cp "$SCRIPTS_DIR/setup-test-env.sh" "$rootfs_dst/"
|
||||
|
||||
set +x
|
||||
|
||||
@@ -33,5 +28,3 @@ set -x
|
||||
# Add the Mesa drivers we built, and make a consistent symlink to them.
|
||||
mkdir -p $rootfs_dst/$CI_PROJECT_DIR
|
||||
rsync -aH --delete $CI_PROJECT_DIR/install/ $rootfs_dst/$CI_PROJECT_DIR/install/
|
||||
|
||||
date +'%F %T'
|
||||
|
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
_COMPILER=clang++
|
||||
. compiler-wrapper.sh
|
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
_COMPILER=clang
|
||||
. compiler-wrapper.sh
|
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
_COMPILER=g++
|
||||
. compiler-wrapper.sh
|
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
_COMPILER=gcc
|
||||
. compiler-wrapper.sh
|
@@ -1,21 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if command -V ccache >/dev/null 2>/dev/null; then
|
||||
CCACHE=ccache
|
||||
else
|
||||
CCACHE=
|
||||
fi
|
||||
|
||||
if [ "$(ps -p $(ps -p $PPID -o ppid --no-headers) -o comm --no-headers)" != ninja ]; then
|
||||
# Not invoked by ninja (e.g. for a meson feature check)
|
||||
exec $CCACHE $_COMPILER "$@"
|
||||
fi
|
||||
|
||||
if [ "$(eval printf "'%s'" "\"\${$(($#-1))}\"")" = "-c" ]; then
|
||||
# Not invoked for linking
|
||||
exec $CCACHE $_COMPILER "$@"
|
||||
fi
|
||||
|
||||
# Compiler invoked by ninja for linking. Add -Werror to turn compiler warnings into errors
|
||||
# with LTO. (meson's werror should arguably do this, but meanwhile we need to)
|
||||
exec $CCACHE $_COMPILER "$@" -Werror
|
@@ -10,7 +10,6 @@
|
||||
- _build/meson-logs/*.txt
|
||||
- _build/meson-logs/strace
|
||||
- shader-db
|
||||
- artifacts
|
||||
|
||||
# Just Linux
|
||||
.build-linux:
|
||||
@@ -22,16 +21,15 @@
|
||||
# Use ccache transparently, and print stats before/after
|
||||
before_script:
|
||||
- !reference [default, before_script]
|
||||
- |
|
||||
export PATH="/usr/lib/ccache:$PATH"
|
||||
export CCACHE_BASEDIR="$PWD"
|
||||
if test -x /usr/bin/ccache; then
|
||||
section_start ccache_before "ccache stats before build"
|
||||
ccache --show-stats
|
||||
section_end ccache_before
|
||||
fi
|
||||
- export PATH="/usr/lib/ccache:$PATH"
|
||||
- export CCACHE_BASEDIR="$PWD"
|
||||
- echo -e "\e[0Ksection_start:$(date +%s):ccache_before[collapsed=true]\r\e[0Kccache stats before build"
|
||||
- ccache --show-stats
|
||||
- echo -e "\e[0Ksection_end:$(date +%s):ccache_before\r\e[0K"
|
||||
after_script:
|
||||
- if test -x /usr/bin/ccache; then ccache --show-stats | grep "cache hit rate"; fi
|
||||
- echo -e "\e[0Ksection_start:$(date +%s):ccache_after[collapsed=true]\r\e[0Kccache stats after build"
|
||||
- ccache --show-stats
|
||||
- echo -e "\e[0Ksection_end:$(date +%s):ccache_after\r\e[0K"
|
||||
- !reference [default, after_script]
|
||||
|
||||
.build-windows:
|
||||
@@ -75,17 +73,16 @@ debian-testing:
|
||||
-D glx=dri
|
||||
-D gbm=enabled
|
||||
-D egl=enabled
|
||||
-D platforms=x11,wayland
|
||||
-D platforms=x11
|
||||
GALLIUM_ST: >
|
||||
-D dri3=enabled
|
||||
-D gallium-va=enabled
|
||||
GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,crocus,iris,i915"
|
||||
VULKAN_DRIVERS: "swrast,amd,intel,intel_hasvk,virtio-experimental"
|
||||
VULKAN_DRIVERS: "swrast,amd,intel,virtio-experimental"
|
||||
BUILDTYPE: "debugoptimized"
|
||||
EXTRA_OPTION: >
|
||||
-D spirv-to-dxil=true
|
||||
-D valgrind=disabled
|
||||
-D perfetto=true
|
||||
-D valgrind=false
|
||||
MINIO_ARTIFACT_NAME: mesa-amd64
|
||||
LLVM_VERSION: "13"
|
||||
script:
|
||||
@@ -103,7 +100,7 @@ debian-testing-asan:
|
||||
-Wno-error=stringop-truncation
|
||||
EXTRA_OPTION: >
|
||||
-D b_sanitize=address
|
||||
-D valgrind=disabled
|
||||
-D valgrind=false
|
||||
-D tools=dlclose-skip
|
||||
MINIO_ARTIFACT_NAME: ""
|
||||
ARTIFACTS_DEBUG_SYMBOLS: 1
|
||||
@@ -140,13 +137,12 @@ debian-testing-msan:
|
||||
GALLIUM_DRIVERS: "swrast"
|
||||
BUILDTYPE: "debugoptimized"
|
||||
EXTRA_OPTION: >
|
||||
-D valgrind=disabled
|
||||
-D valgrind=false
|
||||
script:
|
||||
- .gitlab-ci/meson/build.sh
|
||||
- .gitlab-ci/prepare-artifacts.sh
|
||||
|
||||
# TODO: remove together with Clover
|
||||
.debian-clover-testing:
|
||||
debian-clover-testing:
|
||||
extends:
|
||||
- .debian-cl-testing
|
||||
variables:
|
||||
@@ -189,17 +185,12 @@ debian-build-testing:
|
||||
-D tools=drm-shim,etnaviv,freedreno,glsl,intel,intel-ui,nir,nouveau,lima,panfrost,asahi
|
||||
-D b_lto=true
|
||||
LLVM_VERSION: 13
|
||||
script: |
|
||||
section_start lava-pytest "lava-pytest"
|
||||
.gitlab-ci/lava/lava-pytest.sh
|
||||
section_switch shellcheck "shellcheck"
|
||||
.gitlab-ci/run-shellcheck.sh
|
||||
section_switch yamllint "yamllint"
|
||||
.gitlab-ci/run-yamllint.sh
|
||||
section_switch meson "meson"
|
||||
.gitlab-ci/meson/build.sh
|
||||
section_switch shader-db "shader-db"
|
||||
.gitlab-ci/run-shader-db.sh
|
||||
script:
|
||||
- .gitlab-ci/lava/lava-pytest.sh
|
||||
- .gitlab-ci/run-shellcheck.sh
|
||||
- .gitlab-ci/run-yamllint.sh
|
||||
- .gitlab-ci/meson/build.sh
|
||||
- .gitlab-ci/run-shader-db.sh
|
||||
|
||||
# Test a release build with -Werror so new warnings don't sneak in.
|
||||
debian-release:
|
||||
@@ -225,17 +216,15 @@ debian-release:
|
||||
-D llvm=enabled
|
||||
GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,crocus"
|
||||
VULKAN_DRIVERS: "amd,imagination-experimental,microsoft-experimental"
|
||||
BUILDTYPE: "release"
|
||||
EXTRA_OPTION: >
|
||||
-D spirv-to-dxil=true
|
||||
-D osmesa=true
|
||||
-D tools=all
|
||||
-D intel-clc=enabled
|
||||
-D imagination-srv=true
|
||||
BUILDTYPE: "release"
|
||||
MINIO_ARTIFACT_NAME: "mesa-amd64-${BUILDTYPE}"
|
||||
script:
|
||||
- .gitlab-ci/meson/build.sh
|
||||
- 'if [ -n "$MESA_CI_PERFORMANCE_ENABLED" ]; then .gitlab-ci/prepare-artifacts.sh; fi'
|
||||
|
||||
alpine-build-testing:
|
||||
extends:
|
||||
@@ -281,13 +270,8 @@ fedora-release:
|
||||
- .use-fedora/x86_build
|
||||
variables:
|
||||
BUILDTYPE: "release"
|
||||
C_LINK_ARGS: >
|
||||
C_ARGS: >
|
||||
-Wno-error=array-bounds
|
||||
-Wno-error=stringop-overflow
|
||||
-Wno-error=stringop-overread
|
||||
CPP_LINK_ARGS: >
|
||||
-Wno-error=array-bounds
|
||||
-Wno-error=stringop-overflow
|
||||
-Wno-error=stringop-overread
|
||||
DRI_LOADERS: >
|
||||
-D glx=dri
|
||||
@@ -295,15 +279,15 @@ fedora-release:
|
||||
-D egl=enabled
|
||||
-D glvnd=true
|
||||
-D platforms=x11,wayland
|
||||
# intel-clc disabled, we need llvm-spirv-translator 13.0+, Fedora 34 only packages 12.0.
|
||||
EXTRA_OPTION: >
|
||||
-D b_lto=true
|
||||
-D osmesa=true
|
||||
-D selinux=true
|
||||
-D tools=drm-shim,etnaviv,freedreno,glsl,intel,nir,nouveau,lima,panfrost,imagination
|
||||
-D vulkan-layers=device-select,overlay
|
||||
-D intel-clc=enabled
|
||||
-D intel-clc=disabled
|
||||
-D imagination-srv=true
|
||||
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,i915,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink"
|
||||
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink"
|
||||
GALLIUM_ST: >
|
||||
-D dri3=enabled
|
||||
-D gallium-extra-hud=true
|
||||
@@ -321,7 +305,7 @@ fedora-release:
|
||||
-D shared-llvm=enabled
|
||||
LLVM_VERSION: ""
|
||||
UNWIND: "disabled"
|
||||
VULKAN_DRIVERS: "amd,broadcom,freedreno,imagination-experimental,intel,intel_hasvk"
|
||||
VULKAN_DRIVERS: "amd,broadcom,freedreno,intel,imagination-experimental"
|
||||
script:
|
||||
- .gitlab-ci/meson/build.sh
|
||||
|
||||
@@ -329,7 +313,6 @@ debian-android:
|
||||
extends:
|
||||
- .meson-cross
|
||||
- .use-debian/android_build
|
||||
- .ci-deqp-artifacts
|
||||
variables:
|
||||
UNWIND: "disabled"
|
||||
C_ARGS: >
|
||||
@@ -337,13 +320,8 @@ debian-android:
|
||||
-Wno-error=constant-conversion
|
||||
-Wno-error=enum-conversion
|
||||
-Wno-error=initializer-overrides
|
||||
-Wno-error=missing-braces
|
||||
-Wno-error=sometimes-uninitialized
|
||||
-Wno-error=implicit-const-int-float-conversion
|
||||
CPP_ARGS: >
|
||||
-Wno-error=c99-designator
|
||||
-Wno-error=unused-variable
|
||||
-Wno-error=unused-but-set-variable
|
||||
-Wno-error=self-assign
|
||||
DRI_LOADERS: >
|
||||
-D glx=disabled
|
||||
-D gbm=disabled
|
||||
@@ -352,9 +330,8 @@ debian-android:
|
||||
EXTRA_OPTION: >
|
||||
-D android-stub=true
|
||||
-D llvm=disabled
|
||||
-D platform-sdk-version=33
|
||||
-D valgrind=disabled
|
||||
-D android-libbacktrace=disabled
|
||||
-D platform-sdk-version=29
|
||||
-D valgrind=false
|
||||
GALLIUM_ST: >
|
||||
-D dri3=disabled
|
||||
-D gallium-vdpau=disabled
|
||||
@@ -366,17 +343,14 @@ debian-android:
|
||||
-D gallium-rusticl=false
|
||||
LLVM_VERSION: ""
|
||||
PKG_CONFIG_LIBDIR: "/disable/non/android/system/pc/files"
|
||||
ARTIFACTS_DEBUG_SYMBOLS: 1
|
||||
MINIO_ARTIFACT_NAME: mesa-x86_64-android
|
||||
script:
|
||||
- CROSS=aarch64-linux-android GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d VULKAN_DRIVERS=freedreno,broadcom,virtio-experimental .gitlab-ci/meson/build.sh
|
||||
- PKG_CONFIG_PATH=/usr/local/lib/aarch64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/pkgconfig/ CROSS=aarch64-linux-android GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d VULKAN_DRIVERS=freedreno,broadcom,virtio-experimental .gitlab-ci/meson/build.sh
|
||||
# x86_64 build:
|
||||
# Can't do Intel because gen_decoder.c currently requires libexpat, which
|
||||
# is not a dependency that AOSP wants to accept. Can't do Radeon Gallium
|
||||
# drivers because they requires LLVM, which we don't have an Android build
|
||||
# of.
|
||||
- CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris,virgl VULKAN_DRIVERS=amd,intel .gitlab-ci/meson/build.sh
|
||||
- .gitlab-ci/prepare-artifacts.sh
|
||||
- PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/pkgconfig/ CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris VULKAN_DRIVERS=amd,intel .gitlab-ci/meson/build.sh
|
||||
|
||||
.meson-cross:
|
||||
extends:
|
||||
@@ -419,7 +393,7 @@ debian-armhf:
|
||||
CROSS: armhf
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=disabled
|
||||
-D valgrind=disabled
|
||||
-D valgrind=false
|
||||
MINIO_ARTIFACT_NAME: mesa-armhf
|
||||
# The strip command segfaults, failing to strip the binary and leaving
|
||||
# tempfiles in our artifacts.
|
||||
@@ -436,9 +410,8 @@ debian-arm64:
|
||||
VULKAN_DRIVERS: "freedreno,broadcom,panfrost,imagination-experimental"
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=disabled
|
||||
-D valgrind=disabled
|
||||
-D valgrind=false
|
||||
-D imagination-srv=true
|
||||
-D perfetto=true
|
||||
MINIO_ARTIFACT_NAME: mesa-arm64
|
||||
script:
|
||||
- .gitlab-ci/meson/build.sh
|
||||
@@ -451,7 +424,7 @@ debian-arm64-asan:
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=disabled
|
||||
-D b_sanitize=address
|
||||
-D valgrind=disabled
|
||||
-D valgrind=false
|
||||
-D tools=dlclose-skip
|
||||
ARTIFACTS_DEBUG_SYMBOLS: 1
|
||||
MINIO_ARTIFACT_NAME: mesa-arm64-asan
|
||||
@@ -468,18 +441,6 @@ debian-arm64-build-test:
|
||||
script:
|
||||
- .gitlab-ci/meson/build.sh
|
||||
|
||||
debian-arm64-release:
|
||||
extends:
|
||||
- debian-arm64
|
||||
variables:
|
||||
BUILDTYPE: release
|
||||
MINIO_ARTIFACT_NAME: mesa-arm64-${BUILDTYPE}
|
||||
C_ARGS: >
|
||||
-Wno-error=stringop-truncation
|
||||
script:
|
||||
- .gitlab-ci/meson/build.sh
|
||||
- 'if [ -n "$MESA_CI_PERFORMANCE_ENABLED" ]; then .gitlab-ci/prepare-artifacts.sh; fi'
|
||||
|
||||
debian-clang:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
@@ -564,10 +525,9 @@ windows-vs2019:
|
||||
-D egl=disabled
|
||||
-D gbm=disabled
|
||||
EXTRA_OPTION: >
|
||||
-D valgrind=disabled
|
||||
-D valgrind=false
|
||||
|
||||
# TODO: remove with Clover
|
||||
.debian-clover:
|
||||
debian-clover:
|
||||
extends: .debian-cl
|
||||
variables:
|
||||
GALLIUM_DRIVERS: "r600,radeonsi,swrast"
|
||||
@@ -661,21 +621,26 @@ debian-ppc64el:
|
||||
GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl,zink"
|
||||
VULKAN_DRIVERS: "amd,swrast"
|
||||
|
||||
# Disabled as it hangs with winedbg on shared runners
|
||||
.debian-mingw32-x86_64:
|
||||
debian-mingw32-x86_64:
|
||||
extends: .meson-build_mingw
|
||||
stage: build-misc
|
||||
variables:
|
||||
UNWIND: "disabled"
|
||||
C_ARGS: >
|
||||
-Wno-error=format
|
||||
-Wno-error=unused-but-set-variable
|
||||
CPP_ARGS: >
|
||||
-Wno-error=format
|
||||
-Wno-error=format-extra-args
|
||||
-Wno-error=deprecated-declarations
|
||||
-Wno-error=unused-function
|
||||
-Wno-error=unused-variable
|
||||
-Wno-error=unused-but-set-variable
|
||||
-Wno-error=unused-value
|
||||
-Wno-error=switch
|
||||
-Wno-error=parentheses
|
||||
-Wno-error=missing-prototypes
|
||||
-Wno-error=sign-compare
|
||||
-Wno-error=narrowing
|
||||
-Wno-error=overflow
|
||||
CPP_ARGS: $C_ARGS
|
||||
GALLIUM_DRIVERS: "swrast,d3d12,zink"
|
||||
VULKAN_DRIVERS: "swrast,amd,microsoft-experimental"
|
||||
GALLIUM_ST: >
|
||||
@@ -685,7 +650,7 @@ debian-ppc64el:
|
||||
-D microsoft-clc=enabled
|
||||
-D static-libclc=all
|
||||
-D llvm=enabled
|
||||
-D gallium-va=enabled
|
||||
-D gallium-va=true
|
||||
-D video-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec
|
||||
EXTRA_OPTION: >
|
||||
-D min-windows-version=7
|
||||
|
@@ -10,7 +10,6 @@ for var in \
|
||||
CI_COMMIT_TITLE \
|
||||
CI_JOB_ID \
|
||||
CI_JOB_JWT_FILE \
|
||||
CI_JOB_STARTED_AT \
|
||||
CI_JOB_NAME \
|
||||
CI_JOB_URL \
|
||||
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME \
|
||||
@@ -28,7 +27,6 @@ for var in \
|
||||
CI_SERVER_URL \
|
||||
CROSVM_GALLIUM_DRIVER \
|
||||
CROSVM_GPU_ARGS \
|
||||
CURRENT_SECTION \
|
||||
DEQP_BIN_DIR \
|
||||
DEQP_CONFIG \
|
||||
DEQP_EXPECTED_RENDERER \
|
||||
@@ -117,8 +115,6 @@ for var in \
|
||||
VK_DRIVER \
|
||||
VK_ICD_FILENAMES \
|
||||
VKD3D_PROTON_RESULTS \
|
||||
ZINK_DESCRIPTORS \
|
||||
LVP_POISON_MEMORY \
|
||||
; do
|
||||
if [ -n "${!var+x}" ]; then
|
||||
echo "export $var=${!var@Q}"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
# Make sure to kill itself and all the children process from this script on
|
||||
# exiting, since any console output may interfere with LAVA signals handling,
|
||||
@@ -36,10 +36,7 @@ BACKGROUND_PIDS=
|
||||
# Second-stage init, used to set up devices and our job environment before
|
||||
# running tests.
|
||||
|
||||
for path in '/set-job-env-vars.sh' './set-job-env-vars.sh'; do
|
||||
[ -f "$path" ] && source "$path"
|
||||
done
|
||||
. "$SCRIPTS_DIR"/setup-test-env.sh
|
||||
. /set-job-env-vars.sh
|
||||
|
||||
set -ex
|
||||
|
||||
@@ -76,8 +73,7 @@ if [ "$HWCI_KVM" = "true" ]; then
|
||||
modprobe ${KVM_KERNEL_MODULE}
|
||||
|
||||
mkdir -p /lava-files
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o "/lava-files/${KERNEL_IMAGE_NAME}" \
|
||||
wget -S --progress=dot:giga -O /lava-files/${KERNEL_IMAGE_NAME} \
|
||||
"${KERNEL_IMAGE_BASE_URL}/${KERNEL_IMAGE_NAME}"
|
||||
fi
|
||||
|
||||
@@ -147,27 +143,23 @@ if [ -n "$HWCI_START_XORG" ]; then
|
||||
fi
|
||||
|
||||
if [ -n "$HWCI_START_WESTON" ]; then
|
||||
WESTON_X11_SOCK="/tmp/.X11-unix/X0"
|
||||
if [ -n "$HWCI_START_XORG" ]; then
|
||||
echo "Please consider dropping HWCI_START_XORG and instead using Weston XWayland for testing."
|
||||
WESTON_X11_SOCK="/tmp/.X11-unix/X1"
|
||||
fi
|
||||
export WAYLAND_DISPLAY=wayland-0
|
||||
export XDG_RUNTIME_DIR=/run/user
|
||||
mkdir -p $XDG_RUNTIME_DIR
|
||||
|
||||
# Display server is Weston Xwayland when HWCI_START_XORG is not set or Xorg when it's
|
||||
# Xwayland to be used when HWCI_START_XORG is not set
|
||||
export DISPLAY=:0
|
||||
mkdir -p /tmp/.X11-unix
|
||||
|
||||
env \
|
||||
VK_ICD_FILENAMES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$(uname -m).json" \
|
||||
weston -Bheadless-backend.so --use-gl -Swayland-0 --xwayland --idle-time=0 &
|
||||
BACKGROUND_PIDS="$! $BACKGROUND_PIDS"
|
||||
|
||||
while [ ! -S "$WESTON_X11_SOCK" ]; do sleep 1; done
|
||||
VK_ICD_FILENAMES=/install/share/vulkan/icd.d/${VK_DRIVER}_icd.`uname -m`.json \
|
||||
weston -Bheadless-backend.so --use-gl -Swayland-0 --xwayland &
|
||||
export WAYLAND_DISPLAY=wayland-0
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
RESULT=fail
|
||||
set +e
|
||||
bash -c ". $SCRIPTS_DIR/setup-test-env.sh && $HWCI_TEST_SCRIPT"
|
||||
sh -c "$HWCI_TEST_SCRIPT"
|
||||
EXIT_CODE=$?
|
||||
set -e
|
||||
|
||||
@@ -189,7 +181,7 @@ fi
|
||||
|
||||
# We still need to echo the hwci: mesa message, as some scripts rely on it, such
|
||||
# as the python ones inside the bare-metal folder
|
||||
[ ${EXIT_CODE} -eq 0 ] && RESULT=pass || RESULT=fail
|
||||
[ ${EXIT_CODE} -eq 0 ] && RESULT=pass
|
||||
|
||||
set +x
|
||||
echo "hwci: mesa: $RESULT"
|
||||
|
@@ -1,174 +0,0 @@
|
||||
From bf8ada0d15f94824ee1643d4e17a66dffdbaf2e5 Mon Sep 17 00:00:00 2001
|
||||
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
|
||||
Date: Fri, 26 Aug 2022 18:24:27 +0200
|
||||
Subject: [PATCH 1/2] Allow running on Android from the command line
|
||||
|
||||
For testing the Android EGL platform without having to go via the
|
||||
Android activity manager, build deqp-egl.
|
||||
|
||||
Tests that render to native windows are unsupported, as command line
|
||||
programs cannot create windows on Android.
|
||||
|
||||
$ cmake -S . -B build/ -DDEQP_TARGET=android -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DCMAKE_C_FLAGS=-Werror -DCMAKE_CXX_FLAGS=-Werror -DANDROID_NDK_PATH=./android-ndk-r21d -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28 -DGLCTS_GTF_TARGET=gles32 -G Ninja
|
||||
$ ninja -C build modules/egl/deqp-egl
|
||||
|
||||
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
|
||||
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
|
||||
---
|
||||
CMakeLists.txt | 36 ++-----------------
|
||||
.../android/tcuAndroidNativeActivity.cpp | 36 ++++++++++---------
|
||||
.../platform/android/tcuAndroidPlatform.cpp | 12 ++++++-
|
||||
3 files changed, 33 insertions(+), 51 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 1ff2bb9..8c76abb 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -249,7 +249,7 @@ include_directories(
|
||||
external/vulkancts/framework/vulkan/generated/vulkan
|
||||
)
|
||||
|
||||
-if (DE_OS_IS_ANDROID OR DE_OS_IS_IOS)
|
||||
+if (DE_OS_IS_IOS)
|
||||
# On Android deqp modules are compiled as libraries and linked into final .so
|
||||
set(DEQP_MODULE_LIBRARIES )
|
||||
set(DEQP_MODULE_ENTRY_POINTS )
|
||||
@@ -293,7 +293,7 @@ macro (add_deqp_module MODULE_NAME SRCS LIBS EXECLIBS ENTRY)
|
||||
set(DEQP_MODULE_LIBRARIES ${DEQP_MODULE_LIBRARIES} PARENT_SCOPE)
|
||||
set(DEQP_MODULE_ENTRY_POINTS ${DEQP_MODULE_ENTRY_POINTS} PARENT_SCOPE)
|
||||
|
||||
- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS)
|
||||
+ if (NOT DE_OS_IS_IOS)
|
||||
# Executable target
|
||||
add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY})
|
||||
target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}")
|
||||
@@ -367,37 +367,7 @@ add_subdirectory(external/vulkancts/vkscpc)
|
||||
add_subdirectory(external/openglcts)
|
||||
|
||||
# Single-binary targets
|
||||
-if (DE_OS_IS_ANDROID)
|
||||
- include_directories(executor)
|
||||
- include_directories(${PROJECT_BINARY_DIR}/external/vulkancts/framework/vulkan)
|
||||
-
|
||||
- set(DEQP_SRCS
|
||||
- framework/platform/android/tcuAndroidMain.cpp
|
||||
- framework/platform/android/tcuAndroidJNI.cpp
|
||||
- framework/platform/android/tcuAndroidPlatformCapabilityQueryJNI.cpp
|
||||
- framework/platform/android/tcuTestLogParserJNI.cpp
|
||||
- ${DEQP_MODULE_ENTRY_POINTS}
|
||||
- )
|
||||
-
|
||||
- set(DEQP_LIBS
|
||||
- tcutil-platform
|
||||
- xecore
|
||||
- ${DEQP_MODULE_LIBRARIES}
|
||||
- )
|
||||
-
|
||||
- add_library(deqp SHARED ${DEQP_SRCS})
|
||||
- target_link_libraries(deqp ${DEQP_LIBS})
|
||||
-
|
||||
- # Separate out the debug information because it's enormous
|
||||
- add_custom_command(TARGET deqp POST_BUILD
|
||||
- COMMAND ${CMAKE_STRIP} --only-keep-debug -o $<TARGET_FILE:deqp>.debug $<TARGET_FILE:deqp>
|
||||
- COMMAND ${CMAKE_STRIP} -g $<TARGET_FILE:deqp>)
|
||||
-
|
||||
- # Needed by OpenGL CTS that defines its own activity but depends on
|
||||
- # common Android support code.
|
||||
- target_include_directories(deqp PRIVATE framework/platform/android)
|
||||
-
|
||||
-elseif (DE_OS_IS_IOS)
|
||||
+if (DE_OS_IS_IOS)
|
||||
# Code sign identity
|
||||
set(DEQP_IOS_CODE_SIGN_IDENTITY "drawElements" CACHE STRING "Code sign identity for iOS build")
|
||||
|
||||
diff --git a/framework/platform/android/tcuAndroidNativeActivity.cpp b/framework/platform/android/tcuAndroidNativeActivity.cpp
|
||||
index 6f8cd8f..b83e30f 100644
|
||||
--- a/framework/platform/android/tcuAndroidNativeActivity.cpp
|
||||
+++ b/framework/platform/android/tcuAndroidNativeActivity.cpp
|
||||
@@ -116,23 +116,25 @@ namespace Android
|
||||
NativeActivity::NativeActivity (ANativeActivity* activity)
|
||||
: m_activity(activity)
|
||||
{
|
||||
- activity->instance = (void*)this;
|
||||
- activity->callbacks->onStart = onStartCallback;
|
||||
- activity->callbacks->onResume = onResumeCallback;
|
||||
- activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback;
|
||||
- activity->callbacks->onPause = onPauseCallback;
|
||||
- activity->callbacks->onStop = onStopCallback;
|
||||
- activity->callbacks->onDestroy = onDestroyCallback;
|
||||
- activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback;
|
||||
- activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback;
|
||||
- activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback;
|
||||
- activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback;
|
||||
- activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback;
|
||||
- activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback;
|
||||
- activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback;
|
||||
- activity->callbacks->onContentRectChanged = onContentRectChangedCallback;
|
||||
- activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback;
|
||||
- activity->callbacks->onLowMemory = onLowMemoryCallback;
|
||||
+ if (activity) {
|
||||
+ activity->instance = (void*)this;
|
||||
+ activity->callbacks->onStart = onStartCallback;
|
||||
+ activity->callbacks->onResume = onResumeCallback;
|
||||
+ activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback;
|
||||
+ activity->callbacks->onPause = onPauseCallback;
|
||||
+ activity->callbacks->onStop = onStopCallback;
|
||||
+ activity->callbacks->onDestroy = onDestroyCallback;
|
||||
+ activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback;
|
||||
+ activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback;
|
||||
+ activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback;
|
||||
+ activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback;
|
||||
+ activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback;
|
||||
+ activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback;
|
||||
+ activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback;
|
||||
+ activity->callbacks->onContentRectChanged = onContentRectChangedCallback;
|
||||
+ activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback;
|
||||
+ activity->callbacks->onLowMemory = onLowMemoryCallback;
|
||||
+ }
|
||||
}
|
||||
|
||||
NativeActivity::~NativeActivity (void)
|
||||
diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp
|
||||
index 69ab384..d7288f6 100644
|
||||
--- a/framework/platform/android/tcuAndroidPlatform.cpp
|
||||
+++ b/framework/platform/android/tcuAndroidPlatform.cpp
|
||||
@@ -22,6 +22,7 @@
|
||||
*//*--------------------------------------------------------------------*/
|
||||
|
||||
#include "tcuAndroidPlatform.hpp"
|
||||
+#include "tcuAndroidNativeActivity.hpp"
|
||||
#include "tcuAndroidUtil.hpp"
|
||||
#include "gluRenderContext.hpp"
|
||||
#include "egluNativeDisplay.hpp"
|
||||
@@ -170,7 +171,7 @@ eglu::NativeWindow* NativeWindowFactory::createWindow (const eglu::WindowParams&
|
||||
Window* window = m_windowRegistry.tryAcquireWindow();
|
||||
|
||||
if (!window)
|
||||
- throw ResourceError("Native window is not available", DE_NULL, __FILE__, __LINE__);
|
||||
+ throw NotSupportedError("Native window is not available", DE_NULL, __FILE__, __LINE__);
|
||||
|
||||
return new NativeWindow(window, params.width, params.height, format);
|
||||
}
|
||||
@@ -286,6 +287,9 @@ static size_t getTotalSystemMemory (ANativeActivity* activity)
|
||||
|
||||
try
|
||||
{
|
||||
+ if (!activity)
|
||||
+ throw tcu::InternalError("No activity (running from command line?");
|
||||
+
|
||||
const size_t totalMemory = getTotalAndroidSystemMemory(activity);
|
||||
print("Device has %.2f MiB of system memory\n", static_cast<double>(totalMemory) / static_cast<double>(MiB));
|
||||
return totalMemory;
|
||||
@@ -382,3 +386,9 @@ bool Platform::hasDisplay (vk::wsi::Type wsiType) const
|
||||
|
||||
} // Android
|
||||
} // tcu
|
||||
+
|
||||
+tcu::Platform* createPlatform (void)
|
||||
+{
|
||||
+ tcu::Android::NativeActivity activity(NULL);
|
||||
+ return new tcu::Android::Platform(activity);
|
||||
+}
|
||||
--
|
||||
2.39.1
|
||||
|
@@ -1,161 +0,0 @@
|
||||
From 6d99990e93869e361035b7c06c05183041dec8b4 Mon Sep 17 00:00:00 2001
|
||||
From: Ricardo Garcia <rgarcia@igalia.com>
|
||||
Date: Mon, 20 Feb 2023 13:57:53 +0100
|
||||
Subject: [PATCH] Fix build for the surfaceless and null-WS target platforms
|
||||
|
||||
Both platforms should not be considered for building Vulkan Video, which
|
||||
is only available in the normal Linux and Win32 targets, and their
|
||||
createLibrary platform methods do not take a library type argument.
|
||||
|
||||
No test results should be affected by these changes.
|
||||
|
||||
Components: Framework
|
||||
VK-GL-CTS issue: 4295
|
||||
|
||||
Change-Id: I4de5b42685899099a9cfcf7da64fe299fef61ffc
|
||||
---
|
||||
external/vulkancts/framework/vulkan/vkPlatform.hpp | 2 +-
|
||||
.../vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp | 2 +-
|
||||
external/vulkancts/modules/vulkan/video/CMakeLists.txt | 2 +-
|
||||
.../modules/vulkan/video/vktVideoSessionNvUtils.cpp | 2 +-
|
||||
external/vulkancts/modules/vulkan/vktTestPackage.cpp | 2 +-
|
||||
external/vulkancts/vkscpc/vkscpc.cpp | 2 +-
|
||||
external/vulkancts/vkscserver/vksServices.cpp | 2 +-
|
||||
framework/delibs/debase/deDefs.h | 6 ++++++
|
||||
framework/platform/CMakeLists.txt | 1 +
|
||||
targets/nullws/nullws.cmake | 1 +
|
||||
10 files changed, 15 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/external/vulkancts/framework/vulkan/vkPlatform.hpp b/external/vulkancts/framework/vulkan/vkPlatform.hpp
|
||||
index bec39d326..7574166b9 100644
|
||||
--- a/external/vulkancts/framework/vulkan/vkPlatform.hpp
|
||||
+++ b/external/vulkancts/framework/vulkan/vkPlatform.hpp
|
||||
@@ -399,7 +399,7 @@ public:
|
||||
|
||||
Platform (void) {}
|
||||
~Platform (void) {}
|
||||
-#if (DE_OS == DE_OS_WIN32) || (DE_OS == DE_OS_UNIX)
|
||||
+#ifdef DE_PLATFORM_USE_LIBRARY_TYPE
|
||||
virtual Library* createLibrary (LibraryType libraryType = LIBRARY_TYPE_VULKAN, const char* libraryPath = DE_NULL) const = 0;
|
||||
#else
|
||||
virtual Library* createLibrary (const char* libraryPath = DE_NULL) const = 0;
|
||||
diff --git a/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp b/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp
|
||||
index 5f6d884f4..af6bf6938 100644
|
||||
--- a/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp
|
||||
+++ b/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp
|
||||
@@ -133,7 +133,7 @@ public:
|
||||
tcu::TestLog& log = m_context.getTestContext().getLog();
|
||||
const deUint32 apiVersion = m_context.getUsedApiVersion();
|
||||
const vk::Platform& platform = m_context.getTestContext().getPlatform().getVulkanPlatform();
|
||||
-#if (DE_OS == DE_OS_WIN32) || (DE_OS == DE_OS_UNIX)
|
||||
+#ifdef DE_PLATFORM_USE_LIBRARY_TYPE
|
||||
de::MovePtr<vk::Library> vkLibrary = de::MovePtr<vk::Library>(platform.createLibrary(vk::Platform::LibraryType::LIBRARY_TYPE_VULKAN, m_context.getTestContext().getCommandLine().getVkLibraryPath()));
|
||||
#else
|
||||
de::MovePtr<vk::Library> vkLibrary = de::MovePtr<vk::Library>(platform.createLibrary(m_context.getTestContext().getCommandLine().getVkLibraryPath()));
|
||||
diff --git a/external/vulkancts/modules/vulkan/video/CMakeLists.txt b/external/vulkancts/modules/vulkan/video/CMakeLists.txt
|
||||
index 464adb1e2..f9a2044e7 100644
|
||||
--- a/external/vulkancts/modules/vulkan/video/CMakeLists.txt
|
||||
+++ b/external/vulkancts/modules/vulkan/video/CMakeLists.txt
|
||||
@@ -1,5 +1,5 @@
|
||||
include_directories(..)
|
||||
-if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX)
|
||||
+if ((DE_OS_IS_WIN32 OR DE_OS_IS_UNIX) AND NOT DEQP_USE_SURFACELESS AND NOT DEQP_USE_NULLWS)
|
||||
include_directories(${FFMPEG_INCLUDE_PATH})
|
||||
add_compile_definitions(DE_BUILD_VIDEO)
|
||||
endif()
|
||||
diff --git a/external/vulkancts/modules/vulkan/video/vktVideoSessionNvUtils.cpp b/external/vulkancts/modules/vulkan/video/vktVideoSessionNvUtils.cpp
|
||||
index 00491930c..9323278be 100644
|
||||
--- a/external/vulkancts/modules/vulkan/video/vktVideoSessionNvUtils.cpp
|
||||
+++ b/external/vulkancts/modules/vulkan/video/vktVideoSessionNvUtils.cpp
|
||||
@@ -148,7 +148,7 @@ private:
|
||||
};
|
||||
|
||||
NvFunctions::NvFunctions (const vk::Platform& platform)
|
||||
-#ifdef DE_BUILD_VIDEO
|
||||
+#ifdef DE_PLATFORM_USE_LIBRARY_TYPE
|
||||
: m_library (de::MovePtr<vk::Library>(platform.createLibrary(vk::Platform::LIBRARY_TYPE_VULKAN_VIDEO_DECODE_PARSER, DE_NULL)))
|
||||
#else
|
||||
: m_library (de::MovePtr<vk::Library>(platform.createLibrary()))
|
||||
diff --git a/external/vulkancts/modules/vulkan/vktTestPackage.cpp b/external/vulkancts/modules/vulkan/vktTestPackage.cpp
|
||||
index 959a9d368..cac454c71 100644
|
||||
--- a/external/vulkancts/modules/vulkan/vktTestPackage.cpp
|
||||
+++ b/external/vulkancts/modules/vulkan/vktTestPackage.cpp
|
||||
@@ -204,7 +204,7 @@ static void restoreStandardOutput () { qpRedirectOut(openWrite, open
|
||||
|
||||
static MovePtr<vk::Library> createLibrary (tcu::TestContext& testCtx)
|
||||
{
|
||||
-#if (DE_OS == DE_OS_WIN32) || (DE_OS == DE_OS_UNIX)
|
||||
+#ifdef DE_PLATFORM_USE_LIBRARY_TYPE
|
||||
return MovePtr<vk::Library>(testCtx.getPlatform().getVulkanPlatform().createLibrary(vk::Platform::LIBRARY_TYPE_VULKAN, testCtx.getCommandLine().getVkLibraryPath()));
|
||||
#else
|
||||
return MovePtr<vk::Library>(testCtx.getPlatform().getVulkanPlatform().createLibrary(testCtx.getCommandLine().getVkLibraryPath()));
|
||||
diff --git a/external/vulkancts/vkscpc/vkscpc.cpp b/external/vulkancts/vkscpc/vkscpc.cpp
|
||||
index 55b5665c8..91725633a 100644
|
||||
--- a/external/vulkancts/vkscpc/vkscpc.cpp
|
||||
+++ b/external/vulkancts/vkscpc/vkscpc.cpp
|
||||
@@ -288,7 +288,7 @@ int main (int argc, char** argv)
|
||||
tcu::DirArchive archive {""};
|
||||
tcu::TestLog log { cmdLine.getOption<opt::LogFile>().c_str() }; log.supressLogging(true);
|
||||
de::SharedPtr<tcu::Platform> platform {createPlatform()};
|
||||
-#if (DE_OS == DE_OS_WIN32) || (DE_OS == DE_OS_UNIX)
|
||||
+#ifdef DE_PLATFORM_USE_LIBRARY_TYPE
|
||||
de::SharedPtr<vk::Library> library {platform->getVulkanPlatform().createLibrary(vk::Platform::LIBRARY_TYPE_VULKAN, DE_NULL)};
|
||||
#else
|
||||
de::SharedPtr<vk::Library> library {platform->getVulkanPlatform().createLibrary(DE_NULL)};
|
||||
diff --git a/external/vulkancts/vkscserver/vksServices.cpp b/external/vulkancts/vkscserver/vksServices.cpp
|
||||
index 461c7a349..fe1160edc 100644
|
||||
--- a/external/vulkancts/vkscserver/vksServices.cpp
|
||||
+++ b/external/vulkancts/vkscserver/vksServices.cpp
|
||||
@@ -163,7 +163,7 @@ VkscServer* createServerVKSC(const std::string& logFile)
|
||||
tcu::DirArchive archive {""};
|
||||
tcu::TestLog log { logFile.c_str() }; log.supressLogging(true);
|
||||
tcu::Platform* platform {createPlatform()};
|
||||
-#if (DE_OS == DE_OS_WIN32) || (DE_OS == DE_OS_UNIX)
|
||||
+#ifdef DE_PLATFORM_USE_LIBRARY_TYPE
|
||||
vk::Library* library {platform->getVulkanPlatform().createLibrary(vk::Platform::LIBRARY_TYPE_VULKAN, DE_NULL)};
|
||||
#else
|
||||
vk::Library* library {platform->getVulkanPlatform().createLibrary(DE_NULL)};
|
||||
diff --git a/framework/delibs/debase/deDefs.h b/framework/delibs/debase/deDefs.h
|
||||
index 39cd65d0b..2885fe5c5 100644
|
||||
--- a/framework/delibs/debase/deDefs.h
|
||||
+++ b/framework/delibs/debase/deDefs.h
|
||||
@@ -101,6 +101,12 @@
|
||||
# error Unknown operating system.
|
||||
#endif
|
||||
|
||||
+#if ((DE_OS == DE_OS_WIN32) || (DE_OS == DE_OS_UNIX)) && !defined(DEQP_SURFACELESS) && !defined(NULLWS)
|
||||
+# define DE_PLATFORM_USE_LIBRARY_TYPE 1
|
||||
+#else
|
||||
+# undef DE_PLATFORM_USE_LIBRARY_TYPE
|
||||
+#endif
|
||||
+
|
||||
/* CPUs */
|
||||
#define DE_CPU_VANILLA 0
|
||||
#define DE_CPU_X86 1
|
||||
diff --git a/framework/platform/CMakeLists.txt b/framework/platform/CMakeLists.txt
|
||||
index 00c53e3c9..b2a1d57b6 100644
|
||||
--- a/framework/platform/CMakeLists.txt
|
||||
+++ b/framework/platform/CMakeLists.txt
|
||||
@@ -113,6 +113,7 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS)
|
||||
endif()
|
||||
|
||||
elseif (DE_OS_IS_UNIX AND DEQP_USE_SURFACELESS)
|
||||
+ add_definitions(-DDEQP_SURFACELESS=1)
|
||||
set(TCUTIL_PLATFORM_SRCS
|
||||
surfaceless/tcuSurfacelessPlatform.hpp
|
||||
surfaceless/tcuSurfacelessPlatform.cpp
|
||||
diff --git a/targets/nullws/nullws.cmake b/targets/nullws/nullws.cmake
|
||||
index 81a7f9ea2..5f6f9b773 100644
|
||||
--- a/targets/nullws/nullws.cmake
|
||||
+++ b/targets/nullws/nullws.cmake
|
||||
@@ -1,6 +1,7 @@
|
||||
message("*** Using nullws target")
|
||||
set(DEQP_TARGET_NAME "nullws")
|
||||
|
||||
+set(DEQP_USE_NULLWS ON)
|
||||
add_definitions(-DNULLWS)
|
||||
|
||||
find_library(GLES2_LIBRARY NAMES libGLESv2 GLESv2)
|
||||
--
|
||||
2.39.1
|
||||
|
@@ -1,27 +0,0 @@
|
||||
From c2d5252f4a8be94720235feb9e358ecb0a2e8e11 Mon Sep 17 00:00:00 2001
|
||||
From: Helen Koike <helen.koike@collabora.com>
|
||||
Date: Tue, 27 Sep 2022 12:35:22 -0300
|
||||
Subject: [PATCH 2/2] Android prints to stdout instead of logcat
|
||||
|
||||
Signed-off-by: Helen Koike <helen.koike@collabora.com>
|
||||
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
|
||||
---
|
||||
framework/qphelper/qpDebugOut.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/framework/qphelper/qpDebugOut.c b/framework/qphelper/qpDebugOut.c
|
||||
index 6579e9f..c200c6f 100644
|
||||
--- a/framework/qphelper/qpDebugOut.c
|
||||
+++ b/framework/qphelper/qpDebugOut.c
|
||||
@@ -98,7 +98,7 @@ void qpDiev (const char* format, va_list args)
|
||||
}
|
||||
|
||||
/* print() implementation. */
|
||||
-#if (DE_OS == DE_OS_ANDROID)
|
||||
+#if (0)
|
||||
|
||||
#include <android/log.h>
|
||||
|
||||
--
|
||||
2.39.1
|
||||
|
@@ -17,17 +17,15 @@ EPHEMERAL="
|
||||
make
|
||||
openssl-dev
|
||||
unzip
|
||||
wget
|
||||
xz
|
||||
zstd-dev
|
||||
"
|
||||
|
||||
apk add \
|
||||
bash \
|
||||
bison \
|
||||
ccache \
|
||||
clang-dev \
|
||||
coreutils \
|
||||
curl \
|
||||
flex \
|
||||
gcc \
|
||||
g++ \
|
||||
|
@@ -46,7 +46,6 @@ CONFIG_OF=y
|
||||
CONFIG_QCOM_COMMAND_DB=y
|
||||
CONFIG_QCOM_RPMHPD=y
|
||||
CONFIG_QCOM_RPMPD=y
|
||||
CONFIG_QCOM_OCMEM=y
|
||||
CONFIG_SDM_GPUCC_845=y
|
||||
CONFIG_SDM_VIDEOCC_845=y
|
||||
CONFIG_SDM_DISPCC_845=y
|
||||
@@ -83,8 +82,6 @@ CONFIG_PHY_QCOM_USB_HS=y
|
||||
CONFIG_USB_RTL8152=y
|
||||
# db820c ethernet
|
||||
CONFIG_ATL1C=y
|
||||
# Chromebooks ethernet
|
||||
CONFIG_USB_ONBOARD_HUB=y
|
||||
|
||||
CONFIG_ARCH_ALPINE=n
|
||||
CONFIG_ARCH_BCM2835=n
|
||||
|
@@ -7,14 +7,13 @@ set -o xtrace
|
||||
# network transfer, disk usage, and runtime on test jobs)
|
||||
|
||||
# shellcheck disable=SC2154 # arch is assigned in previous scripts
|
||||
if curl -X HEAD -s "${ARTIFACTS_PREFIX}/${FDO_UPSTREAM_REPO}/${ARTIFACTS_SUFFIX}/${arch}/done"; then
|
||||
if wget -q --method=HEAD "${ARTIFACTS_PREFIX}/${FDO_UPSTREAM_REPO}/${ARTIFACTS_SUFFIX}/${arch}/done"; then
|
||||
ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${FDO_UPSTREAM_REPO}/${ARTIFACTS_SUFFIX}/${arch}"
|
||||
else
|
||||
ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${CI_PROJECT_PATH}/${ARTIFACTS_SUFFIX}/${arch}"
|
||||
fi
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
"${ARTIFACTS_URL}"/lava-rootfs.tar.zst -o rootfs.tar.zst
|
||||
wget "${ARTIFACTS_URL}"/lava-rootfs.tar.zst -O rootfs.tar.zst
|
||||
mkdir -p /rootfs-"$arch"
|
||||
tar -C /rootfs-"$arch" '--exclude=./dev/*' --zstd -xf rootfs.tar.zst
|
||||
rm rootfs.tar.zst
|
||||
@@ -23,12 +22,9 @@ if [[ $arch == "arm64" ]]; then
|
||||
mkdir -p /baremetal-files
|
||||
pushd /baremetal-files
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "${ARTIFACTS_URL}"/Image
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "${ARTIFACTS_URL}"/Image.gz
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "${ARTIFACTS_URL}"/cheza-kernel
|
||||
wget "${ARTIFACTS_URL}"/Image
|
||||
wget "${ARTIFACTS_URL}"/Image.gz
|
||||
wget "${ARTIFACTS_URL}"/cheza-kernel
|
||||
|
||||
DEVICE_TREES=""
|
||||
DEVICE_TREES="$DEVICE_TREES apq8016-sbc.dtb"
|
||||
@@ -37,8 +33,7 @@ if [[ $arch == "arm64" ]]; then
|
||||
DEVICE_TREES="$DEVICE_TREES imx8mq-nitrogen.dtb"
|
||||
|
||||
for DTB in $DEVICE_TREES; do
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "${ARTIFACTS_URL}/$DTB"
|
||||
wget "${ARTIFACTS_URL}/$DTB"
|
||||
done
|
||||
|
||||
popd
|
||||
@@ -46,16 +41,14 @@ elif [[ $arch == "armhf" ]]; then
|
||||
mkdir -p /baremetal-files
|
||||
pushd /baremetal-files
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "${ARTIFACTS_URL}"/zImage
|
||||
wget "${ARTIFACTS_URL}"/zImage
|
||||
|
||||
DEVICE_TREES=""
|
||||
DEVICE_TREES="$DEVICE_TREES imx6q-cubox-i.dtb"
|
||||
DEVICE_TREES="$DEVICE_TREES tegra124-jetson-tk1.dtb"
|
||||
|
||||
for DTB in $DEVICE_TREES; do
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "${ARTIFACTS_URL}/$DTB"
|
||||
wget "${ARTIFACTS_URL}/$DTB"
|
||||
done
|
||||
|
||||
popd
|
||||
|
@@ -6,26 +6,26 @@ set -ex
|
||||
git config --global user.email "mesa@example.com"
|
||||
git config --global user.name "Mesa CI"
|
||||
|
||||
CROSVM_VERSION=00af43e1b565e1ae0047ba84b970da5e089e4f48
|
||||
CROSVM_VERSION=504899212d626ecf42b1c459e5592891dde5bf91
|
||||
git clone --single-branch -b main --no-checkout https://chromium.googlesource.com/crosvm/crosvm /platform/crosvm
|
||||
pushd /platform/crosvm
|
||||
git checkout "$CROSVM_VERSION"
|
||||
git submodule update --init
|
||||
|
||||
VIRGLRENDERER_VERSION=fc2ad36998f8af8ea3cc68fb9c747dfec9cb4635
|
||||
VIRGLRENDERER_VERSION=3f2685355f71201f22b98c19aa778b43732c8435
|
||||
rm -rf third_party/virglrenderer
|
||||
git clone --single-branch -b master --no-checkout https://gitlab.freedesktop.org/virgl/virglrenderer.git third_party/virglrenderer
|
||||
pushd third_party/virglrenderer
|
||||
git checkout "$VIRGLRENDERER_VERSION"
|
||||
meson build/ -Drender-server-worker=process -Dvenus-experimental=true $EXTRA_MESON_ARGS
|
||||
meson build/ -Drender-server=true -Drender-server-worker=process -Dvenus-experimental=true $EXTRA_MESON_ARGS
|
||||
ninja -C build install
|
||||
popd
|
||||
|
||||
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
||||
bindgen-cli \
|
||||
bindgen \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--root /usr/local \
|
||||
--version 0.63.0 \
|
||||
--version 0.60.1 \
|
||||
$EXTRA_CARGO_ARGS
|
||||
|
||||
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
||||
|
@@ -19,35 +19,10 @@ else
|
||||
DEQP_RUNNER_CARGO_ARGS="--version 0.16.0 ${EXTRA_CARGO_ARGS} -- deqp-runner"
|
||||
fi
|
||||
|
||||
if [ -z "$ANDROID_NDK_HOME" ]; then
|
||||
cargo install --locked \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--root /usr/local \
|
||||
${DEQP_RUNNER_CARGO_ARGS}
|
||||
else
|
||||
mkdir -p /deqp-runner
|
||||
pushd /deqp-runner
|
||||
git clone --branch v0.16.1 --depth 1 https://gitlab.freedesktop.org/anholt/deqp-runner.git deqp-runner-git
|
||||
pushd deqp-runner-git
|
||||
|
||||
cargo install --locked \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--root /usr/local --version 2.10.0 \
|
||||
cargo-ndk
|
||||
|
||||
rustup target add x86_64-linux-android
|
||||
RUSTFLAGS='-C target-feature=+crt-static' cargo ndk --target x86_64-linux-android build
|
||||
|
||||
mv target/x86_64-linux-android/debug/deqp-runner /deqp-runner
|
||||
|
||||
cargo uninstall --locked \
|
||||
--root /usr/local \
|
||||
cargo-ndk
|
||||
|
||||
popd
|
||||
rm -rf deqp-runner-git
|
||||
popd
|
||||
fi
|
||||
cargo install --locked \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--root /usr/local \
|
||||
${DEQP_RUNNER_CARGO_ARGS}
|
||||
|
||||
# remove unused test runners to shrink images for the Mesa CI build (not kernel,
|
||||
# which chooses its own deqp branch)
|
||||
|
@@ -7,25 +7,17 @@ git config --global user.email "mesa@example.com"
|
||||
git config --global user.name "Mesa CI"
|
||||
git clone \
|
||||
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
||||
-b vulkan-cts-1.3.5.0 \
|
||||
-b vulkan-cts-1.3.3.0 \
|
||||
--depth 1 \
|
||||
/VK-GL-CTS
|
||||
pushd /VK-GL-CTS
|
||||
|
||||
cts_commits_to_backport=()
|
||||
|
||||
for commit in "${cts_commits_to_backport[@]}"
|
||||
do
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
"https://github.com/KhronosGroup/VK-GL-CTS/commit/$commit.patch" | git am -
|
||||
done
|
||||
|
||||
# Fix surfaceless build.
|
||||
git am < $OLDPWD/.gitlab-ci/container/0001-Fix-build-for-the-surfaceless-and-null-WS-target-pla.patch
|
||||
|
||||
# Android specific patches.
|
||||
git am < $OLDPWD/.gitlab-ci/container/0001-Allow-running-on-Android-from-the-command-line.patch
|
||||
git am < $OLDPWD/.gitlab-ci/container/0002-Android-prints-to-stdout-instead-of-logcat.patch
|
||||
# Apply a patch to update zlib link to an available version.
|
||||
# vulkan-cts-1.3.3.0 uses zlib 1.2.12 which was removed from zlib server due to
|
||||
# a CVE. See https://zlib.net/
|
||||
# FIXME: Remove this patch when uprev to 1.3.4.0+
|
||||
wget -O- https://github.com/KhronosGroup/VK-GL-CTS/commit/6bb2e7d64261bedb503947b1b251b1eeeb49be73.patch |
|
||||
git am -
|
||||
|
||||
# --insecure is due to SSL cert failures hitting sourceforge for zlib and
|
||||
# libpng (sigh). The archives get their checksums checked anyway, and git
|
||||
@@ -39,24 +31,21 @@ cp doc/testlog-stylesheet/testlog.{css,xsl} /deqp
|
||||
popd
|
||||
|
||||
pushd /deqp
|
||||
# When including EGL/X11 testing, do that build first and save off its
|
||||
# deqp-egl binary.
|
||||
cmake -S /VK-GL-CTS -B . -G Ninja \
|
||||
-DDEQP_TARGET=x11_egl_glx \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
$EXTRA_CMAKE_ARGS
|
||||
ninja modules/egl/deqp-egl
|
||||
cp /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-x11
|
||||
|
||||
if [ "${DEQP_TARGET}" != 'android' ]; then
|
||||
# When including EGL/X11 testing, do that build first and save off its
|
||||
# deqp-egl binary.
|
||||
cmake -S /VK-GL-CTS -B . -G Ninja \
|
||||
-DDEQP_TARGET=x11_egl_glx \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
$EXTRA_CMAKE_ARGS
|
||||
ninja modules/egl/deqp-egl
|
||||
cp /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-x11
|
||||
|
||||
cmake -S /VK-GL-CTS -B . -G Ninja \
|
||||
-DDEQP_TARGET=wayland \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
$EXTRA_CMAKE_ARGS
|
||||
ninja modules/egl/deqp-egl
|
||||
cp /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-wayland
|
||||
fi
|
||||
cmake -S /VK-GL-CTS -B . -G Ninja \
|
||||
-DDEQP_TARGET=wayland \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
$EXTRA_CMAKE_ARGS
|
||||
ninja modules/egl/deqp-egl
|
||||
cp /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-wayland
|
||||
|
||||
cmake -S /VK-GL-CTS -B . -G Ninja \
|
||||
-DDEQP_TARGET=${DEQP_TARGET:-x11_glx} \
|
||||
@@ -64,9 +53,7 @@ cmake -S /VK-GL-CTS -B . -G Ninja \
|
||||
$EXTRA_CMAKE_ARGS
|
||||
ninja
|
||||
|
||||
if [ "${DEQP_TARGET}" != 'android' ]; then
|
||||
mv /deqp/modules/egl/deqp-egl-x11 /deqp/modules/egl/deqp-egl
|
||||
fi
|
||||
mv /deqp/modules/egl/deqp-egl-x11 /deqp/modules/egl/deqp-egl
|
||||
|
||||
# Copy out the mustpass lists we want.
|
||||
mkdir /deqp/mustpass
|
||||
@@ -75,30 +62,28 @@ for mustpass in $(< /VK-GL-CTS/external/vulkancts/mustpass/main/vk-default.txt)
|
||||
>> /deqp/mustpass/vk-master.txt
|
||||
done
|
||||
|
||||
if [ "${DEQP_TARGET}" != 'android' ]; then
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \
|
||||
/deqp/mustpass/.
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-master.txt \
|
||||
/deqp/mustpass/.
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/khronos_mustpass/3.2.6.x/*-master.txt \
|
||||
/deqp/mustpass/.
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass/4.6.1.x/*-master.txt \
|
||||
/deqp/mustpass/.
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass_single/4.6.1.x/*-single.txt \
|
||||
/deqp/mustpass/.
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \
|
||||
/deqp/mustpass/.
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-master.txt \
|
||||
/deqp/mustpass/.
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/khronos_mustpass/3.2.6.x/*-master.txt \
|
||||
/deqp/mustpass/.
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass/4.6.1.x/*-master.txt \
|
||||
/deqp/mustpass/.
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass_single/4.6.1.x/*-single.txt \
|
||||
/deqp/mustpass/.
|
||||
|
||||
# Save *some* executor utils, but otherwise strip things down
|
||||
# to reduct deqp build size:
|
||||
mkdir /deqp/executor.save
|
||||
cp /deqp/executor/testlog-to-* /deqp/executor.save
|
||||
rm -rf /deqp/executor
|
||||
mv /deqp/executor.save /deqp/executor
|
||||
fi
|
||||
# Save *some* executor utils, but otherwise strip things down
|
||||
# to reduct deqp build size:
|
||||
mkdir /deqp/executor.save
|
||||
cp /deqp/executor/testlog-to-* /deqp/executor.save
|
||||
rm -rf /deqp/executor
|
||||
mv /deqp/executor.save /deqp/executor
|
||||
|
||||
# Remove other mustpass files, since we saved off the ones we wanted to conventient locations above.
|
||||
rm -rf /deqp/external/openglcts/modules/gl_cts/data/mustpass
|
||||
|
@@ -4,8 +4,7 @@
|
||||
set -ex
|
||||
|
||||
mkdir -p kernel
|
||||
curl -L -s --retry 4 -f --retry-all-errors --retry-delay 60 ${KERNEL_URL} \
|
||||
| tar -xj --strip-components=1 -C kernel
|
||||
wget -qO- ${KERNEL_URL} | tar -xj --strip-components=1 -C kernel
|
||||
pushd kernel
|
||||
|
||||
# The kernel doesn't like the gold linker (or the old lld in our debians).
|
||||
|
@@ -5,8 +5,7 @@ set -ex
|
||||
|
||||
export LIBDRM_VERSION=libdrm-2.4.110
|
||||
|
||||
curl -L -O --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
https://dri.freedesktop.org/libdrm/"$LIBDRM_VERSION".tar.xz
|
||||
wget https://dri.freedesktop.org/libdrm/"$LIBDRM_VERSION".tar.xz
|
||||
tar -xvf "$LIBDRM_VERSION".tar.xz && rm "$LIBDRM_VERSION".tar.xz
|
||||
cd "$LIBDRM_VERSION"
|
||||
meson build -D vc4=false -D freedreno=false -D etnaviv=false $EXTRA_MESON_ARGS
|
||||
|
@@ -2,14 +2,11 @@
|
||||
|
||||
set -ex
|
||||
|
||||
VER="13.0.0"
|
||||
wget https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v13.0.0.tar.gz
|
||||
tar -xvf v13.0.0.tar.gz && rm v13.0.0.tar.gz
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${VER}.tar.gz"
|
||||
tar -xvf "v${VER}.tar.gz" && rm "v${VER}.tar.gz"
|
||||
|
||||
mkdir "SPIRV-LLVM-Translator-${VER}/build"
|
||||
pushd "SPIRV-LLVM-Translator-${VER}/build"
|
||||
mkdir SPIRV-LLVM-Translator-13.0.0/build
|
||||
pushd SPIRV-LLVM-Translator-13.0.0/build
|
||||
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
|
||||
ninja
|
||||
ninja install
|
||||
@@ -18,5 +15,5 @@ ninja llvm-spirv
|
||||
cp tools/llvm-spirv/llvm-spirv /usr/bin/
|
||||
popd
|
||||
|
||||
du -sh "SPIRV-LLVM-Translator-${VER}"
|
||||
rm -rf "SPIRV-LLVM-Translator-${VER}"
|
||||
du -sh SPIRV-LLVM-Translator-13.0.0
|
||||
rm -rf SPIRV-LLVM-Translator-13.0.0
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
set -ex
|
||||
|
||||
MOLD_VERSION="1.10.0"
|
||||
MOLD_VERSION="1.9.0"
|
||||
|
||||
git clone -b v"$MOLD_VERSION" --single-branch --depth 1 https://github.com/rui314/mold.git
|
||||
pushd mold
|
||||
|
@@ -3,11 +3,9 @@
|
||||
|
||||
set -ex
|
||||
|
||||
REV="355ad6bcb2cb3d9e030b7c6eef2b076b0dfb4d63"
|
||||
|
||||
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
|
||||
pushd /piglit
|
||||
git checkout "$REV"
|
||||
git checkout 1cd716180cfb6ef0c1fc54702460ef49e5115791
|
||||
patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff
|
||||
cmake -S . -B . -G Ninja -DCMAKE_BUILD_TYPE=Release $PIGLIT_OPTS $EXTRA_CMAKE_ARGS
|
||||
ninja $PIGLIT_BUILD_TARGETS
|
||||
|
@@ -11,20 +11,19 @@ set -ex
|
||||
mkdir -p "$HOME"/.cargo
|
||||
ln -s /usr/local/bin "$HOME"/.cargo/bin
|
||||
|
||||
# Rusticl requires at least Rust 1.60.0
|
||||
# Rusticl requires at least Rust 1.59.0
|
||||
#
|
||||
# Also, pick a specific snapshot from rustup so the compiler doesn't drift on
|
||||
# Also, oick a specific snapshot from rustup so the compiler doesn't drift on
|
||||
# us.
|
||||
RUST_VERSION=1.60.0-2022-04-07
|
||||
RUST_VERSION=1.59.0-2022-02-24
|
||||
|
||||
# For rust in Mesa, we use rustup to install. This lets us pick an arbitrary
|
||||
# version of the compiler, rather than whatever the container's Debian comes
|
||||
# with.
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
--proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- \
|
||||
--default-toolchain $RUST_VERSION \
|
||||
--profile minimal \
|
||||
-y
|
||||
wget https://sh.rustup.rs -O - | sh -s -- \
|
||||
--default-toolchain $RUST_VERSION \
|
||||
--profile minimal \
|
||||
-y
|
||||
|
||||
rustup component add rustfmt
|
||||
|
||||
|
@@ -49,7 +49,7 @@ download_skia_source() {
|
||||
set -ex
|
||||
|
||||
SCRIPT_DIR=$(realpath "$(dirname "$0")")
|
||||
SKQP_PATCH_DIR="${SCRIPT_DIR}/patches"
|
||||
SKQP_PATCH_DIR="${SCRIPT_DIR}"
|
||||
BASE_ARGS_GN_FILE="${SCRIPT_DIR}/build-skqp_base.gn"
|
||||
|
||||
SKQP_ARCH=${SKQP_ARCH:-x64}
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
set -ex
|
||||
|
||||
VKD3D_PROTON_COMMIT="507cb3195bae32395c69763afec2b1ac078d509a"
|
||||
VKD3D_PROTON_COMMIT="804751ee1cb108a2ec59e182ce0c052bafef268e"
|
||||
|
||||
VKD3D_PROTON_DST_DIR="/vkd3d-proton-tests"
|
||||
VKD3D_PROTON_SRC_DIR="/vkd3d-proton-src"
|
||||
|
@@ -1,17 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_X86_TEST_GL_TAG
|
||||
|
||||
set -ex
|
||||
|
||||
VALIDATION_TAG="v1.3.238"
|
||||
|
||||
git clone -b "$VALIDATION_TAG" --single-branch --depth 1 https://github.com/KhronosGroup/Vulkan-ValidationLayers.git
|
||||
pushd Vulkan-ValidationLayers
|
||||
python3 scripts/update_deps.py --dir external --config debug
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTS=OFF -DBUILD_WERROR=OFF -C external/helper.cmake -S . -B build
|
||||
ninja -C build install
|
||||
popd
|
||||
rm -rf Vulkan-ValidationLayers
|
@@ -7,6 +7,4 @@ fi
|
||||
# Clean up any build cache for rust.
|
||||
rm -rf /.cargo
|
||||
|
||||
if test -x /usr/bin/ccache; then
|
||||
ccache --show-stats
|
||||
fi
|
||||
ccache --show-stats
|
||||
|
@@ -1,28 +1,24 @@
|
||||
#!/bin/sh
|
||||
|
||||
if test -x /usr/bin/ccache; then
|
||||
if test -f /etc/debian_version; then
|
||||
CCACHE_PATH=/usr/lib/ccache
|
||||
elif test -f /etc/alpine-release; then
|
||||
CCACHE_PATH=/usr/lib/ccache/bin
|
||||
else
|
||||
CCACHE_PATH=/usr/lib64/ccache
|
||||
fi
|
||||
|
||||
# Common setup among container builds before we get to building code.
|
||||
|
||||
export CCACHE_COMPILERCHECK=content
|
||||
export CCACHE_COMPRESS=true
|
||||
export CCACHE_DIR=/cache/$CI_PROJECT_NAME/ccache
|
||||
export PATH=$CCACHE_PATH:$PATH
|
||||
|
||||
# CMake ignores $PATH, so we have to force CC/GCC to the ccache versions.
|
||||
export CC="${CCACHE_PATH}/gcc"
|
||||
export CXX="${CCACHE_PATH}/g++"
|
||||
|
||||
ccache --show-stats
|
||||
if test -f /etc/debian_version; then
|
||||
CCACHE_PATH=/usr/lib/ccache
|
||||
elif test -f /etc/alpine-release; then
|
||||
CCACHE_PATH=/usr/lib/ccache/bin
|
||||
else
|
||||
CCACHE_PATH=/usr/lib64/ccache
|
||||
fi
|
||||
|
||||
# Common setup among container builds before we get to building code.
|
||||
|
||||
export CCACHE_COMPILERCHECK=content
|
||||
export CCACHE_COMPRESS=true
|
||||
export CCACHE_DIR=/cache/$CI_PROJECT_NAME/ccache
|
||||
export PATH=$CCACHE_PATH:$PATH
|
||||
|
||||
# CMake ignores $PATH, so we have to force CC/GCC to the ccache versions.
|
||||
export CC="${CCACHE_PATH}/gcc"
|
||||
export CXX="${CCACHE_PATH}/g++"
|
||||
|
||||
# When not using the mold linker (e.g. unsupported architecture), force
|
||||
# linkers to gold, since it's so much faster for building. We can't use
|
||||
# lld because we're on old debian and it's buggy. ming fails meson builds
|
||||
@@ -31,6 +27,8 @@ find /usr/bin -name \*-ld -o -name ld | \
|
||||
grep -v mingw | \
|
||||
xargs -n 1 -I '{}' ln -sf '{}.gold' '{}'
|
||||
|
||||
ccache --show-stats
|
||||
|
||||
# Make a wrapper script for ninja to always include the -j flags
|
||||
{
|
||||
echo '#!/bin/sh -x'
|
||||
|
@@ -5,10 +5,9 @@ arch=$2
|
||||
cpu_family=$3
|
||||
cpu=$4
|
||||
cross_file="/cross_file-$arch.txt"
|
||||
sdk_version=$5
|
||||
|
||||
# armv7 has the toolchain split between two names.
|
||||
arch2=${6:-$2}
|
||||
arch2=${5:-$2}
|
||||
|
||||
# Note that we disable C++ exceptions, because Mesa doesn't use exceptions,
|
||||
# and allowing it in code generation means we get unwind symbols that break
|
||||
@@ -16,22 +15,21 @@ arch2=${6:-$2}
|
||||
|
||||
cat > "$cross_file" <<EOF
|
||||
[binaries]
|
||||
ar = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar'
|
||||
c = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}${sdk_version}-clang', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables']
|
||||
cpp = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}${sdk_version}-clang++', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables', '-static-libstdc++']
|
||||
ar = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/$arch-ar'
|
||||
c = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables']
|
||||
cpp = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang++', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables']
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
strip = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip'
|
||||
strip = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/$arch-strip'
|
||||
pkgconfig = ['/usr/bin/pkg-config']
|
||||
|
||||
[host_machine]
|
||||
system = 'android'
|
||||
system = 'linux'
|
||||
cpu_family = '$cpu_family'
|
||||
cpu = '$cpu'
|
||||
endian = 'little'
|
||||
|
||||
[properties]
|
||||
needs_exe_wrapper = true
|
||||
pkg_config_libdir = '/usr/local/lib/${arch2}/pkgconfig/:/${ndk}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/${arch2}/pkgconfig/'
|
||||
|
||||
EOF
|
||||
|
@@ -10,7 +10,6 @@ pc="$2"
|
||||
cflags="$3"
|
||||
libs="$4"
|
||||
version="$5"
|
||||
sdk_version="$6"
|
||||
|
||||
sysroot=$ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot
|
||||
|
||||
@@ -25,7 +24,7 @@ for arch in \
|
||||
cat >$pcdir/$pc <<EOF
|
||||
prefix=$sysroot
|
||||
exec_prefix=$sysroot
|
||||
libdir=$sysroot/usr/lib/$arch/$sdk_version
|
||||
libdir=$sysroot/usr/lib/$arch/29
|
||||
sharedlibdir=$sysroot/usr/lib/$arch
|
||||
includedir=$sysroot/usr/include
|
||||
|
||||
@@ -34,7 +33,7 @@ Description: zlib compression library
|
||||
Version: $version
|
||||
|
||||
Requires:
|
||||
Libs: -L$sysroot/usr/lib/$arch/$sdk_version $libs
|
||||
Libs: -L$sysroot/usr/lib/$arch/29 $libs
|
||||
Cflags: -I$sysroot/usr/include $cflags
|
||||
EOF
|
||||
done
|
||||
|
@@ -15,7 +15,7 @@ if [ $DEBIAN_ARCH = arm64 ]; then
|
||||
"
|
||||
elif [ $DEBIAN_ARCH = amd64 ]; then
|
||||
# Add llvm 13 to the build image
|
||||
apt-get -y install --no-install-recommends curl gnupg2 software-properties-common
|
||||
apt-get -y install --no-install-recommends wget gnupg2 software-properties-common
|
||||
apt-key add /llvm-snapshot.gpg.key
|
||||
add-apt-repository "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-13 main"
|
||||
# Debian bullseye has older wine 5.0, we want >= 7.0 for traces.
|
||||
@@ -61,7 +61,6 @@ apt-get -y install --no-install-recommends \
|
||||
$EXTRA_LOCAL_PACKAGES \
|
||||
bash \
|
||||
ca-certificates \
|
||||
curl \
|
||||
firmware-realtek \
|
||||
initramfs-tools \
|
||||
jq \
|
||||
@@ -104,6 +103,7 @@ apt-get -y install --no-install-recommends \
|
||||
strace \
|
||||
waffle-utils \
|
||||
weston \
|
||||
wget \
|
||||
xinit \
|
||||
xserver-xorg-core \
|
||||
xwayland \
|
||||
|
@@ -15,7 +15,6 @@ apt-get update
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
$STABLE_EPHEMERAL \
|
||||
curl \
|
||||
crossbuild-essential-$arch \
|
||||
libelf-dev:$arch \
|
||||
libexpat1-dev:$arch \
|
||||
@@ -37,7 +36,8 @@ apt-get install -y --no-remove \
|
||||
libxrandr-dev:$arch \
|
||||
libxshmfence-dev:$arch \
|
||||
libxxf86vm-dev:$arch \
|
||||
libwayland-dev:$arch
|
||||
libwayland-dev:$arch \
|
||||
wget
|
||||
|
||||
if [[ $arch != "armhf" ]]; then
|
||||
# See the list of available architectures in https://apt.llvm.org/bullseye/dists/llvm-toolchain-bullseye-13/main/
|
||||
@@ -47,11 +47,6 @@ if [[ $arch != "armhf" ]]; then
|
||||
LLVM=11
|
||||
fi
|
||||
|
||||
# We don't need clang-format for the crossbuilds, but the installed amd64
|
||||
# package will conflict with libclang. Uninstall clang-format (and its
|
||||
# problematic dependency) to fix.
|
||||
apt-get remove -y clang-format-13 libclang-cpp13
|
||||
|
||||
# llvm-*-tools:$arch conflicts with python3:amd64. Install dependencies only
|
||||
# with apt-get, then force-install llvm-*-{dev,tools}:$arch with dpkg to get
|
||||
# around this.
|
||||
|
@@ -12,29 +12,27 @@ EPHEMERAL="\
|
||||
apt-get install -y --no-remove $EPHEMERAL
|
||||
|
||||
# Fetch the NDK and extract just the toolchain we want.
|
||||
ndk=$ANDROID_NDK
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o $ndk.zip https://dl.google.com/android/repository/$ndk-linux.zip
|
||||
ndk=android-ndk-r21d
|
||||
wget -O $ndk.zip https://dl.google.com/android/repository/$ndk-linux-x86_64.zip
|
||||
unzip -d / $ndk.zip "$ndk/toolchains/llvm/*"
|
||||
rm $ndk.zip
|
||||
# Since it was packed as a zip file, symlinks/hardlinks got turned into
|
||||
# duplicate files. Turn them into hardlinks to save on container space.
|
||||
rdfind -makehardlinks true -makeresultsfile false /${ndk}/
|
||||
rdfind -makehardlinks true -makeresultsfile false /android-ndk-r21d/
|
||||
# Drop some large tools we won't use in this build.
|
||||
find /${ndk}/ -type f | grep -E -i "clang-check|clang-tidy|lldb" | xargs rm -f
|
||||
find /android-ndk-r21d/ -type f | grep -E -i "clang-check|clang-tidy|lldb" | xargs rm -f
|
||||
|
||||
sh .gitlab-ci/container/create-android-ndk-pc.sh /$ndk zlib.pc "" "-lz" "1.2.3" $ANDROID_SDK_VERSION
|
||||
sh .gitlab-ci/container/create-android-ndk-pc.sh /$ndk zlib.pc "" "-lz" "1.2.3"
|
||||
|
||||
sh .gitlab-ci/container/create-android-cross-file.sh /$ndk x86_64-linux-android x86_64 x86_64 $ANDROID_SDK_VERSION
|
||||
sh .gitlab-ci/container/create-android-cross-file.sh /$ndk i686-linux-android x86 x86 $ANDROID_SDK_VERSION
|
||||
sh .gitlab-ci/container/create-android-cross-file.sh /$ndk aarch64-linux-android aarch64 armv8 $ANDROID_SDK_VERSION
|
||||
sh .gitlab-ci/container/create-android-cross-file.sh /$ndk arm-linux-androideabi arm armv7hl $ANDROID_SDK_VERSION armv7a-linux-androideabi
|
||||
sh .gitlab-ci/container/create-android-cross-file.sh /$ndk x86_64-linux-android x86_64 x86_64
|
||||
sh .gitlab-ci/container/create-android-cross-file.sh /$ndk i686-linux-android x86 x86
|
||||
sh .gitlab-ci/container/create-android-cross-file.sh /$ndk aarch64-linux-android arm armv8
|
||||
sh .gitlab-ci/container/create-android-cross-file.sh /$ndk arm-linux-androideabi arm armv7hl armv7a-linux-androideabi
|
||||
|
||||
# Not using build-libdrm.sh because we don't want its cleanup after building
|
||||
# each arch. Fetch and extract now.
|
||||
export LIBDRM_VERSION=libdrm-2.4.110
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.xz
|
||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.xz
|
||||
tar -xf $LIBDRM_VERSION.tar.xz && rm $LIBDRM_VERSION.tar.xz
|
||||
|
||||
for arch in \
|
||||
@@ -63,8 +61,7 @@ done
|
||||
rm -rf $LIBDRM_VERSION
|
||||
|
||||
export LIBELF_VERSION=libelf-0.8.13
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O https://fossies.org/linux/misc/old/$LIBELF_VERSION.tar.gz
|
||||
wget https://fossies.org/linux/misc/old/$LIBELF_VERSION.tar.gz
|
||||
|
||||
# Not 100% sure who runs the mirror above so be extra careful
|
||||
if ! echo "4136d7b4c04df68b686570afa26988ac ${LIBELF_VERSION}.tar.gz" | md5sum -c -; then
|
||||
@@ -90,11 +87,11 @@ for arch in \
|
||||
ccarch=armv7a-linux-androideabi
|
||||
fi
|
||||
|
||||
export CC=/${ndk}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar
|
||||
export CC=/${ndk}/toolchains/llvm/prebuilt/linux-x86_64/bin/${ccarch}${ANDROID_SDK_VERSION}-clang
|
||||
export CXX=/${ndk}/toolchains/llvm/prebuilt/linux-x86_64/bin/${ccarch}${ANDROID_SDK_VERSION}-clang++
|
||||
export LD=/${ndk}/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch}-ld
|
||||
export RANLIB=/${ndk}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib
|
||||
export CC=/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch}-ar
|
||||
export CC=/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/${ccarch}29-clang
|
||||
export CXX=/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/${ccarch}29-clang++
|
||||
export LD=/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch}-ld
|
||||
export RANLIB=/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch}-ranlib
|
||||
|
||||
# The configure script doesn't know about android, but doesn't really use the host anyway it
|
||||
# seems
|
||||
|
@@ -24,7 +24,6 @@ apt-get -y install \
|
||||
bison \
|
||||
ccache \
|
||||
cmake \
|
||||
curl \
|
||||
debootstrap \
|
||||
fastboot \
|
||||
flex \
|
||||
@@ -61,6 +60,7 @@ apt-get -y install \
|
||||
python3-requests \
|
||||
python3-setuptools \
|
||||
u-boot-tools \
|
||||
wget \
|
||||
xz-utils \
|
||||
zlib1g-dev \
|
||||
zstd
|
||||
|
@@ -11,7 +11,6 @@ apt-get update
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
cpio \
|
||||
curl \
|
||||
fastboot \
|
||||
netcat \
|
||||
procps \
|
||||
@@ -20,20 +19,19 @@ apt-get install -y --no-remove \
|
||||
python3-serial \
|
||||
rsync \
|
||||
snmp \
|
||||
wget \
|
||||
zstd
|
||||
|
||||
# setup SNMPv2 SMI MIB
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
https://raw.githubusercontent.com/net-snmp/net-snmp/master/mibs/SNMPv2-SMI.txt \
|
||||
-o /usr/share/snmp/mibs/SNMPv2-SMI.txt
|
||||
wget https://raw.githubusercontent.com/net-snmp/net-snmp/master/mibs/SNMPv2-SMI.txt \
|
||||
-O /usr/share/snmp/mibs/SNMPv2-SMI.txt
|
||||
|
||||
. .gitlab-ci/container/baremetal_build.sh
|
||||
|
||||
if [[ "$arch" == "arm64" ]]; then
|
||||
# This firmware file from Debian bullseye causes hangs
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a530_pfp.fw?id=d5f9eea5a251d43412b07f5295d03e97b89ac4a5" \
|
||||
-o /rootfs-arm64/lib/firmware/qcom/a530_pfp.fw
|
||||
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a530_pfp.fw?id=d5f9eea5a251d43412b07f5295d03e97b89ac4a5 \
|
||||
-O /rootfs-arm64/lib/firmware/qcom/a530_pfp.fw
|
||||
fi
|
||||
|
||||
mkdir -p /baremetal-files/jetson-nano/boot/
|
||||
|
@@ -27,8 +27,6 @@ apt-get install -y --no-remove \
|
||||
$STABLE_EPHEMERAL \
|
||||
bison \
|
||||
ccache \
|
||||
curl \
|
||||
clang-format-13 \
|
||||
dpkg-cross \
|
||||
findutils \
|
||||
flex \
|
||||
@@ -69,6 +67,7 @@ apt-get install -y --no-remove \
|
||||
python3-requests \
|
||||
qemu-user \
|
||||
valgrind \
|
||||
wget \
|
||||
x11proto-dri2-dev \
|
||||
x11proto-gl-dev \
|
||||
x11proto-randr-dev \
|
||||
|
@@ -17,8 +17,7 @@ mingw-w64-x86_64-zstd-1.5.2-2-any.pkg.tar.zst
|
||||
|
||||
for i in $MINGW_PACKET_LIST
|
||||
do
|
||||
curl -L -s --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "https://mirror.msys2.org/mingw/mingw64/$i"
|
||||
wget -q https://mirror.msys2.org/mingw/mingw64/$i
|
||||
tar xf $i --strip-components=1 -C /usr/x86_64-w64-mingw32/
|
||||
done
|
||||
popd
|
||||
|
@@ -14,6 +14,7 @@ STABLE_EPHEMERAL=" \
|
||||
bzip2 \
|
||||
libtool \
|
||||
libssl-dev \
|
||||
python3-pip \
|
||||
"
|
||||
|
||||
apt-get update
|
||||
@@ -42,8 +43,8 @@ apt-get install -y --no-remove \
|
||||
llvm-13-dev \
|
||||
llvm-11-dev \
|
||||
ocl-icd-opencl-dev \
|
||||
python3-pip \
|
||||
python3-venv \
|
||||
python3-freezegun \
|
||||
python3-pytest \
|
||||
procps \
|
||||
spirv-tools \
|
||||
shellcheck \
|
||||
@@ -62,8 +63,7 @@ export XORGMACROS_VERSION=util-macros-1.19.0
|
||||
|
||||
. .gitlab-ci/container/build-mold.sh
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -O \
|
||||
$XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
||||
wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
||||
tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
|
||||
cd $XORGMACROS_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $XORGMACROS_VERSION
|
||||
@@ -92,7 +92,7 @@ ninja install
|
||||
popd
|
||||
rm -rf DirectX-Headers
|
||||
|
||||
python3 -m pip install -r .gitlab-ci/lava/requirements.txt
|
||||
pip3 install lavacli==1.5.2
|
||||
|
||||
# install bindgen
|
||||
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
||||
|
@@ -1,99 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# The relative paths in this file only become valid at runtime.
|
||||
# shellcheck disable=SC1091
|
||||
# shellcheck disable=SC2086 # we want word splitting
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Ephemeral packages (installed for this script and removed again at the end)
|
||||
STABLE_EPHEMERAL=" \
|
||||
ccache \
|
||||
unzip \
|
||||
dpkg-dev \
|
||||
build-essential:native \
|
||||
config-package-dev \
|
||||
debhelper-compat \
|
||||
cmake \
|
||||
ninja-build \
|
||||
"
|
||||
|
||||
apt-get install -y --no-remove --no-install-recommends \
|
||||
$STABLE_EPHEMERAL \
|
||||
iproute2
|
||||
|
||||
############### Building ...
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
############### Downloading NDK for native builds for the guest ...
|
||||
|
||||
# Fetch the NDK and extract just the toolchain we want.
|
||||
ndk=$ANDROID_NDK
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o $ndk.zip https://dl.google.com/android/repository/$ndk-linux.zip
|
||||
unzip -d / $ndk.zip
|
||||
rm $ndk.zip
|
||||
|
||||
############### Build dEQP runner
|
||||
|
||||
export ANDROID_NDK_HOME=/$ndk
|
||||
. .gitlab-ci/container/build-rust.sh
|
||||
. .gitlab-ci/container/build-deqp-runner.sh
|
||||
|
||||
rm -rf /root/.cargo
|
||||
rm -rf /root/.rustup
|
||||
|
||||
############### Build dEQP GL
|
||||
|
||||
DEQP_TARGET="android" \
|
||||
EXTRA_CMAKE_ARGS="-DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28" \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
############### Downloading Cuttlefish resources ...
|
||||
|
||||
CUTTLEFISH_VERSION=9082637 # Chosen from https://ci.android.com/builds/branches/aosp-master/grid?
|
||||
|
||||
mkdir /cuttlefish
|
||||
pushd /cuttlefish
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip https://ci.android.com/builds/submitted/$CUTTLEFISH_VERSION/aosp_cf_x86_64_phone-userdebug/latest/raw/aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip
|
||||
unzip aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip
|
||||
rm aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip
|
||||
ls -lhS ./*
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
https://ci.android.com/builds/submitted/$CUTTLEFISH_VERSION/aosp_cf_x86_64_phone-userdebug/latest/raw/cvd-host_package.tar.gz | tar -xzvf-
|
||||
|
||||
popd
|
||||
|
||||
############### Building and installing Debian package ...
|
||||
|
||||
git clone --depth 1 https://github.com/google/android-cuttlefish.git
|
||||
pushd android-cuttlefish
|
||||
|
||||
pushd base
|
||||
dpkg-buildpackage -uc -us
|
||||
popd
|
||||
|
||||
apt-get install -y ./cuttlefish-base_*.deb
|
||||
|
||||
popd
|
||||
rm -rf android-cuttlefish
|
||||
|
||||
addgroup --system kvm
|
||||
usermod -a -G kvm,cvdnetwork root
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
rm -rf "/${ndk:?}"
|
||||
|
||||
ccache --show-stats
|
||||
|
||||
apt-get purge -y \
|
||||
$STABLE_EPHEMERAL
|
||||
|
||||
apt-get autoremove -y --purge
|
@@ -63,7 +63,6 @@ apt-get install -y \
|
||||
sysvinit-core
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
curl \
|
||||
git \
|
||||
git-lfs \
|
||||
inetutils-syslogd \
|
||||
@@ -95,6 +94,7 @@ apt-get install -y --no-remove \
|
||||
socat \
|
||||
vulkan-tools \
|
||||
waffle-utils \
|
||||
wget \
|
||||
xauth \
|
||||
xvfb \
|
||||
zlib1g \
|
||||
|
@@ -29,7 +29,6 @@ STABLE_EPHEMERAL=" \
|
||||
libx11-xcb-dev \
|
||||
libxcb-dri2-0-dev \
|
||||
libxkbcommon-dev \
|
||||
libxrandr-dev \
|
||||
libxrender-dev \
|
||||
llvm-13-dev \
|
||||
llvm-11-dev \
|
||||
@@ -69,7 +68,7 @@ apt-get install -y --no-remove \
|
||||
|
||||
############### Build piglit
|
||||
|
||||
PIGLIT_OPTS="-DPIGLIT_BUILD_GLX_TESTS=ON -DPIGLIT_BUILD_CL_TESTS=ON -DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
|
||||
PIGLIT_OPTS="-DPIGLIT_BUILD_CL_TESTS=ON -DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
|
||||
|
||||
############### Build dEQP GL
|
||||
|
||||
@@ -79,10 +78,6 @@ DEQP_TARGET=surfaceless . .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
. .gitlab-ci/container/build-apitrace.sh
|
||||
|
||||
############### Build validation layer for zink
|
||||
|
||||
. .gitlab-ci/container/build-vulkan-validation.sh
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
ccache --show-stats
|
||||
|
@@ -51,12 +51,12 @@ STABLE_EPHEMERAL=" \
|
||||
|
||||
apt-get install -y --no-remove --no-install-recommends \
|
||||
$STABLE_EPHEMERAL \
|
||||
curl \
|
||||
libepoxy0 \
|
||||
libxcb-shm0 \
|
||||
pciutils \
|
||||
python3-lxml \
|
||||
python3-simplejson \
|
||||
wget \
|
||||
xinit \
|
||||
xserver-xorg-video-amdgpu \
|
||||
xserver-xorg-video-ati
|
||||
@@ -101,7 +101,7 @@ wine64 \
|
||||
|
||||
. .gitlab-ci/container/build-hang-detection.sh
|
||||
|
||||
############### Build piglit replayer
|
||||
############### Build piglit
|
||||
|
||||
PIGLIT_BUILD_TARGETS="piglit_replayer" . .gitlab-ci/container/build-piglit.sh
|
||||
|
||||
|
@@ -16,11 +16,13 @@ EPHEMERAL="
|
||||
pkgconfig(gbm)
|
||||
pkgconfig(openssl)
|
||||
unzip
|
||||
wget
|
||||
xz
|
||||
"
|
||||
|
||||
dnf install -y --setopt=install_weak_deps=False \
|
||||
bison \
|
||||
ccache \
|
||||
clang-devel \
|
||||
flex \
|
||||
gcc \
|
||||
@@ -59,7 +61,6 @@ dnf install -y --setopt=install_weak_deps=False \
|
||||
"pkgconfig(xshmfence)" \
|
||||
"pkgconfig(xxf86vm)" \
|
||||
"pkgconfig(zlib)" \
|
||||
procps-ng \
|
||||
python-unversioned-command \
|
||||
python3-devel \
|
||||
python3-mako \
|
||||
@@ -78,8 +79,7 @@ export XORG_RELEASES=https://xorg.freedesktop.org/releases/individu
|
||||
|
||||
export XORGMACROS_VERSION=util-macros-1.19.0
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
||||
wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
||||
tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
|
||||
cd $XORGMACROS_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $XORGMACROS_VERSION
|
||||
|
@@ -174,8 +174,6 @@ debian/android_build:
|
||||
- .use-debian/x86_build-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-android_build ${DEBIAN_BUILD_TAG}
|
||||
ANDROID_SDK_VERSION: 33
|
||||
ANDROID_NDK: android-ndk-r25b
|
||||
|
||||
.use-debian/android_build:
|
||||
extends:
|
||||
@@ -191,7 +189,7 @@ debian/android_build:
|
||||
debian/x86_test-base:
|
||||
extends: debian/x86_build-base
|
||||
variables:
|
||||
KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v6.1-for-mesa-ci-439f86d0051b/linux-v6.1-for-mesa-ci-439f86d0051b.tar.bz2"
|
||||
KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v6.0-for-mesa-ci-93bd820c433b/linux-v6.0-for-mesa-ci-93bd820c433b.tar.bz2"
|
||||
MESA_IMAGE_TAG: &debian-x86_test-base ${DEBIAN_BASE_TAG}
|
||||
|
||||
.use-debian/x86_test-base:
|
||||
@@ -236,23 +234,6 @@ debian/x86_test-vk:
|
||||
needs:
|
||||
- debian/x86_test-vk
|
||||
|
||||
# Debian 11 based x86 test image for Android
|
||||
debian/x86_test-android:
|
||||
extends: .use-debian/x86_test-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_test-android ${DEBIAN_X86_TEST_ANDROID_TAG}
|
||||
ANDROID_NDK: android-ndk-r25b
|
||||
|
||||
.use-debian/x86_test-android:
|
||||
extends:
|
||||
- .set-image-base-tag
|
||||
variables:
|
||||
MESA_BASE_TAG: *debian-x86_test-base
|
||||
MESA_IMAGE_PATH: ${DEBIAN_X86_TEST_ANDROID_IMAGE_PATH}
|
||||
MESA_IMAGE_TAG: *debian-x86_test-android
|
||||
needs:
|
||||
- debian/x86_test-android
|
||||
|
||||
# Debian 11 based ARM build image
|
||||
debian/arm_build:
|
||||
extends:
|
||||
@@ -280,7 +261,7 @@ alpine/x86_build:
|
||||
- .fdo.container-build@alpine
|
||||
- .container
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: "3.17"
|
||||
FDO_DISTRIBUTION_VERSION: "3.16"
|
||||
MESA_IMAGE_TAG: &alpine-x86_build ${ALPINE_X86_BUILD_TAG}
|
||||
|
||||
.use-alpine/x86_build:
|
||||
@@ -292,13 +273,13 @@ alpine/x86_build:
|
||||
needs:
|
||||
- alpine/x86_build
|
||||
|
||||
# Fedora 36 based x86 build image
|
||||
# Fedora 34 based x86 build image
|
||||
fedora/x86_build:
|
||||
extends:
|
||||
- .fdo.container-build@fedora
|
||||
- .container
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: 36
|
||||
FDO_DISTRIBUTION_VERSION: 34
|
||||
MESA_IMAGE_TAG: &fedora-x86_build ${FEDORA_X86_BUILD_TAG}
|
||||
|
||||
.use-fedora/x86_build:
|
||||
@@ -497,7 +478,6 @@ windows_test_vs2019:
|
||||
MESA_BASE_IMAGE_PATH: *windows_vs_image_path
|
||||
MESA_BASE_IMAGE_TAG: *windows_vs_image_tag
|
||||
MESA_BASE_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_BASE_IMAGE_PATH}:${MESA_BASE_IMAGE_TAG}"
|
||||
timeout: 2h 30m
|
||||
needs:
|
||||
- windows_vs2019
|
||||
|
||||
|
@@ -3,8 +3,7 @@
|
||||
APITRACE_VERSION="11.1"
|
||||
APITRACE_VERSION_DATE=""
|
||||
|
||||
curl -L -O --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
"https://github.com/apitrace/apitrace/releases/download/${APITRACE_VERSION}/apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z"
|
||||
wget "https://github.com/apitrace/apitrace/releases/download/${APITRACE_VERSION}/apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z"
|
||||
7zr x "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z" \
|
||||
"apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64/bin/apitrace.exe" \
|
||||
"apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64/bin/d3dretrace.exe"
|
||||
|
@@ -5,8 +5,7 @@ set -e
|
||||
dxvk_install_release() {
|
||||
local DXVK_VERSION=${1:-"1.10.3"}
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz"
|
||||
wget "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz"
|
||||
tar xzpf dxvk-"${DXVK_VERSION}".tar.gz
|
||||
# https://github.com/doitsujin/dxvk/issues/2921
|
||||
sed -i 's/wine="wine"/wine="wine32"/' "dxvk-${DXVK_VERSION}"/setup_dxvk.sh
|
||||
|
@@ -11,8 +11,7 @@ export DEBIAN_FRONTEND=noninteractive
|
||||
check_minio()
|
||||
{
|
||||
MINIO_PATH="${MINIO_HOST}/mesa-lava/$1/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}"
|
||||
if curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -s -X HEAD \
|
||||
"https://${MINIO_PATH}/done"; then
|
||||
if wget -q --method=HEAD "https://${MINIO_PATH}/done"; then
|
||||
exit
|
||||
fi
|
||||
}
|
||||
@@ -43,7 +42,6 @@ if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-kingoftown-r1.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dtb"
|
||||
KERNEL_IMAGE_NAME="Image"
|
||||
|
||||
elif [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
||||
@@ -86,13 +84,11 @@ fi
|
||||
|
||||
apt-get update
|
||||
apt-get install -y --no-remove \
|
||||
-o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' \
|
||||
${ARCH_PACKAGES} \
|
||||
automake \
|
||||
bc \
|
||||
clang \
|
||||
cmake \
|
||||
curl \
|
||||
debootstrap \
|
||||
git \
|
||||
glslang-tools \
|
||||
@@ -124,6 +120,7 @@ apt-get install -y --no-remove \
|
||||
python3-numpy \
|
||||
python3-serial \
|
||||
unzip \
|
||||
wget \
|
||||
zstd
|
||||
|
||||
|
||||
@@ -189,7 +186,7 @@ if [[ "$DEBIAN_ARCH" = "arm64" ]] \
|
||||
fi
|
||||
|
||||
############### Build piglit
|
||||
PIGLIT_OPTS="-DPIGLIT_BUILD_DMA_BUF_TESTS=ON -DPIGLIT_BUILD_GLX_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
|
||||
PIGLIT_OPTS="-DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
|
||||
mv /piglit /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||
|
||||
############### Build libva tests
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
@@ -13,7 +13,6 @@ mount -t devpts devpts /dev/pts
|
||||
mount -t tmpfs tmpfs /tmp
|
||||
|
||||
. ${VM_TEMP_DIR}/crosvm-env.sh
|
||||
. ${VM_TEMP_DIR}/setup-test-env.sh
|
||||
|
||||
# .gitlab-ci.yml script variable is using relative paths to install directory,
|
||||
# so change to that dir before running `crosvm-script`
|
||||
@@ -32,7 +31,7 @@ DMESG_PID=$!
|
||||
# Transfer the errors and crosvm-script output via a pair of virtio-vsocks
|
||||
socat -d -u pipe:${STDERR_FIFO} vsock-listen:${VSOCK_STDERR} &
|
||||
socat -d -U vsock-listen:${VSOCK_STDOUT} \
|
||||
system:"stdbuf -eL bash ${VM_TEMP_DIR}/crosvm-script.sh 2> ${STDERR_FIFO}; echo \$? > ${VM_TEMP_DIR}/exit_code",nofork
|
||||
system:"stdbuf -eL sh ${VM_TEMP_DIR}/crosvm-script.sh 2> ${STDERR_FIFO}; echo \$? > ${VM_TEMP_DIR}/exit_code",nofork
|
||||
|
||||
kill ${DMESG_PID}
|
||||
wait
|
||||
|
@@ -66,11 +66,9 @@ set_vsock_context || { echo "Could not generate crosvm vsock CID" >&2; exit 1; }
|
||||
echo "Variables passed through:"
|
||||
SCRIPT_DIR=$(readlink -en "${0%/*}")
|
||||
${SCRIPT_DIR}/common/generate-env.sh | tee ${VM_TEMP_DIR}/crosvm-env.sh
|
||||
cp ${SCRIPTS_DIR}/setup-test-env.sh ${VM_TEMP_DIR}/setup-test-env.sh
|
||||
|
||||
# Set the crosvm-script as the arguments of the current script
|
||||
echo ". ${VM_TEMP_DIR}/setup-test-env.sh" > ${VM_TEMP_DIR}/crosvm-script.sh
|
||||
echo "$@" >> ${VM_TEMP_DIR}/crosvm-script.sh
|
||||
echo "$@" > ${VM_TEMP_DIR}/crosvm-script.sh
|
||||
|
||||
# Setup networking
|
||||
/usr/sbin/iptables-legacy -w -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
||||
@@ -99,7 +97,7 @@ GALLIUM_DRIVER=${CROSVM_GALLIUM_DRIVER} \
|
||||
VK_ICD_FILENAMES=$CI_PROJECT_DIR/install/share/vulkan/icd.d/${CROSVM_VK_DRIVER}_icd.x86_64.json \
|
||||
crosvm --no-syslog run \
|
||||
--gpu "${CROSVM_GPU_ARGS}" --gpu-render-server "path=/usr/local/libexec/virgl_render_server" \
|
||||
-m "${CROSVM_MEMORY:-4096}" -c "${CROSVM_CPU:-2}" --disable-sandbox \
|
||||
-m "${CROSVM_MEMORY:-4096}" -c 2 --disable-sandbox \
|
||||
--shared-dir /:my_root:type=fs:writeback=true:timeout=60:cache=always \
|
||||
--host-ip "192.168.30.1" --netmask "255.255.255.0" --mac "AA:BB:CC:00:00:12" \
|
||||
-s $VM_SOCKET \
|
||||
|
@@ -1,115 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
section_start cuttlefish_setup "cuttlefish: setup"
|
||||
set -xe
|
||||
|
||||
export HOME=/cuttlefish
|
||||
export PATH=$PATH:/cuttlefish/bin
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${CI_PROJECT_DIR}/install/lib/:/cuttlefish/lib64
|
||||
export EGL_PLATFORM=surfaceless
|
||||
|
||||
syslogd
|
||||
|
||||
chown root.kvm /dev/kvm
|
||||
|
||||
/etc/init.d/cuttlefish-host-resources start
|
||||
|
||||
cd /cuttlefish
|
||||
|
||||
launch_cvd --verbosity=DEBUG --report_anonymous_usage_stats=n --cpus=8 --memory_mb=8192 --gpu_mode="$ANDROID_GPU_MODE" --daemon --enable_minimal_mode=true --guest_enforce_security=false --use_overlay=false
|
||||
sleep 1
|
||||
|
||||
cd -
|
||||
|
||||
adb connect vsock:3:5555
|
||||
ADB="adb -s vsock:3:5555"
|
||||
|
||||
$ADB root
|
||||
sleep 1
|
||||
$ADB shell echo Hi from Android
|
||||
$ADB logcat dEQP:D *:S &
|
||||
|
||||
# overlay vendor
|
||||
|
||||
OV_TMPFS="/data/overlay-remount"
|
||||
$ADB shell mkdir -p "$OV_TMPFS"
|
||||
$ADB shell mount -t tmpfs none "$OV_TMPFS"
|
||||
|
||||
$ADB shell mkdir -p "$OV_TMPFS/vendor-upper"
|
||||
$ADB shell mkdir -p "$OV_TMPFS/vendor-work"
|
||||
|
||||
opts="lowerdir=/vendor,upperdir=$OV_TMPFS/vendor-upper,workdir=$OV_TMPFS/vendor-work"
|
||||
$ADB shell mount -t overlay -o "$opts" none /vendor
|
||||
|
||||
$ADB shell setenforce 0
|
||||
|
||||
# deqp
|
||||
|
||||
$ADB push /deqp/modules/egl/deqp-egl /data/.
|
||||
$ADB push /deqp/assets/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-master.txt /data/.
|
||||
$ADB push /deqp-runner/deqp-runner /data/.
|
||||
|
||||
# download mesa-x86_64-android.tar.zst
|
||||
|
||||
MESA_ANDROID_ARTIFACT_URL=https://${PIPELINE_ARTIFACTS_BASE}/${MINIO_ARTIFACT_NAME}.tar.zst
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -o ${MINIO_ARTIFACT_NAME}.tar.zst ${MESA_ANDROID_ARTIFACT_URL}
|
||||
tar -xvf ${MINIO_ARTIFACT_NAME}.tar.zst
|
||||
|
||||
$ADB push install/all-skips.txt /data/.
|
||||
$ADB push install/$GPU_VERSION-flakes.txt /data/.
|
||||
$ADB push install/deqp-$DEQP_SUITE.toml /data/.
|
||||
|
||||
# remove 32 bits libs from /vendor/lib
|
||||
|
||||
$ADB shell rm /vendor/lib/dri/${ANDROID_DRIVER}_dri.so
|
||||
$ADB shell rm /vendor/lib/libglapi.so
|
||||
$ADB shell rm /vendor/lib/egl/libGLES_mesa.so
|
||||
|
||||
$ADB shell rm /vendor/lib/egl/libEGL_angle.so
|
||||
$ADB shell rm /vendor/lib/egl/libEGL_emulation.so
|
||||
$ADB shell rm /vendor/lib/egl/libGLESv1_CM_angle.so
|
||||
$ADB shell rm /vendor/lib/egl/libGLESv1_CM_emulation.so
|
||||
$ADB shell rm /vendor/lib/egl/libGLESv2_angle.so
|
||||
$ADB shell rm /vendor/lib/egl/libGLESv2_emulation.so
|
||||
|
||||
# replace on /vendor/lib64
|
||||
|
||||
$ADB push install/lib/dri/${ANDROID_DRIVER}_dri.so /vendor/lib64/dri/${ANDROID_DRIVER}_dri.so
|
||||
$ADB push install/lib/libglapi.so /vendor/lib64/libglapi.so
|
||||
$ADB push install/lib/libEGL.so /vendor/lib64/egl/libEGL_mesa.so
|
||||
|
||||
$ADB shell rm /vendor/lib64/egl/libEGL_angle.so
|
||||
$ADB shell rm /vendor/lib64/egl/libEGL_emulation.so
|
||||
$ADB shell rm /vendor/lib64/egl/libGLESv1_CM_angle.so
|
||||
$ADB shell rm /vendor/lib64/egl/libGLESv1_CM_emulation.so
|
||||
$ADB shell rm /vendor/lib64/egl/libGLESv2_angle.so
|
||||
$ADB shell rm /vendor/lib64/egl/libGLESv2_emulation.so
|
||||
|
||||
|
||||
RESULTS=/data/results
|
||||
uncollapsed_section_switch cuttlefish_test "cuttlefish: testing"
|
||||
|
||||
set +e
|
||||
$ADB shell "mkdir /data/results; cd /data; ./deqp-runner \
|
||||
suite \
|
||||
--suite /data/deqp-$DEQP_SUITE.toml \
|
||||
--output $RESULTS \
|
||||
--skips /data/all-skips.txt $DEQP_SKIPS \
|
||||
--flakes /data/$GPU_VERSION-flakes.txt \
|
||||
--testlog-to-xml /deqp/executor/testlog-to-xml \
|
||||
--fraction-start $CI_NODE_INDEX \
|
||||
--fraction `expr $CI_NODE_TOTAL \* ${DEQP_FRACTION:-1}` \
|
||||
--jobs ${FDO_CI_CONCURRENT:-4} \
|
||||
$DEQP_RUNNER_OPTIONS"
|
||||
|
||||
EXIT_CODE=$?
|
||||
set -e
|
||||
section_switch cuttlefish_results "cuttlefish: gathering the results"
|
||||
|
||||
$ADB pull $RESULTS results
|
||||
|
||||
cp /cuttlefish/cuttlefish/instances/cvd-1/logs/logcat results
|
||||
cp /cuttlefish/cuttlefish/instances/cvd-1/kernel.log results
|
||||
cp /cuttlefish/cuttlefish/instances/cvd-1/logs/launcher.log results
|
||||
|
||||
section_end cuttlefish_results
|
||||
exit $EXIT_CODE
|
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
section_start test_setup "deqp: preparing test setup"
|
||||
echo -e "\e[0Ksection_start:$(date +%s):test_setup[collapsed=true]\r\e[0Kpreparing test setup"
|
||||
|
||||
set -ex
|
||||
|
||||
@@ -116,19 +116,18 @@ if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then
|
||||
DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$GPU_VERSION-skips.txt"
|
||||
fi
|
||||
|
||||
if [ "$PIGLIT_PLATFORM" != "gbm" ] ; then
|
||||
DEQP_SKIPS="$DEQP_SKIPS $INSTALL/x11-skips.txt"
|
||||
fi
|
||||
|
||||
if [ "$PIGLIT_PLATFORM" = "gbm" ]; then
|
||||
DEQP_SKIPS="$DEQP_SKIPS $INSTALL/gbm-skips.txt"
|
||||
fi
|
||||
|
||||
report_load() {
|
||||
echo "System load: $(cut -d' ' -f1-3 < /proc/loadavg)"
|
||||
echo "# of CPU cores: $(cat /proc/cpuinfo | grep processor | wc -l)"
|
||||
}
|
||||
|
||||
# wrapper to supress +x to avoid spamming the log
|
||||
quiet() {
|
||||
set +x
|
||||
"$@"
|
||||
set -x
|
||||
}
|
||||
|
||||
if [ "$GALLIUM_DRIVER" = "virpipe" ]; then
|
||||
# deqp is to use virpipe, and virgl_test_server llvmpipe
|
||||
export GALLIUM_DRIVER="$GALLIUM_DRIVER"
|
||||
@@ -153,7 +152,11 @@ if [ -z "$DEQP_SUITE" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
uncollapsed_section_switch deqp "deqp: deqp-runner"
|
||||
set +x
|
||||
echo -e "\e[0Ksection_end:$(date +%s):test_setup\r\e[0K"
|
||||
|
||||
echo -e "\e[0Ksection_start:$(date +%s):deqp[collapsed=false]\r\e[0Kdeqp-runner"
|
||||
set -x
|
||||
|
||||
set +e
|
||||
if [ -z "$DEQP_SUITE" ]; then
|
||||
@@ -186,10 +189,11 @@ fi
|
||||
DEQP_EXITCODE=$?
|
||||
|
||||
set +x
|
||||
echo -e "\e[0Ksection_end:$(date +%s):deqp\r\e[0K"
|
||||
|
||||
report_load
|
||||
|
||||
section_switch test_post_process "deqp: post-processing test results"
|
||||
echo -e "\e[0Ksection_start:$(date +%s):test_post_process[collapsed=true]\r\e[0Kpost-processing test results"
|
||||
set -x
|
||||
|
||||
# Remove all but the first 50 individual XML files uploaded as artifacts, to
|
||||
@@ -226,11 +230,6 @@ if [ -n "$FLAKES_CHANNEL" ]; then
|
||||
--branch-title "${CI_MERGE_REQUEST_TITLE:-$CI_COMMIT_TITLE}"
|
||||
fi
|
||||
|
||||
# Compress results.csv to save on bandwidth during the upload of artifacts to
|
||||
# GitLab. This reduces the size in a VKCTS run from 135 to 7.6MB, and takes
|
||||
# 0.17s on a Ryzen 5950X (16 threads, 0.95s when limited to 1 thread).
|
||||
zstd --rm -T0 -8q "$RESULTS/results.csv" -o "$RESULTS/results.csv.zst"
|
||||
|
||||
section_end test_post_process
|
||||
echo -e "\e[0Ksection_end:$(date +%s):test_post_process\r\e[0K"
|
||||
|
||||
exit $DEQP_EXITCODE
|
||||
|
@@ -16,9 +16,8 @@ fi
|
||||
TMP_DIR=$(mktemp -d)
|
||||
|
||||
echo "Downloading archived master..."
|
||||
/usr/bin/wget \
|
||||
-O "$TMP_DIR/$CI_PROJECT_NAME.tar.gz" \
|
||||
"https://${MINIO_HOST}/git-cache/${FDO_UPSTREAM_REPO}/$CI_PROJECT_NAME.tar.gz"
|
||||
/usr/bin/wget -O $TMP_DIR/$CI_PROJECT_NAME.tar.gz \
|
||||
https://${MINIO_HOST}/git-cache/${FDO_UPSTREAM_REPO}/$CI_PROJECT_NAME.tar.gz
|
||||
|
||||
# check wget error code
|
||||
if [[ $? -ne 0 ]]
|
||||
|
@@ -1,7 +0,0 @@
|
||||
# gbm does not support reading the front buffer after a swapbuffers, and that's
|
||||
# intentional. Don't bother running these tests when PIGLIT_PLATFORM=gbm.
|
||||
#
|
||||
# Note that this doesn't include tests like fbo-sys-blit, which draw/read front
|
||||
# but don't swap.
|
||||
spec@!opengl 1.0@gl-1.0-swapbuffers-behavior
|
||||
spec@!opengl 1.1@read-front
|
@@ -1,9 +1,9 @@
|
||||
variables:
|
||||
DEBIAN_X86_BUILD_BASE_IMAGE: "debian/x86_build-base"
|
||||
DEBIAN_BASE_TAG: "2023-06-07-rust-bump"
|
||||
DEBIAN_BASE_TAG: "2023-01-31-rust-valgrind-23-stable"
|
||||
|
||||
DEBIAN_X86_BUILD_IMAGE_PATH: "debian/x86_build"
|
||||
DEBIAN_BUILD_TAG: "2023-04-03-android-meson-aarch64"
|
||||
DEBIAN_BUILD_TAG: "2023-01-09-lavacli"
|
||||
|
||||
DEBIAN_X86_BUILD_MINGW_IMAGE_PATH: "debian/x86_build-mingw"
|
||||
DEBIAN_BUILD_MINGW_TAG: "2023-01-03-ci-libva-2.17"
|
||||
@@ -13,21 +13,19 @@ variables:
|
||||
DEBIAN_X86_TEST_IMAGE_GL_PATH: "debian/x86_test-gl"
|
||||
DEBIAN_X86_TEST_IMAGE_VK_PATH: "debian/x86_test-vk"
|
||||
DEBIAN_X86_TEST_IMAGE_PATH: ${DEBIAN_X86_TEST_IMAGE_GL_PATH}
|
||||
DEBIAN_X86_TEST_ANDROID_IMAGE_PATH: "debian/x86_test-android"
|
||||
|
||||
DEBIAN_X86_TEST_ANDROID_TAG: "2023-02-20-uprev-deqp-v2"
|
||||
DEBIAN_X86_TEST_GL_TAG: "2023-04-11-piglit-355ad6bc"
|
||||
DEBIAN_X86_TEST_VK_TAG: "2023-04-11-piglit-355ad6bc"
|
||||
DEBIAN_X86_TEST_GL_TAG: "2023-01-08-weston-xwayland"
|
||||
DEBIAN_X86_TEST_VK_TAG: "2022-12-12-vkd3d-proton-uprev"
|
||||
|
||||
ALPINE_X86_BUILD_TAG: "2023-03-20-3.17-bump"
|
||||
FEDORA_X86_BUILD_TAG: "2023-03-13-procps-ng"
|
||||
KERNEL_ROOTFS_TAG: "2023-04-11-piglit-355ad6bc"
|
||||
ALPINE_X86_BUILD_TAG: "2023-01-10-robust-wget"
|
||||
FEDORA_X86_BUILD_TAG: "2023-01-10-robust-wget"
|
||||
KERNEL_ROOTFS_TAG: "2023-01-10-virglrenderer"
|
||||
|
||||
WINDOWS_X64_VS_PATH: "windows/x64_vs"
|
||||
WINDOWS_X64_VS_TAG: "2022-10-20-upgrade-zlib"
|
||||
|
||||
WINDOWS_X64_BUILD_PATH: "windows/x64_build"
|
||||
WINDOWS_X64_BUILD_TAG: "2023-04-05-agility-710"
|
||||
WINDOWS_X64_BUILD_TAG: "2023-01-03-ci-libva-2.17"
|
||||
|
||||
WINDOWS_X64_TEST_PATH: "windows/x64_test"
|
||||
WINDOWS_X64_TEST_TAG: "2023-04-05-agility-710"
|
||||
WINDOWS_X64_TEST_TAG: "2023-01-03-piglit-waffle"
|
||||
|
@@ -4,6 +4,7 @@
|
||||
variables:
|
||||
GIT_STRATEGY: none # testing doesn't build anything from source
|
||||
FDO_CI_CONCURRENT: 6 # should be replaced by per-machine definitions
|
||||
DEQP_VER: gles2
|
||||
# proxy used to cache data locally
|
||||
FDO_HTTP_CACHE_URI: "http://caching-proxy/cache/?uri="
|
||||
# base system generated by the container build job, shared between many pipelines
|
||||
@@ -31,7 +32,7 @@
|
||||
tags:
|
||||
- $RUNNER_TAG
|
||||
after_script:
|
||||
- curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -s "https://${JOB_RESULTS_PATH}" | tar --zstd -x
|
||||
- wget -q "https://${JOB_RESULTS_PATH}" -O- | tar --zstd -x
|
||||
|
||||
.lava-test:armhf:
|
||||
variables:
|
||||
@@ -39,6 +40,7 @@
|
||||
KERNEL_IMAGE_NAME: zImage
|
||||
KERNEL_IMAGE_TYPE: "zimage"
|
||||
BOOT_METHOD: u-boot
|
||||
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
|
||||
extends:
|
||||
- .use-debian/arm_build # for same $MESA_ARTIFACTS_TAG as in kernel+rootfs_armhf
|
||||
- .use-debian/x86_build
|
||||
@@ -49,18 +51,13 @@
|
||||
- debian/x86_build
|
||||
- debian-armhf
|
||||
|
||||
.lava-test-deqp:armhf:
|
||||
extends:
|
||||
- .lava-test:armhf
|
||||
variables:
|
||||
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
|
||||
|
||||
.lava-test:arm64:
|
||||
variables:
|
||||
ARCH: arm64
|
||||
KERNEL_IMAGE_NAME: Image
|
||||
KERNEL_IMAGE_TYPE: "image"
|
||||
BOOT_METHOD: u-boot
|
||||
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
|
||||
extends:
|
||||
- .use-debian/arm_build # for same $MESA_ARTIFACTS_TAG as in kernel+rootfs_arm64
|
||||
- .use-debian/x86_build
|
||||
@@ -73,18 +70,13 @@
|
||||
- debian/x86_build
|
||||
- debian-arm64
|
||||
|
||||
.lava-test-deqp:arm64:
|
||||
variables:
|
||||
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
|
||||
extends:
|
||||
- .lava-test:arm64
|
||||
|
||||
.lava-test:amd64:
|
||||
variables:
|
||||
ARCH: amd64
|
||||
KERNEL_IMAGE_NAME: bzImage
|
||||
KERNEL_IMAGE_TYPE: "zimage"
|
||||
BOOT_METHOD: u-boot
|
||||
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
|
||||
extends:
|
||||
- .use-debian/x86_build-base # for same $MESA_ARTIFACTS_BASE_TAG as in kernel+rootfs_amd64
|
||||
- .use-debian/x86_build
|
||||
@@ -94,12 +86,6 @@
|
||||
- kernel+rootfs_amd64
|
||||
- debian-testing
|
||||
|
||||
.lava-test-deqp:amd64:
|
||||
variables:
|
||||
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
|
||||
extends:
|
||||
- .lava-test:amd64
|
||||
|
||||
.lava-traces-base:
|
||||
variables:
|
||||
HWCI_TEST_SCRIPT: "/install/piglit/piglit-traces.sh"
|
||||
@@ -135,8 +121,3 @@
|
||||
extends:
|
||||
- .lava-test:amd64
|
||||
- .lava-piglit
|
||||
|
||||
.lava-piglit:arm64:
|
||||
extends:
|
||||
- .lava-test:arm64
|
||||
- .lava-piglit
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2022 Collabora Limited
|
||||
# Author: Guilherme Gallo <guilherme.gallo@collabora.com>
|
||||
@@ -26,11 +26,6 @@
|
||||
|
||||
set -ex
|
||||
|
||||
# Use this script in a python virtualenv for isolation
|
||||
python3 -m venv .venv
|
||||
. .venv/bin/activate
|
||||
python3 -m pip install -r ${CI_PROJECT_DIR}/.gitlab-ci/lava/requirements-test.txt
|
||||
|
||||
TEST_DIR=${CI_PROJECT_DIR}/.gitlab-ci/tests
|
||||
|
||||
PYTHONPATH="${TEST_DIR}:${PYTHONPATH}" python3 -m \
|
||||
|
@@ -5,8 +5,7 @@ set -x
|
||||
|
||||
# Try to use the kernel and rootfs built in mainline first, so we're more
|
||||
# likely to hit cache
|
||||
if curl -s -X HEAD -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
"https://${BASE_SYSTEM_MAINLINE_HOST_PATH}/done"; then
|
||||
if wget -q --method=HEAD "https://${BASE_SYSTEM_MAINLINE_HOST_PATH}/done"; then
|
||||
BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_MAINLINE_HOST_PATH}"
|
||||
else
|
||||
BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_FORK_HOST_PATH}"
|
||||
@@ -18,27 +17,17 @@ mkdir -p results/job-rootfs-overlay/
|
||||
cp artifacts/ci-common/capture-devcoredump.sh results/job-rootfs-overlay/
|
||||
cp artifacts/ci-common/init-*.sh results/job-rootfs-overlay/
|
||||
cp artifacts/ci-common/intel-gpu-freq.sh results/job-rootfs-overlay/
|
||||
cp "$SCRIPTS_DIR"/setup-test-env.sh results/job-rootfs-overlay/
|
||||
|
||||
# Prepare env vars for upload.
|
||||
KERNEL_IMAGE_BASE_URL="https://${BASE_SYSTEM_HOST_PATH}" \
|
||||
artifacts/ci-common/generate-env.sh > results/job-rootfs-overlay/set-job-env-vars.sh
|
||||
section_start variables "Variables passed through:"
|
||||
echo -e "\e[0Ksection_start:$(date +%s):variables[collapsed=true]\r\e[0KVariables passed through:"
|
||||
cat results/job-rootfs-overlay/set-job-env-vars.sh
|
||||
section_end variables
|
||||
echo -e "\e[0Ksection_end:$(date +%s):variables\r\e[0K"
|
||||
|
||||
tar zcf job-rootfs-overlay.tar.gz -C results/job-rootfs-overlay/ .
|
||||
ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" job-rootfs-overlay.tar.gz "https://${JOB_ROOTFS_OVERLAY_PATH}"
|
||||
|
||||
ARTIFACT_URL="${FDO_HTTP_CACHE_URI:-}https://${BUILD_PATH}"
|
||||
# Make it take the mesa build from MINIO_ARTIFACT_NAME, if it is specified in
|
||||
# the environment. This will make the LAVA behavior consistent with the
|
||||
# baremetal jobs.
|
||||
if [ -n "${MINIO_ARTIFACT_NAME}" ]
|
||||
then
|
||||
ARTIFACT_URL="${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${MINIO_ARTIFACT_NAME}.tar.zst"
|
||||
fi
|
||||
|
||||
touch results/lava.log
|
||||
tail -f results/lava.log &
|
||||
PYTHONPATH=artifacts/ artifacts/lava/lava_job_submitter.py \
|
||||
@@ -46,7 +35,7 @@ PYTHONPATH=artifacts/ artifacts/lava/lava_job_submitter.py \
|
||||
--pipeline-info "$CI_JOB_NAME: $CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \
|
||||
--rootfs-url-prefix "https://${BASE_SYSTEM_HOST_PATH}" \
|
||||
--kernel-url-prefix "https://${BASE_SYSTEM_HOST_PATH}" \
|
||||
--build-url "${ARTIFACT_URL}" \
|
||||
--build-url "${FDO_HTTP_CACHE_URI:-}https://${BUILD_PATH}" \
|
||||
--job-rootfs-overlay-url "${FDO_HTTP_CACHE_URI:-}https://${JOB_ROOTFS_OVERLAY_PATH}" \
|
||||
--job-timeout ${JOB_TIMEOUT:-30} \
|
||||
--first-stage-init artifacts/ci-common/init-stage1.sh \
|
||||
|
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright (C) 2020 - 2023 Collabora Limited
|
||||
# Copyright (C) 2020 - 2022 Collabora Limited
|
||||
# Authors:
|
||||
# Gustavo Padovan <gustavo.padovan@collabora.com>
|
||||
# Guilherme Gallo <guilherme.gallo@collabora.com>
|
||||
@@ -61,11 +61,6 @@ NUMBER_OF_RETRIES_TIMEOUT_DETECTION = int(getenv("LAVA_NUMBER_OF_RETRIES_TIMEOUT
|
||||
# How many attempts should be made when a timeout happen during LAVA device boot.
|
||||
NUMBER_OF_ATTEMPTS_LAVA_BOOT = int(getenv("LAVA_NUMBER_OF_ATTEMPTS_LAVA_BOOT", 3))
|
||||
|
||||
# Supports any integers in [0, 100].
|
||||
# The scheduler considers the job priority when ordering the queue
|
||||
# to consider which job should run next.
|
||||
JOB_PRIORITY = int(getenv("LAVA_JOB_PRIORITY", 75))
|
||||
|
||||
|
||||
def generate_lava_yaml_payload(args) -> dict[str, Any]:
|
||||
# General metadata and permissions, plus also inexplicably kernel arguments
|
||||
@@ -73,7 +68,7 @@ def generate_lava_yaml_payload(args) -> dict[str, Any]:
|
||||
'job_name': 'mesa: {}'.format(args.pipeline_info),
|
||||
'device_type': args.device_type,
|
||||
'visibility': { 'group': [ args.visibility_group ] },
|
||||
'priority': JOB_PRIORITY,
|
||||
'priority': 75,
|
||||
'context': {
|
||||
'extra_nfsroot_args': ' init=/init rootwait usbcore.quirks=0bda:8153:k'
|
||||
},
|
||||
@@ -166,7 +161,7 @@ def generate_lava_yaml_payload(args) -> dict[str, Any]:
|
||||
x.rstrip() for x in init_sh if not x.startswith("#") and x.rstrip()
|
||||
]
|
||||
run_steps.append(
|
||||
f"curl -L --retry 4 -f --retry-all-errors --retry-delay 60 {args.job_rootfs_overlay_url} | tar -xz -C /",
|
||||
f"wget -S --progress=dot:giga -O- {args.job_rootfs_overlay_url} | tar -xz -C /",
|
||||
)
|
||||
|
||||
if args.jwt_file:
|
||||
@@ -185,7 +180,7 @@ def generate_lava_yaml_payload(args) -> dict[str, Any]:
|
||||
|
||||
run_steps += [
|
||||
'mkdir -p {}'.format(args.ci_project_dir),
|
||||
'curl {} | tar --zstd -x -C {}'.format(args.build_url, args.ci_project_dir),
|
||||
'wget -S --progress=dot:giga -O- {} | tar --zstd -x -C {}'.format(args.build_url, args.ci_project_dir),
|
||||
|
||||
# Sleep a bit to give time for bash to dump shell xtrace messages into
|
||||
# console which may cause interleaving with LAVA_SIGNAL_STARTTC in some
|
||||
|
@@ -1,6 +0,0 @@
|
||||
-r requirements.txt
|
||||
freezegun==1.1.0
|
||||
hypothesis==6.67.1
|
||||
pytest==7.2.1
|
||||
pytest-cov==3.0.0
|
||||
PyYAML==5.3.1
|
@@ -1 +0,0 @@
|
||||
lavacli==1.5.2
|
@@ -1,35 +0,0 @@
|
||||
import os
|
||||
import re
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class LavaFarm(Enum):
|
||||
"""Enum class representing the different LAVA farms."""
|
||||
|
||||
LIMA = 1
|
||||
COLLABORA = 2
|
||||
UNKNOWN = 3
|
||||
|
||||
|
||||
LAVA_FARM_RUNNER_PATTERNS: dict[LavaFarm, str] = {
|
||||
# Lima pattern comes first, since it has the same prefix as the
|
||||
# Collabora pattern.
|
||||
LavaFarm.LIMA: r"^mesa-ci-[\x01-\x7F]+-lava-lima$",
|
||||
LavaFarm.COLLABORA: r"^mesa-ci-[\x01-\x7F]+-lava-[\x01-\x7F]+$",
|
||||
LavaFarm.UNKNOWN: r"^[\x01-\x7F]+",
|
||||
}
|
||||
|
||||
|
||||
def get_lava_farm() -> LavaFarm:
|
||||
"""
|
||||
Returns the LAVA farm based on the RUNNER_TAG environment variable.
|
||||
|
||||
:return: The LAVA farm
|
||||
"""
|
||||
runner_tag: str = os.getenv("RUNNER_TAG", "unknown")
|
||||
|
||||
for farm, pattern in LAVA_FARM_RUNNER_PATTERNS.items():
|
||||
if re.match(pattern, runner_tag):
|
||||
return farm
|
||||
|
||||
raise ValueError(f"Unknown LAVA runner tag: {runner_tag}")
|
@@ -20,7 +20,6 @@ from typing import Optional, Union
|
||||
from lava.exceptions import MesaCITimeoutError
|
||||
from lava.utils.console_format import CONSOLE_LOG
|
||||
from lava.utils.gitlab_section import GitlabSection
|
||||
from lava.utils.lava_farm import LavaFarm, get_lava_farm
|
||||
from lava.utils.lava_log_hints import LAVALogHints
|
||||
from lava.utils.log_section import (
|
||||
DEFAULT_GITLAB_SECTION_TIMEOUTS,
|
||||
@@ -39,8 +38,6 @@ class LogFollower:
|
||||
fallback_timeout: timedelta = FALLBACK_GITLAB_SECTION_TIMEOUT
|
||||
_buffer: list[str] = field(default_factory=list, init=False)
|
||||
log_hints: LAVALogHints = field(init=False)
|
||||
lava_farm: LavaFarm = field(init=False, default=get_lava_farm())
|
||||
_merge_next_line: str = field(default_factory=str, init=False)
|
||||
|
||||
def __post_init__(self):
|
||||
section_is_created = bool(self.current_section)
|
||||
@@ -127,52 +124,6 @@ class LogFollower:
|
||||
|
||||
return False
|
||||
|
||||
def remove_trailing_whitespace(self, line: dict[str, str]) -> None:
|
||||
"""
|
||||
Removes trailing whitespace from the end of the `msg` value in the log line dictionary.
|
||||
|
||||
Args:
|
||||
line: A dictionary representing a single log line.
|
||||
|
||||
Note:
|
||||
LAVA treats carriage return characters as a line break, so each carriage return in an output console
|
||||
is mapped to a console line in LAVA. This method removes trailing `\r\n` characters from log lines.
|
||||
"""
|
||||
msg: Optional[str] = line.get("msg")
|
||||
if not msg:
|
||||
return False
|
||||
|
||||
messages = [msg] if isinstance(msg, str) else msg
|
||||
|
||||
for message in messages:
|
||||
# LAVA logs brings raw messages, which includes newlines characters as \r\n.
|
||||
line["msg"]: str = re.sub(r"\r\n$", "", message)
|
||||
|
||||
def merge_carriage_return_lines(self, line: dict[str, str]) -> bool:
|
||||
"""
|
||||
Merges lines that end with a carriage return character into a single line.
|
||||
|
||||
Args:
|
||||
line: A dictionary representing a single log line.
|
||||
|
||||
Returns:
|
||||
A boolean indicating whether the current line has been merged with the next line.
|
||||
|
||||
Note:
|
||||
LAVA treats carriage return characters as a line break, so each carriage return in an output console
|
||||
is mapped to a console line in LAVA.
|
||||
"""
|
||||
if line["msg"].endswith("\r"):
|
||||
self._merge_next_line += line["msg"]
|
||||
return True
|
||||
|
||||
if self._merge_next_line:
|
||||
line["msg"] = self._merge_next_line + line["msg"]
|
||||
self._merge_next_line = ""
|
||||
|
||||
return False
|
||||
|
||||
|
||||
def feed(self, new_lines: list[dict[str, str]]) -> bool:
|
||||
"""Input data to be processed by LogFollower instance
|
||||
Returns true if the DUT (device under test) seems to be alive.
|
||||
@@ -184,14 +135,9 @@ class LogFollower:
|
||||
is_job_healthy = False
|
||||
|
||||
for line in new_lines:
|
||||
self.remove_trailing_whitespace(line)
|
||||
|
||||
if self.detect_kernel_dump_line(line):
|
||||
continue
|
||||
|
||||
if self.merge_carriage_return_lines(line):
|
||||
continue
|
||||
|
||||
# At least we are fed with a non-kernel dump log, it seems that the
|
||||
# job is progressing
|
||||
is_job_healthy = True
|
||||
@@ -220,7 +166,7 @@ class LogFollower:
|
||||
elif line["lvl"] == "input":
|
||||
prefix = "$ "
|
||||
suffix = ""
|
||||
elif line["lvl"] == "target" and self.lava_farm != LavaFarm.COLLABORA:
|
||||
elif line["lvl"] == "target":
|
||||
# gl_section_fix_gen will output the stored line if it can't find a
|
||||
# match for the first split line
|
||||
# So we can recover it and put it back to the buffer
|
||||
@@ -265,7 +211,7 @@ def fix_lava_gitlab_section_log():
|
||||
|
||||
|
||||
|
||||
def print_log(msg: str) -> None:
|
||||
def print_log(msg):
|
||||
# Reset color from timestamp, since `msg` can tint the terminal color
|
||||
print(f"{CONSOLE_LOG['RESET']}{datetime.now()}: {msg}")
|
||||
|
||||
|
@@ -1,29 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
section_switch meson-configure "meson: configure"
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
CROSS_FILE=/cross_file-"$CROSS".txt
|
||||
|
||||
export PATH=$PATH:$PWD/.gitlab-ci/build
|
||||
|
||||
touch native.file
|
||||
printf > native.file "%s\n" \
|
||||
"[binaries]" \
|
||||
"c = 'compiler-wrapper-${CC:-gcc}.sh'" \
|
||||
"cpp = 'compiler-wrapper-${CXX:-g++}.sh'"
|
||||
|
||||
# We need to control the version of llvm-config we're using, so we'll
|
||||
# tweak the cross file or generate a native file to do so.
|
||||
if test -n "$LLVM_VERSION"; then
|
||||
LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
echo "llvm-config = '`which $LLVM_CONFIG`'" >> native.file
|
||||
echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file
|
||||
if [ -n "$CROSS" ]; then
|
||||
sed -i -e '/\[binaries\]/a\' -e "llvm-config = '`which $LLVM_CONFIG`'" $CROSS_FILE
|
||||
fi
|
||||
$LLVM_CONFIG --version
|
||||
else
|
||||
rm -f native.file
|
||||
touch native.file
|
||||
fi
|
||||
|
||||
# cross-xfail-$CROSS, if it exists, contains a list of tests that are expected
|
||||
@@ -66,19 +59,15 @@ case $CI_JOB_NAME in
|
||||
esac
|
||||
|
||||
rm -rf _build
|
||||
meson setup _build \
|
||||
--native-file=native.file \
|
||||
meson _build --native-file=native.file \
|
||||
--wrap-mode=nofallback \
|
||||
--force-fallback-for perfetto \
|
||||
${CROSS+--cross "$CROSS_FILE"} \
|
||||
-D prefix=`pwd`/install \
|
||||
-D libdir=lib \
|
||||
-D buildtype=${BUILDTYPE:-debug} \
|
||||
-D build-tests=true \
|
||||
-D c_args="$(echo -n $C_ARGS)" \
|
||||
-D c_link_args="$(echo -n $C_LINK_ARGS)" \
|
||||
-D cpp_args="$(echo -n $CPP_ARGS)" \
|
||||
-D cpp_link_args="$(echo -n $CPP_LINK_ARGS)" \
|
||||
-D enable-glcpp-tests=false \
|
||||
-D libunwind=${UNWIND} \
|
||||
${DRI_LOADERS} \
|
||||
@@ -90,17 +79,11 @@ meson setup _build \
|
||||
${EXTRA_OPTION}
|
||||
cd _build
|
||||
meson configure
|
||||
|
||||
uncollapsed_section_switch meson-build "meson: build"
|
||||
|
||||
if command -V mold &> /dev/null ; then
|
||||
mold --run ninja
|
||||
else
|
||||
ninja
|
||||
fi
|
||||
|
||||
|
||||
uncollapsed_section_switch meson-test "meson: test"
|
||||
LC_ALL=C.UTF-8 meson test --num-processes ${FDO_CI_CONCURRENT:-4} --print-errorlogs ${MESON_TEST_ARGS}
|
||||
if command -V mold &> /dev/null ; then
|
||||
mold --run ninja install
|
||||
@@ -108,4 +91,3 @@ else
|
||||
ninja install
|
||||
fi
|
||||
cd ..
|
||||
section_end meson-test
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "x$STRACEDIR" = "x" ]; then
|
||||
STRACEDIR=meson-logs/strace/$(for i in $@; do basename -z -- $i; echo -n _; done).$$
|
||||
STRACEDIR=meson-logs/strace/$(for i in $@; do basename -z -- $i; echo -n _; done)
|
||||
fi
|
||||
|
||||
mkdir -p $STRACEDIR
|
||||
|
@@ -76,14 +76,6 @@ if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then
|
||||
PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$GPU_VERSION-skips.txt"
|
||||
fi
|
||||
|
||||
if [ "$PIGLIT_PLATFORM" != "gbm" ] ; then
|
||||
PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/x11-skips.txt"
|
||||
fi
|
||||
|
||||
if [ "$PIGLIT_PLATFORM" = "gbm" ]; then
|
||||
PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/gbm-skips.txt"
|
||||
fi
|
||||
|
||||
set +e
|
||||
|
||||
piglit-runner \
|
||||
@@ -122,9 +114,4 @@ if [ -n "$FLAKES_CHANNEL" ]; then
|
||||
--branch-title "${CI_MERGE_REQUEST_TITLE:-$CI_COMMIT_TITLE}"
|
||||
fi
|
||||
|
||||
# Compress results.csv to save on bandwidth during the upload of artifacts to
|
||||
# GitLab. This reduces a full piglit run to 550 KB, down from 6 MB, and takes
|
||||
# 55ms on my Ryzen 5950X (with or without parallelism).
|
||||
zstd --rm -T0 -8qc $RESULTS/results.csv -o $RESULTS/results.csv.zst
|
||||
|
||||
exit $PIGLIT_EXITCODE
|
||||
|
@@ -12,8 +12,8 @@ if [ "$PIGLIT_REPLAY_SUBCOMMAND" = "profile" ]; then
|
||||
# workaround for older Debian Bullseye libyaml 0.2.2
|
||||
sed -i "/^%YAML 1\.2$/d" "$PIGLIT_REPLAY_DESCRIPTION_FILE"
|
||||
|
||||
yq -iY 'del(.traces[][] | select(.label[]? == "no-perf"))' \
|
||||
"$PIGLIT_REPLAY_DESCRIPTION_FILE"
|
||||
yq -i -Y '. | del(.traces[][] | select(.label[0,1,2,3,4,5,6,7,8,9] == "no-perf"))' \
|
||||
"$PIGLIT_REPLAY_DESCRIPTION_FILE" # label positions are a bit hack
|
||||
fi
|
||||
|
||||
# WINE
|
||||
@@ -129,7 +129,7 @@ replay_minio_upload_images() {
|
||||
fi
|
||||
__MINIO_PATH="$PIGLIT_REPLAY_REFERENCE_IMAGES_BASE"
|
||||
__DESTINATION_FILE_PATH="${line##*-}"
|
||||
if curl -L -s -X HEAD "https://${__MINIO_PATH}/${__DESTINATION_FILE_PATH}" 2>/dev/null; then
|
||||
if wget -q --method=HEAD "https://${__MINIO_PATH}/${__DESTINATION_FILE_PATH}" 2>/dev/null; then
|
||||
continue
|
||||
fi
|
||||
else
|
||||
|
@@ -1,6 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
section_switch prepare-artifacts "artifacts: prepare"
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
@@ -38,7 +36,6 @@ cp -Rp .gitlab-ci/*.txt install/
|
||||
cp -Rp .gitlab-ci/report-flakes.py install/
|
||||
cp -Rp .gitlab-ci/valve install/
|
||||
cp -Rp .gitlab-ci/vkd3d-proton install/
|
||||
cp -Rp .gitlab-ci/setup-test-env.sh install/
|
||||
cp -Rp .gitlab-ci/*-runner.sh install/
|
||||
find . -path \*/ci/\*.txt \
|
||||
-o -path \*/ci/\*.toml \
|
||||
@@ -59,5 +56,3 @@ if [ -n "$MINIO_ARTIFACT_NAME" ]; then
|
||||
zstd artifacts/install.tar -o ${MINIO_ARTIFACT_NAME}
|
||||
ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ${MINIO_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${MINIO_ARTIFACT_NAME}
|
||||
fi
|
||||
|
||||
section_end prepare-artifacts
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo -e "\e[0Ksection_start:$(date +%s):shader-db-prepare[collapsed=true]\r\e[0KPreparing shader-db"
|
||||
ARTIFACTSDIR=$(pwd)/shader-db
|
||||
mkdir -p "$ARTIFACTSDIR"
|
||||
export DRM_SHIM_DEBUG=true
|
||||
@@ -9,31 +10,32 @@ LIBDIR=$(pwd)/install/lib
|
||||
export LD_LIBRARY_PATH=$LIBDIR
|
||||
|
||||
cd /usr/local/shader-db
|
||||
echo -e "\e[0Ksection_end:$(date +%s):shader-db-prepare\r\e[0K"
|
||||
|
||||
for driver in freedreno intel v3d vc4; do
|
||||
section_start shader-db-${driver} "Running shader-db for $driver"
|
||||
echo -e "\e[0Ksection_start:$(date +%s):shader-db-${driver}[collapsed=true]\r\e[0KRunning shader-db for $driver"
|
||||
env LD_PRELOAD="$LIBDIR/lib${driver}_noop_drm_shim.so" \
|
||||
./run -j"${FDO_CI_CONCURRENT:-4}" ./shaders \
|
||||
> "$ARTIFACTSDIR/${driver}-shader-db.txt"
|
||||
section_end shader-db-${driver}
|
||||
echo -e "\e[0Ksection_end:$(date +%s):shader-db-${driver}\r\e[0K"
|
||||
done
|
||||
|
||||
# Run shader-db over a number of supported chipsets for nouveau
|
||||
for chipset in 40 a3 c0 e4 f0 134 162; do
|
||||
section_start shader-db-nouveau-${chipset} "Running shader-db for nouveau - ${chipset}"
|
||||
echo -e "\e[0Ksection_start:$(date +%s):shader-db-nouveau-${chipset}[collapsed=true]\r\e[0KRunning shader-db for nouveau - ${chipset}"
|
||||
env LD_PRELOAD="$LIBDIR/libnouveau_noop_drm_shim.so" \
|
||||
NOUVEAU_CHIPSET=${chipset} \
|
||||
./run -j"${FDO_CI_CONCURRENT:-4}" ./shaders \
|
||||
> "$ARTIFACTSDIR/nouveau-${chipset}-shader-db.txt"
|
||||
section_end shader-db-nouveau-${chipset}
|
||||
echo -e "\e[0Ksection_end:$(date +%s):shader-db-nouveau-${chipset}\r\e[0K"
|
||||
done
|
||||
|
||||
# Run shader-db for r300 (RV370 and RV515)
|
||||
for chipset in 0x5460 0x7140; do
|
||||
section_start shader-db-r300-${chipset} "Running shader-db for r300 - ${chipset}"
|
||||
echo -e "\e[0Ksection_start:$(date +%s):shader-db-r300-${chipset}[collapsed=true]\r\e[0KRunning shader-db for r300 - ${chipset}"
|
||||
env LD_PRELOAD="$LIBDIR/libradeon_noop_drm_shim.so" \
|
||||
RADEON_GPU_ID=${chipset} \
|
||||
./run -j"${FDO_CI_CONCURRENT:-4}" -o r300 ./shaders \
|
||||
> "$ARTIFACTSDIR/r300-${chipset}-shader-db.txt"
|
||||
section_end shader-db-r300-${chipset}
|
||||
echo -e "\e[0Ksection_end:$(date +%s):shader-db-r300-${chipset}\r\e[0K"
|
||||
done
|
||||
|
@@ -1,100 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function x_off {
|
||||
if [[ "$-" == *"x"* ]]; then
|
||||
state_x=1
|
||||
set +x
|
||||
else
|
||||
state_x=0
|
||||
fi
|
||||
}
|
||||
|
||||
# TODO: implement x_on !
|
||||
|
||||
function error {
|
||||
x_off 2>/dev/null
|
||||
RED="\e[0;31m"
|
||||
ENDCOLOR="\e[0m"
|
||||
# we force the following to be not in a section
|
||||
section_end $CURRENT_SECTION
|
||||
|
||||
DATE_S=$(date -u +"%s")
|
||||
JOB_START_S=$(date -u +"%s" -d "${CI_JOB_STARTED_AT:?}")
|
||||
CURR_TIME=$((DATE_S-JOB_START_S))
|
||||
CURR_MINSEC="$(printf "%02d" $((CURR_TIME/60))):$(printf "%02d" $((CURR_TIME%60)))"
|
||||
echo -e "\n${RED}[${CURR_MINSEC}] ERROR: $*${ENDCOLOR}\n"
|
||||
[ "$state_x" -eq 0 ] || set -x
|
||||
}
|
||||
|
||||
function trap_err {
|
||||
error ${CURRENT_SECTION:-'unknown-section'}: ret code: $*
|
||||
}
|
||||
|
||||
function build_section_start {
|
||||
local section_params=$1
|
||||
shift
|
||||
local section_name=$1
|
||||
CURRENT_SECTION=$section_name
|
||||
shift
|
||||
CYAN="\e[0;36m"
|
||||
ENDCOLOR="\e[0m"
|
||||
|
||||
DATE_S=$(date -u +"%s")
|
||||
JOB_START_S=$(date -u +"%s" -d "${CI_JOB_STARTED_AT:?}")
|
||||
CURR_TIME=$((DATE_S-JOB_START_S))
|
||||
CURR_MINSEC="$(printf "%02d" $((CURR_TIME/60))):$(printf "%02d" $((CURR_TIME%60)))"
|
||||
echo -e "\n\e[0Ksection_start:$(date +%s):$section_name$section_params\r\e[0K${CYAN}[${CURR_MINSEC}] $*${ENDCOLOR}\n"
|
||||
}
|
||||
|
||||
function section_start {
|
||||
x_off 2>/dev/null
|
||||
build_section_start "[collapsed=true]" $*
|
||||
[ "$state_x" -eq 0 ] || set -x
|
||||
}
|
||||
|
||||
function build_section_end {
|
||||
echo -e "\e[0Ksection_end:$(date +%s):$1\r\e[0K"
|
||||
CURRENT_SECTION=""
|
||||
}
|
||||
|
||||
function section_end {
|
||||
x_off >/dev/null
|
||||
build_section_end $*
|
||||
[ "$state_x" -eq 0 ] || set -x
|
||||
}
|
||||
|
||||
function section_switch {
|
||||
x_off 2>/dev/null
|
||||
if [ -n "$CURRENT_SECTION" ]
|
||||
then
|
||||
build_section_end $CURRENT_SECTION
|
||||
fi
|
||||
build_section_start "[collapsed=true]" $*
|
||||
[ "$state_x" -eq 0 ] || set -x
|
||||
}
|
||||
|
||||
function uncollapsed_section_switch {
|
||||
x_off 2>/dev/null
|
||||
if [ -n "$CURRENT_SECTION" ]
|
||||
then
|
||||
build_section_end $CURRENT_SECTION
|
||||
fi
|
||||
build_section_start "" $*
|
||||
[ "$state_x" -eq 0 ] || set -x
|
||||
}
|
||||
|
||||
export -f x_off
|
||||
export -f error
|
||||
export -f trap_err
|
||||
export -f build_section_start
|
||||
export -f section_start
|
||||
export -f build_section_end
|
||||
export -f section_end
|
||||
export -f section_switch
|
||||
export -f uncollapsed_section_switch
|
||||
|
||||
# Freedesktop requirement (needed for Wayland)
|
||||
[ -n "${XDG_RUNTIME_DIR}" ] || export XDG_RUNTIME_DIR="$(mktemp -p "$PWD" -d xdg-runtime-XXXXXX)"
|
||||
|
||||
set -E
|
||||
trap 'trap_err $?' ERR
|
@@ -24,7 +24,7 @@
|
||||
.restricted-rules:
|
||||
rules:
|
||||
# If the triggerer has access to the restricted traces and if it is pre-merge
|
||||
- if: '($GITLAB_USER_LOGIN !~ "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu|okias|gallo|kwg|majanes|llanderwelin|zmike)$/") &&
|
||||
- if: '($GITLAB_USER_LOGIN !~ "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu|okias|gallo)$/") &&
|
||||
($GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH)'
|
||||
when: never
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
- src/drm-shim/**/*
|
||||
- src/gbm/**/*
|
||||
- src/gtest/**/*
|
||||
- src/hgl/**/*
|
||||
- src/include/**/*
|
||||
# Some src/util and src/compiler files use headers from mesa/ (e.g.
|
||||
# mtypes.h). We should clean that up.
|
||||
@@ -52,75 +53,6 @@
|
||||
- src/util/**/*
|
||||
when: on_success
|
||||
|
||||
# Same core dependencies for doing manual runs.
|
||||
.core-manual-rules:
|
||||
rules:
|
||||
# We only want manual jobs to show up when it's not marge's pre-merge CI
|
||||
# run, otherwise she'll wait until her timeout. The exception is
|
||||
# performance jobs, see below.
|
||||
- if: '($GITLAB_USER_LOGIN == "marge-bot" &&
|
||||
$CI_PIPELINE_SOURCE == "merge_request_event" &&
|
||||
$CI_JOB_NAME !~ "/performance$/")'
|
||||
when: never
|
||||
- !reference [.scheduled_pipeline-rules, rules]
|
||||
- changes:
|
||||
*core_file_list
|
||||
when: manual
|
||||
|
||||
# Rules for performance jobs tracking. We want perf jobs to run as code is
|
||||
# merged to main, but we don't want them to block marge. So, they need to have
|
||||
# only when: never or when: manual, and a separate script maintained by
|
||||
# Collabora triggers the manual job after merge to main. These "never" filters
|
||||
# need to come before any paths with "manual".
|
||||
.performance-rules:
|
||||
rules:
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
# Run only on pre-merge pipelines from Marge
|
||||
- if: $MESA_CI_PERFORMANCE_ENABLED == null
|
||||
when: never
|
||||
# Allow the merge to complete even before the job completes (since it won't
|
||||
# even start until the separate script triggers on it).
|
||||
allow_failure: true
|
||||
|
||||
.piglit-performance-base:
|
||||
extends:
|
||||
- .performance-rules
|
||||
variables:
|
||||
LAVA_JOB_PRIORITY: 40
|
||||
PIGLIT_REPLAY_SUBCOMMAND: "profile"
|
||||
PIGLIT_REPLAY_EXTRA_ARGS: "--db-path ${CI_PROJECT_DIR}/replayer-db/"
|
||||
# More than this can hit OOM due to BOs leaked during the replay of the last frame
|
||||
PIGLIT_REPLAY_LOOP_TIMES: 150
|
||||
# We don't want for more than one workload to be submitted to the GPU at a time
|
||||
FDO_CI_CONCURRENT: 1
|
||||
# Piglit is very sparse in its status output and downloads of big traces can take a while
|
||||
LAVA_DEVICE_HANGING_TIMEOUT_SEC: 600
|
||||
GIT_STRATEGY: none
|
||||
HWCI_FREQ_MAX: "true"
|
||||
# Always use the same device
|
||||
LAVA_TAGS: "cbg-0"
|
||||
# Ensure that we are using the release build artifact
|
||||
MINIO_ARTIFACT_NAME: mesa-${ARCH}-release
|
||||
# Reset dependencies in performance jobs to enforce the release build artifact
|
||||
dependencies: null
|
||||
# Don't run in parallel. It is okay to performance jobs to take a little
|
||||
# longer to finish, as they don't block marge from merging an MR.
|
||||
parallel: null
|
||||
|
||||
.piglit-performance:arm64:
|
||||
extends:
|
||||
- .piglit-performance-base
|
||||
needs:
|
||||
- debian/arm64_test
|
||||
- debian-arm64-release
|
||||
|
||||
.piglit-performance:amd64:
|
||||
extends:
|
||||
- .piglit-performance-base
|
||||
needs:
|
||||
- kernel+rootfs_amd64
|
||||
- debian-release
|
||||
|
||||
# Mesa source file dependencies that may impact any GL driver test job.
|
||||
.gl-rules:
|
||||
rules:
|
||||
@@ -154,16 +86,6 @@
|
||||
- src/gallium/winsys/*
|
||||
when: on_success
|
||||
|
||||
.gl-manual-rules:
|
||||
rules:
|
||||
- !reference [.core-manual-rules, rules]
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: manual
|
||||
|
||||
# Source file dependencies that may impact any Vulkan driver build or test
|
||||
.vulkan-rules:
|
||||
rules:
|
||||
@@ -172,13 +94,6 @@
|
||||
- src/vulkan/**/*
|
||||
when: on_success
|
||||
|
||||
.vulkan-manual-rules:
|
||||
rules:
|
||||
- !reference [.core-manual-rules, rules]
|
||||
- changes:
|
||||
*vulkan_file_list
|
||||
when: manual
|
||||
|
||||
.softpipe-rules:
|
||||
stage: software-renderer
|
||||
rules:
|
||||
@@ -209,14 +124,6 @@
|
||||
- src/gallium/winsys/sw/**/*
|
||||
when: on_success
|
||||
|
||||
.lavapipe-manual-rules:
|
||||
stage: software-renderer
|
||||
rules:
|
||||
- !reference [.vulkan-manual-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes: *lavapipe_file_list
|
||||
when: manual
|
||||
|
||||
.llvmpipe-cl-rules:
|
||||
stage: software-renderer
|
||||
rules:
|
||||
@@ -238,7 +145,6 @@
|
||||
*llvmpipe_file_list
|
||||
when: on_success
|
||||
|
||||
# TODO: remove together with Clover
|
||||
.llvmpipe-clover-rules:
|
||||
rules:
|
||||
- !reference [.llvmpipe-cl-rules, rules]
|
||||
@@ -272,6 +178,11 @@
|
||||
rules:
|
||||
- if: '$VALVE_FARM == "offline"'
|
||||
when: never
|
||||
# The Valve CI Farm uses allow lists for projects/users to prevent abuse,
|
||||
# so only enable automatic testing when running in the context of Mesa to
|
||||
# prevent failures in forks.
|
||||
- if: '$CI_PROJECT_NAMESPACE != "mesa"'
|
||||
when: never
|
||||
|
||||
.austriancoder-farm-rules:
|
||||
rules:
|
||||
@@ -300,14 +211,6 @@
|
||||
- src/freedreno/registers/**/*
|
||||
when: on_success
|
||||
|
||||
.freedreno-common-manual-rules:
|
||||
rules:
|
||||
- !reference [.freedreno-farm-rules, rules]
|
||||
- !reference [.core-manual-rules, rules]
|
||||
- changes:
|
||||
*freedreno_core_file_list
|
||||
when: manual
|
||||
|
||||
.freedreno-rules:
|
||||
stage: freedreno
|
||||
rules:
|
||||
@@ -319,33 +222,15 @@
|
||||
- src/gallium/winsys/freedreno/**/*
|
||||
when: on_success
|
||||
|
||||
.freedreno-manual-rules:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- !reference [.freedreno-common-manual-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*freedreno_gl_file_list
|
||||
when: manual
|
||||
|
||||
.turnip-rules:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- !reference [.freedreno-common-rules, rules]
|
||||
- !reference [.vulkan-rules, rules]
|
||||
- changes: &freedreno_vulkan_file_list
|
||||
- changes:
|
||||
- src/freedreno/vulkan/**/*
|
||||
when: on_success
|
||||
|
||||
.turnip-manual-rules:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- !reference [.freedreno-common-manual-rules, rules]
|
||||
- !reference [.vulkan-manual-rules, rules]
|
||||
- changes:
|
||||
*freedreno_vulkan_file_list
|
||||
when: manual
|
||||
|
||||
# For piglit and skqp test jobs that run both GL and VK tests.
|
||||
.freedreno-turnip-rules:
|
||||
rules:
|
||||
@@ -358,42 +243,49 @@
|
||||
- !reference [.restricted-rules, rules]
|
||||
- !reference [.freedreno-rules, rules]
|
||||
|
||||
# Rules for GL driver performance tracking. We want them to run as code is
|
||||
# merged to main, but we don't want them to block marge. So, they need to have
|
||||
# only when: never or when: manual, and a separate script maintained by
|
||||
# Collabora triggers the manual job after merge to main.
|
||||
.gl-rules-performance:
|
||||
rules:
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
# Run only on pre-merge pipelines from Marge
|
||||
- if: '$GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH'
|
||||
when: never
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: manual
|
||||
|
||||
# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
|
||||
# rules duplication manually
|
||||
.freedreno-rules-performance:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- !reference [.performance-rules, rules]
|
||||
- !reference [.freedreno-manual-rules, rules]
|
||||
allow_failure: true # see comment in .performance-rules, which we don't inherit this line from.
|
||||
variables:
|
||||
LAVA_JOB_PRIORITY: 40
|
||||
# Ensure that we are using the release build artifact
|
||||
MINIO_ARTIFACT_NAME: mesa-arm64-release
|
||||
needs:
|
||||
- debian/arm64_test
|
||||
- debian-arm64-release
|
||||
dependencies: null
|
||||
- !reference [.freedreno-farm-rules, rules]
|
||||
- !reference [.gl-rules-performance, rules]
|
||||
- changes:
|
||||
*freedreno_core_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*freedreno_gl_file_list
|
||||
when: manual
|
||||
|
||||
.nouveau-rules:
|
||||
stage: nouveau
|
||||
rules:
|
||||
- !reference [.anholt-farm-rules, rules]
|
||||
- !reference [.gl-rules, rules]
|
||||
- changes: &nouveau_file_list
|
||||
- changes:
|
||||
- src/nouveau/**/*
|
||||
- src/gallium/drivers/nouveau/**/*
|
||||
- src/gallium/winsys/kmsro/**/*
|
||||
- src/gallium/winsys/nouveau/**/*
|
||||
when: on_success
|
||||
|
||||
.nouveau-manual-rules:
|
||||
stage: nouveau
|
||||
rules:
|
||||
- !reference [.anholt-farm-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*nouveau_file_list
|
||||
when: manual
|
||||
|
||||
.panfrost-midgard-rules:
|
||||
stage: arm
|
||||
rules:
|
||||
@@ -414,19 +306,6 @@
|
||||
- src/panfrost/midgard/**/*
|
||||
when: on_success
|
||||
|
||||
.panfrost-midgard-manual-rules:
|
||||
stage: arm
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes: *panfrost_gallium_file_list
|
||||
when: manual
|
||||
- changes: *panfrost_common_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
- src/panfrost/midgard/**/*
|
||||
when: manual
|
||||
|
||||
.panfrost-bifrost-rules:
|
||||
stage: arm
|
||||
rules:
|
||||
@@ -442,32 +321,13 @@
|
||||
- changes: &panfrost_vulkan_file_list
|
||||
- src/panfrost/vulkan/*
|
||||
when: on_success
|
||||
- changes: &panfrost_bifrost_file_list
|
||||
- changes:
|
||||
- src/panfrost/compiler/**/*
|
||||
when: on_success
|
||||
|
||||
.panfrost-bifrost-manual-rules:
|
||||
stage: arm
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.vulkan-manual-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*panfrost_common_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*panfrost_gallium_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*panfrost_vulkan_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*panfrost_bifrost_file_list
|
||||
when: manual
|
||||
|
||||
.broadcom-common-rules:
|
||||
rules:
|
||||
- changes: &broadcom_file_list
|
||||
- changes:
|
||||
- src/broadcom/meson.build
|
||||
- src/broadcom/ci/**/*
|
||||
- src/broadcom/cle/**/*
|
||||
@@ -497,24 +357,12 @@
|
||||
- !reference [.igalia-farm-rules, rules]
|
||||
- !reference [.gl-rules, rules]
|
||||
- !reference [.broadcom-common-rules, rules]
|
||||
- changes: &v3d_file_list
|
||||
- changes:
|
||||
- src/gallium/drivers/v3d/**/*
|
||||
- src/gallium/winsys/kmsro/**/*
|
||||
- src/gallium/winsys/v3d/**/*
|
||||
when: on_success
|
||||
|
||||
.v3d-manual-rules:
|
||||
stage: broadcom
|
||||
rules:
|
||||
- !reference [.igalia-farm-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*broadcom_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*v3d_file_list
|
||||
when: manual
|
||||
|
||||
.v3dv-rules:
|
||||
stage: broadcom
|
||||
rules:
|
||||
@@ -557,13 +405,31 @@
|
||||
- !reference [.valve-farm-rules, rules]
|
||||
- !reference [.radv-rules, rules]
|
||||
|
||||
.radv-valve-manual-rules:
|
||||
stage: amd
|
||||
.virgl-rules:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
- !reference [.valve-farm-rules, rules]
|
||||
- !reference [.vulkan-manual-rules, rules]
|
||||
- !reference [.gl-rules, rules]
|
||||
- changes:
|
||||
*radv_file_list
|
||||
*llvmpipe_file_list
|
||||
when: on_success
|
||||
- changes: &virgl_file_list
|
||||
- src/gallium/drivers/virgl/**/*
|
||||
- src/gallium/winsys/virgl/**/*
|
||||
when: on_success
|
||||
|
||||
# Unfortunately we can't sed the on_success from another rules set, so we have
|
||||
# to do duplicate the files lists to set the job to manual (see
|
||||
# .gl-rules-performance)
|
||||
.virgl-iris-rules-performance:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.gl-rules-performance, rules]
|
||||
- changes:
|
||||
*llvmpipe_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*virgl_file_list
|
||||
when: manual
|
||||
|
||||
.venus-rules:
|
||||
@@ -620,38 +486,22 @@
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.gl-rules, rules]
|
||||
- changes: &i915g_file_list
|
||||
- changes:
|
||||
- src/gallium/drivers/i915/**/*
|
||||
- src/gallium/winsys/i915/**/*
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
|
||||
.i915g-manual-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*i915g_file_list
|
||||
when: manual
|
||||
|
||||
.crocus-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.gl-rules, rules]
|
||||
- changes: &crocus_file_list
|
||||
- changes:
|
||||
- src/gallium/drivers/crocus/**/*
|
||||
- src/gallium/winsys/crocus/**/*
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
|
||||
.crocus-manual-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*crocus_file_list
|
||||
when: manual
|
||||
|
||||
.iris-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
@@ -664,34 +514,17 @@
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
|
||||
.iris-manual-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*iris_file_list
|
||||
when: manual
|
||||
|
||||
# Unfortunately we can't sed the on_success from another rules set, so we have
|
||||
# to do duplicate the files lists to set the job to manual (see
|
||||
# .performance-rules)
|
||||
# .gl-rules-performance)
|
||||
.iris-rules-performance:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.performance-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- !reference [.gl-rules-performance, rules]
|
||||
- changes:
|
||||
*iris_file_list
|
||||
when: manual
|
||||
allow_failure: true # see comment in .performance-rules, which we don't inherit this line from.
|
||||
variables:
|
||||
LAVA_JOB_PRIORITY: 40
|
||||
MINIO_ARTIFACT_NAME: "mesa-amd64-release"
|
||||
needs:
|
||||
- kernel+rootfs_amd64
|
||||
- debian-release
|
||||
|
||||
.anv-rules:
|
||||
stage: intel
|
||||
@@ -703,33 +536,6 @@
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
|
||||
.anv-manual-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.vulkan-manual-rules, rules]
|
||||
- changes:
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
|
||||
.hasvk-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.anholt-farm-rules, rules]
|
||||
- !reference [.vulkan-rules, rules]
|
||||
- changes:
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
|
||||
.hasvk-manual-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.anholt-farm-rules, rules]
|
||||
- !reference [.vulkan-manual-rules, rules]
|
||||
- changes:
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
|
||||
.intel-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
@@ -743,50 +549,6 @@
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
|
||||
.virgl-rules:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
- !reference [.gl-rules, rules]
|
||||
- changes:
|
||||
*llvmpipe_file_list
|
||||
when: on_success
|
||||
- changes: &virgl_file_list
|
||||
- src/gallium/drivers/virgl/**/*
|
||||
- src/gallium/winsys/virgl/**/*
|
||||
when: on_success
|
||||
|
||||
.virgl-iris-manual-rules:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*virgl_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*iris_file_list
|
||||
when: manual
|
||||
|
||||
.virgl-iris-rules-performance:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.performance-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*llvmpipe_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*virgl_file_list
|
||||
when: manual
|
||||
allow_failure: true # see comment in .performance-rules, which we don't inherit this line from.
|
||||
variables:
|
||||
LAVA_JOB_PRIORITY: 40
|
||||
MINIO_ARTIFACT_NAME: "mesa-amd64-release"
|
||||
needs:
|
||||
- kernel+rootfs_amd64
|
||||
- debian-release
|
||||
|
||||
.zink-common-rules:
|
||||
rules:
|
||||
- !reference [.gl-rules, rules]
|
||||
@@ -794,13 +556,6 @@
|
||||
- src/gallium/drivers/zink/**/*
|
||||
when: on_success
|
||||
|
||||
.zink-common-manual-rules:
|
||||
rules:
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
- src/gallium/drivers/zink/**/*
|
||||
when: manual
|
||||
|
||||
.zink-lvp-rules:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
@@ -813,12 +568,6 @@
|
||||
- !reference [.anv-rules, rules]
|
||||
- !reference [.zink-common-rules, rules]
|
||||
|
||||
.zink-anv-manual-rules:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
- !reference [.anv-manual-rules, rules]
|
||||
- !reference [.zink-common-manual-rules, rules]
|
||||
|
||||
.zink-anv-rules-restricted:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
@@ -832,18 +581,6 @@
|
||||
- !reference [.turnip-rules, rules]
|
||||
- !reference [.zink-common-rules, rules]
|
||||
|
||||
.zink-turnip-manual-rules:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
- !reference [.turnip-manual-rules, rules]
|
||||
- !reference [.zink-common-manual-rules, rules]
|
||||
|
||||
.zink-radv-manual-rules:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
- !reference [.radv-valve-manual-rules, rules]
|
||||
- !reference [.zink-common-manual-rules, rules]
|
||||
|
||||
# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
|
||||
# rules duplication manually
|
||||
.windows-build-rules:
|
||||
@@ -889,6 +626,7 @@
|
||||
rules:
|
||||
- if: '$MICROSOFT_FARM == "offline"'
|
||||
when: never
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
- !reference [.core-rules, rules]
|
||||
- changes: &spirv2dxil_file_list
|
||||
- src/microsoft/ci/*
|
||||
@@ -913,7 +651,7 @@
|
||||
rules:
|
||||
- !reference [.austriancoder-farm-rules, rules]
|
||||
- !reference [.gl-rules, rules]
|
||||
- changes: &etnaviv_file_list
|
||||
- changes:
|
||||
- src/etnaviv/**/*
|
||||
- src/gallium/drivers/etnaviv/**/*
|
||||
- src/gallium/winsys/etnaviv/**/*
|
||||
@@ -922,14 +660,6 @@
|
||||
- src/gallium/winsys/etnaviv/**/*
|
||||
when: on_success
|
||||
|
||||
.etnaviv-manual-rules:
|
||||
stage: etnaviv
|
||||
rules:
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*etnaviv_file_list
|
||||
when: manual
|
||||
|
||||
# Rules for unusual architectures that only build a subset of drivers
|
||||
.ppc64el-rules:
|
||||
rules:
|
||||
@@ -975,15 +705,8 @@
|
||||
# Rules for linters
|
||||
.lint-rustfmt-rules:
|
||||
rules:
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
- !reference [.core-rules, rules]
|
||||
- changes:
|
||||
- src/**/*.rs
|
||||
when: on_success
|
||||
|
||||
.lint-clang-format-rules:
|
||||
rules:
|
||||
- !reference [.core-rules, rules]
|
||||
- changes:
|
||||
- src/**/asahi/**/*
|
||||
- src/**/panfrost/**/*
|
||||
when: on_success
|
||||
|
@@ -8,9 +8,9 @@
|
||||
# Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
|
||||
- rm -rf install
|
||||
- tar -xf artifacts/install.tar
|
||||
- section_start ldd_section "Checking ldd on driver build"
|
||||
- echo -e "\e[0Ksection_start:$(date +%s):ldd_section[collapsed=true]\r\e[0KChecking ldd on driver build"
|
||||
- LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \;
|
||||
- section_end ldd_section
|
||||
- echo -e "\e[0Ksection_end:$(date +%s):ldd_section\r\e[0K"
|
||||
artifacts:
|
||||
when: always
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
@@ -27,21 +27,7 @@ rustfmt:
|
||||
variables:
|
||||
GIT_STRATEGY: fetch
|
||||
script:
|
||||
- shopt -s globstar
|
||||
- rustfmt --check --verbose src/**/lib.rs
|
||||
|
||||
clang-format:
|
||||
# Cancel job if a newer commit is pushed to the same branch
|
||||
interruptible: true
|
||||
stage: lint
|
||||
extends:
|
||||
- .use-debian/x86_build
|
||||
- .lint-clang-format-rules
|
||||
variables:
|
||||
GIT_STRATEGY: fetch
|
||||
script:
|
||||
- shopt -s globstar
|
||||
- clang-format-13 --Werror --dry-run src/**/{asahi,panfrost}/**/*.{h,c,cpp}
|
||||
- git ls-files */{lib,app}.rs | xargs rustfmt --check
|
||||
|
||||
.test-gl:
|
||||
extends:
|
||||
@@ -66,26 +52,6 @@ clang-format:
|
||||
needs:
|
||||
- debian/x86_test-gl
|
||||
|
||||
.test-android:
|
||||
extends:
|
||||
- .test
|
||||
- .use-debian/x86_test-android
|
||||
variables:
|
||||
MINIO_ARTIFACT_NAME: mesa-x86_64-android
|
||||
needs:
|
||||
- job: debian-testing
|
||||
artifacts: true # On the host we want the Linux build
|
||||
- job: debian-android
|
||||
artifacts: false # The Android build will be downloaded later
|
||||
- job: debian/x86_test-android
|
||||
artifacts: false
|
||||
timeout: 20m
|
||||
script:
|
||||
- ./install/cuttlefish-runner.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- results/
|
||||
|
||||
.vkd3d-proton-test:
|
||||
artifacts:
|
||||
when: on_failure
|
||||
@@ -123,9 +89,9 @@ clang-format:
|
||||
variables:
|
||||
PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_bucket=mesa-tracie-public --jwt-file=${CI_JOB_JWT_FILE}
|
||||
script:
|
||||
- section_start variables "Variables passed through:"
|
||||
- echo -e "\e[0Ksection_start:$(date +%s):variables[collapsed=true]\r\e[0KVariables passed through:"
|
||||
- install/common/generate-env.sh
|
||||
- section_end variables
|
||||
- echo -e "\e[0Ksection_end:$(date +%s):variables\r\e[0K"
|
||||
- install/piglit/piglit-traces.sh
|
||||
|
||||
.deqp-test:
|
||||
@@ -163,11 +129,11 @@ clang-format:
|
||||
# instead of fd.o. Set FDO_HTTP_CACHE_URI to an http cache for your test lab to
|
||||
# improve it even more (see https://docs.mesa3d.org/ci/bare-metal.html for
|
||||
# setup).
|
||||
- section_start artifacts_download "Downloading artifacts from s3"
|
||||
- echo -e "\e[0Ksection_start:$(date +%s):artifacts_download[collapsed=true]\r\e[0KDownloading artifacts from minio"
|
||||
# Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
|
||||
- rm -rf install
|
||||
- (set -x; curl -L --retry 4 -f --retry-all-errors --retry-delay 60 ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${MINIO_ARTIFACT_NAME}.tar.zst | tar --zstd -x)
|
||||
- section_end artifacts_download
|
||||
- wget ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${MINIO_ARTIFACT_NAME}.tar.zst -S --progress=dot:giga -O- | tar --zstd -x
|
||||
- echo -e "\e[0Ksection_end:$(date +%s):artifacts_download\r\e[0K"
|
||||
artifacts:
|
||||
when: always
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
@@ -235,14 +201,14 @@ clang-format:
|
||||
# like FDO_DISTRIBUTION_TAG for *the* image, there is no way to
|
||||
# depend on more than one image per job. So, the job container is
|
||||
# built as part of the CI in the boot2container project.
|
||||
image: registry.freedesktop.org/mupuf/valve-infra/mesa-trigger:2023-02-27.1
|
||||
image: registry.freedesktop.org/mupuf/valve-infra/mesa-trigger:2022-12-08.1
|
||||
timeout: 1h 40m
|
||||
variables:
|
||||
# No need by default to pull the whole repo
|
||||
GIT_STRATEGY: none
|
||||
# boot2container initrd configuration parameters.
|
||||
B2C_KERNEL_URL: 'https://gitlab.freedesktop.org/mupuf/valve-infra/-/package_files/519/download' # Linux 6.1
|
||||
B2C_INITRAMFS_URL: 'https://gitlab.freedesktop.org/mupuf/boot2container/-/releases/v0.9.9/downloads/initramfs.linux_amd64.cpio.xz'
|
||||
B2C_INITRAMFS_URL: 'https://gitlab.freedesktop.org/mupuf/boot2container/-/releases/v0.9.8/downloads/initramfs.linux_amd64.cpio.xz'
|
||||
B2C_JOB_SUCCESS_REGEX: '\[.*\]: Execution is over, pipeline status: 0\r$'
|
||||
B2C_JOB_WARN_REGEX: '\*ERROR\* ring .* timeout, but soft recovered'
|
||||
B2C_LOG_LEVEL: 6
|
||||
@@ -253,7 +219,7 @@ clang-format:
|
||||
B2C_TIMEOUT_BOOT_RETRIES: 1
|
||||
B2C_TIMEOUT_FIRST_MINUTES: 5
|
||||
B2C_TIMEOUT_FIRST_RETRIES: 3
|
||||
B2C_TIMEOUT_MINUTES: 4
|
||||
B2C_TIMEOUT_MINUTES: 2
|
||||
B2C_TIMEOUT_OVERALL_MINUTES: 90
|
||||
B2C_TIMEOUT_RETRIES: 0
|
||||
|
||||
@@ -298,7 +264,7 @@ clang-format:
|
||||
[ -d "$CI_COMMON_SCRIPTS" ] || exit 1
|
||||
|
||||
|
||||
B2C_TEST_SCRIPT="bash -c 'tar xf ${INSTALL_TARBALL_NAME}; ./install/common/init-stage2.sh'"
|
||||
B2C_TEST_SCRIPT="bash -c 'source ./set-job-env-vars.sh; tar xf ${INSTALL_TARBALL_NAME}; ${B2C_TEST_SCRIPT}'"
|
||||
|
||||
# The Valve CI gateway receives jobs in a YAML format. Create a
|
||||
# job description from the CI environment.
|
||||
@@ -335,7 +301,6 @@ clang-format:
|
||||
# begins running on the remote DUT.
|
||||
set +x
|
||||
"$CI_COMMON_SCRIPTS"/generate-env.sh > ${JOB_FOLDER}/set-job-env-vars.sh
|
||||
echo "export SCRIPTS_DIR=./install" >> ${JOB_FOLDER}/set-job-env-vars.sh
|
||||
chmod +x ${JOB_FOLDER}/set-job-env-vars.sh
|
||||
echo "Variables passed through:"
|
||||
cat ${JOB_FOLDER}/set-job-env-vars.sh
|
||||
|
@@ -3,12 +3,9 @@ from unittest.mock import MagicMock, patch
|
||||
import pytest
|
||||
import yaml
|
||||
from freezegun import freeze_time
|
||||
from hypothesis import settings
|
||||
|
||||
from .lava.helpers import generate_testsuite_result, jobs_logs_response
|
||||
|
||||
settings.register_profile("ci", max_examples=1000, derandomize=True)
|
||||
settings.load_profile("ci")
|
||||
|
||||
def pytest_configure(config):
|
||||
config.addinivalue_line(
|
||||
|
@@ -1,41 +0,0 @@
|
||||
import re
|
||||
|
||||
import pytest
|
||||
from hypothesis import given
|
||||
from hypothesis import strategies as st
|
||||
from lava.utils.lava_farm import LAVA_FARM_RUNNER_PATTERNS, LavaFarm, get_lava_farm
|
||||
|
||||
|
||||
@given(
|
||||
runner_tag=st.text(
|
||||
alphabet=st.characters(
|
||||
min_codepoint=1, max_codepoint=127, blacklist_categories=("C",)
|
||||
),
|
||||
min_size=1,
|
||||
)
|
||||
)
|
||||
def test_get_lava_farm_invalid_tags(runner_tag):
|
||||
with pytest.MonkeyPatch().context() as mp:
|
||||
mp.setenv("RUNNER_TAG", runner_tag)
|
||||
assert get_lava_farm() == LavaFarm.UNKNOWN
|
||||
|
||||
|
||||
def test_get_lava_farm_no_tag(monkeypatch):
|
||||
monkeypatch.delenv("RUNNER_TAG", raising=False)
|
||||
assert get_lava_farm() == LavaFarm.UNKNOWN
|
||||
|
||||
|
||||
@given(
|
||||
st.fixed_dictionaries(
|
||||
{k: st.from_regex(v) for k, v in LAVA_FARM_RUNNER_PATTERNS.items()}
|
||||
)
|
||||
)
|
||||
def test_get_lava_farm_valid_tags(runner_farm_tag: dict):
|
||||
with pytest.MonkeyPatch().context() as mp:
|
||||
for farm, tag in runner_farm_tag.items():
|
||||
try:
|
||||
mp.setenv("RUNNER_TAG", tag)
|
||||
except ValueError:
|
||||
# hypothesis may generate null bytes in the string
|
||||
continue
|
||||
assert get_lava_farm() == farm
|
@@ -201,52 +201,6 @@ def test_fix_lava_gitlab_section_log(expected_message, messages):
|
||||
assert expected_message in fixed_messages
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"expected_message, messages",
|
||||
GITLAB_SECTION_SPLIT_SCENARIOS.values(),
|
||||
ids=GITLAB_SECTION_SPLIT_SCENARIOS.keys(),
|
||||
)
|
||||
def test_lava_gitlab_section_log_collabora(expected_message, messages, monkeypatch):
|
||||
"""Check if LogFollower does not change the message if we are running in Collabora farm."""
|
||||
monkeypatch.setenv("RUNNER_TAG", "mesa-ci-x86_64-lava-test")
|
||||
lf = LogFollower()
|
||||
for message in messages:
|
||||
lf.feed([create_lava_yaml_msg(msg=message)])
|
||||
new_messages = lf.flush()
|
||||
new_messages = tuple(new_messages) if len(new_messages) > 1 else new_messages[0]
|
||||
assert new_messages == expected_message
|
||||
|
||||
|
||||
CARRIAGE_RETURN_SCENARIOS = {
|
||||
"Carriage return at the end of the previous line": (
|
||||
(
|
||||
"\x1b[0Ksection_start:1677609903:test_setup[collapsed=true]\r\x1b[0K\x1b[0;36m[303:44] deqp: preparing test setup\x1b[0m",
|
||||
),
|
||||
(
|
||||
"\x1b[0Ksection_start:1677609903:test_setup[collapsed=true]\r",
|
||||
"\x1b[0K\x1b[0;36m[303:44] deqp: preparing test setup\x1b[0m\r\n",
|
||||
),
|
||||
),
|
||||
"Newline at the end of the line": (
|
||||
("\x1b[0K\x1b[0;36m[303:44] deqp: preparing test setup\x1b[0m", "log"),
|
||||
("\x1b[0K\x1b[0;36m[303:44] deqp: preparing test setup\x1b[0m\r\n", "log"),
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"expected_message, messages",
|
||||
CARRIAGE_RETURN_SCENARIOS.values(),
|
||||
ids=CARRIAGE_RETURN_SCENARIOS.keys(),
|
||||
)
|
||||
def test_lava_log_merge_carriage_return_lines(expected_message, messages):
|
||||
lf = LogFollower()
|
||||
for message in messages:
|
||||
lf.feed([create_lava_yaml_msg(msg=message)])
|
||||
new_messages = tuple(lf.flush())
|
||||
assert new_messages == expected_message
|
||||
|
||||
|
||||
WATCHDOG_SCENARIOS = {
|
||||
"1 second before timeout": ({"seconds": -1}, does_not_raise()),
|
||||
"1 second after timeout": ({"seconds": 1}, pytest.raises(MesaCITimeoutError)),
|
||||
|
@@ -9,14 +9,9 @@ $results = New-Item -ItemType Directory results
|
||||
$baseline = ".\_install\warp-fails.txt"
|
||||
$suite = ".\_install\deqp-dozen.toml"
|
||||
|
||||
$jobs = ""
|
||||
if ($null -ne $env:FDO_CI_CONCURRENT) {
|
||||
$jobs = "--jobs", "$($env:FDO_CI_CONCURRENT)"
|
||||
}
|
||||
|
||||
$env:DZN_DEBUG = "warp"
|
||||
$env:MESA_VK_IGNORE_CONFORMANCE_WARNING = "true"
|
||||
deqp-runner suite --suite $($suite) --output $($results) --baseline $($baseline) --testlog-to-xml C:\deqp\executor\testlog-to-xml.exe $jobs --fraction 3
|
||||
deqp-runner suite --suite $($suite) --output $($results) --baseline $($baseline) --testlog-to-xml C:\deqp\executor\testlog-to-xml.exe --jobs 4 --fraction 3
|
||||
$deqpstatus = $?
|
||||
|
||||
$template = "See https://$($env:CI_PROJECT_ROOT_NAMESPACE).pages.freedesktop.org/-/$($env:CI_PROJECT_NAME)/-/jobs/$($env:CI_JOB_ID)/artifacts/results/{{testcase}}.xml"
|
||||
|
@@ -36,7 +36,7 @@ $depsInstallPath="C:\mesa-deps"
|
||||
|
||||
Push-Location $builddir
|
||||
|
||||
meson setup `
|
||||
meson `
|
||||
--default-library=shared `
|
||||
--buildtype=release `
|
||||
--wrap-mode=nodownload `
|
||||
@@ -49,7 +49,7 @@ meson setup `
|
||||
-Dshared-llvm=disabled `
|
||||
-Dvulkan-drivers="swrast,amd,microsoft-experimental" `
|
||||
-Dgallium-drivers="swrast,d3d12,zink" `
|
||||
-Dgallium-va=enabled `
|
||||
-Dgallium-va=true `
|
||||
-Dvideo-codecs="h264dec,h264enc,h265dec,h265enc,vc1dec" `
|
||||
-Dshared-glapi=enabled `
|
||||
-Dgles1=enabled `
|
||||
|
@@ -12,7 +12,7 @@ $depsInstallPath="C:\mesa-deps"
|
||||
|
||||
Get-Date
|
||||
Write-Host "Cloning DirectX-Headers"
|
||||
git clone -b v1.710.0-preview --depth=1 https://github.com/microsoft/DirectX-Headers deps/DirectX-Headers
|
||||
git clone -b v1.606.4 --depth=1 https://github.com/microsoft/DirectX-Headers deps/DirectX-Headers
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone DirectX-Headers repository"
|
||||
Exit 1
|
||||
@@ -84,20 +84,26 @@ if (!$buildstatus) {
|
||||
}
|
||||
|
||||
Get-Date
|
||||
Write-Host "Cloning LLVM release/15.x"
|
||||
git clone -b release/15.x --depth=1 https://github.com/llvm/llvm-project deps/llvm-project
|
||||
Write-Host "Cloning LLVM release/12.x"
|
||||
git clone -b release/12.x --depth=1 https://github.com/llvm/llvm-project deps/llvm-project
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone LLVM repository"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
# ideally we want to use a tag here insted of a sha,
|
||||
# but as of today, SPIRV-LLVM-Translator doesn't have
|
||||
# a tag matching LLVM 12.0.0
|
||||
Get-Date
|
||||
Write-Host "Cloning SPIRV-LLVM-Translator"
|
||||
git clone -b llvm_release_150 https://github.com/KhronosGroup/SPIRV-LLVM-Translator deps/llvm-project/llvm/projects/SPIRV-LLVM-Translator
|
||||
git clone https://github.com/KhronosGroup/SPIRV-LLVM-Translator deps/llvm-project/llvm/projects/SPIRV-LLVM-Translator
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone SPIRV-LLVM-Translator repository"
|
||||
Exit 1
|
||||
}
|
||||
Push-Location deps/llvm-project/llvm/projects/SPIRV-LLVM-Translator
|
||||
git checkout 5b641633b3bcc3251a52260eee11db13a79d7258
|
||||
Pop-Location
|
||||
|
||||
Get-Date
|
||||
# slightly convoluted syntax but avoids the CWD being under the PS filesystem meta-path
|
||||
|
@@ -132,7 +132,7 @@ cargo install --git https://gitlab.freedesktop.org/anholt/deqp-runner.git
|
||||
|
||||
Get-Date
|
||||
Write-Host "Downloading DirectX 12 Agility SDK"
|
||||
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D3D12/1.710.0-preview -OutFile 'agility.zip'
|
||||
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D3D12/1.706.3-preview -OutFile 'agility.zip'
|
||||
Expand-Archive -Path 'agility.zip' -DestinationPath 'C:\agility'
|
||||
Remove-Item 'agility.zip'
|
||||
|
||||
@@ -148,7 +148,7 @@ Remove-Item -Recurse 'C:\agility'
|
||||
|
||||
Get-Date
|
||||
Write-Host "Downloading Updated WARP"
|
||||
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.WARP/1.0.5 -OutFile 'warp.zip'
|
||||
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.WARP/1.0.2 -OutFile 'warp.zip'
|
||||
Expand-Archive -Path 'warp.zip' -DestinationPath 'C:\warp'
|
||||
Remove-Item 'warp.zip'
|
||||
|
||||
|
@@ -4,16 +4,10 @@ Copy-Item -Path _install\bin\opengl32.dll -Destination C:\Piglit\bin\opengl32.dl
|
||||
Copy-Item -Path _install\bin\libgallium_wgl.dll -Destination C:\Piglit\bin\libgallium_wgl.dll
|
||||
Copy-Item -Path _install\bin\libglapi.dll -Destination C:\Piglit\bin\libglapi.dll
|
||||
|
||||
$jobs = ""
|
||||
if ($null -ne $env:FDO_CI_CONCURRENT) {
|
||||
$jobs = "--jobs", "$($env:FDO_CI_CONCURRENT)"
|
||||
}
|
||||
|
||||
deqp-runner suite --output .\logs --suite "_install/$env:PIGLIT_SUITE" `
|
||||
--skips "_install/$env:PIGLIT_SKIPS" `
|
||||
--baseline "_install/$env:PIGLIT_BASELINE" `
|
||||
--flakes "_install/$env:PIGLIT_FLAKES" `
|
||||
$jobs
|
||||
--flakes "_install/$env:PIGLIT_FLAKES"
|
||||
if (!$?) {
|
||||
Exit 1
|
||||
}
|
||||
|
@@ -1,19 +0,0 @@
|
||||
# These tests all read from the front buffer after a swap. Given that we
|
||||
# run piglit tests in parallel in Mesa CI, and don't have a compositor
|
||||
# running, the frontbuffer reads may end up with undefined results from
|
||||
# windows overlapping us.
|
||||
#
|
||||
# Piglit does mark these tests as not to be run in parallel, but deqp-runner
|
||||
# doesn't respect that. We need to extend deqp-runner to allow some tests to be
|
||||
# marked as single-threaded and run after the rayon loop if we want to support
|
||||
# them.
|
||||
#
|
||||
# Other front-buffer access tests like fbo-sys-blit, fbo-sys-sub-blit, or
|
||||
# fcc-front-buffer-distraction don't appear here, because the DRI3 fake-front
|
||||
# handling should be holding the pixels drawn by the test even if we happen to fail
|
||||
# GL's window system pixel occlusion test.
|
||||
#
|
||||
# Note that glx skips don't appear here, they're in all-skips.txt (in case someone
|
||||
# sets PIGLIT_PLATFORM=gbm to mostly use gbm, but still has an X server running).
|
||||
spec@!opengl 1.0@gl-1.0-swapbuffers-behavior
|
||||
spec@!opengl 1.1@read-front
|
29
.mailmap
29
.mailmap
@@ -41,9 +41,9 @@ Alex Deucher <alexdeucher@gmail.com> <alex@botch2.(none)>
|
||||
Alex Deucher <alexdeucher@gmail.com> <alex@cube.(none)>
|
||||
Alex Deucher <alexdeucher@gmail.com> <alex@samba.(none)>
|
||||
|
||||
Alyssa Rosenzweig <alyssa@rosenzweig.io> <alyssa.rosenzweig@collabora.com>
|
||||
Alyssa Rosenzweig <alyssa@rosenzweig.io> <a@rosenzweig.io>
|
||||
Alyssa Rosenzweig <alyssa@rosenzweig.io> <alyssa@collabora.com>
|
||||
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> <alyssa@rosenzweig.io>
|
||||
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> <a@rosenzweig.io>
|
||||
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> <alyssa@collabora.com>
|
||||
|
||||
Andreas Fänger <a.faenger@e-sign.com> <a.faenger@e-sign.com>
|
||||
|
||||
@@ -68,7 +68,6 @@ Arthur Huillet <arthur.huillet@free.fr> Arthur HUILLET <arthur.huillet@free.fr>
|
||||
Axel Davy <davyaxel0@gmail.com> <axel.davy@ens.fr>
|
||||
|
||||
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> <basni@chromium.org>
|
||||
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> <basni@google.com>
|
||||
|
||||
Benjamin Franzke <benjaminfranzke@googlemail.com> ben <benjaminfranzke@googlemail.com>
|
||||
|
||||
@@ -115,14 +114,12 @@ Carl-Philip Hänsch <cphaensch@googlemail.com> <s3734770@mail.zih.tu-dresden.de>
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com> <carli@carli-laptop.(none)>
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com> <Carl-Philip.Haensch@mailbox.tu-dresden.de>
|
||||
|
||||
Lina Versace <lina@kiwitree.net> <chad@kiwitree.net>
|
||||
Lina Versace <lina@kiwitree.net> <chad@chad-versace.us>
|
||||
Lina Versace <lina@kiwitree.net> <Chad Versace chad@chad-versace.us>
|
||||
Lina Versace <lina@kiwitree.net> <chad.versace@intel.com>
|
||||
Lina Versace <lina@kiwitree.net> <chad.versace@linux.intel.com>
|
||||
Lina Versace <lina@kiwitree.net> <chadversary@google.com>
|
||||
Lina Versace <lina@kiwitree.net> <chadversary@chromium.org>
|
||||
Lina Versace <lina@kiwitree.net> <linyaa@google.com>
|
||||
Chad Versace <chadversary@chromium.org> <chad@kiwitree.net>
|
||||
Chad Versace <chadversary@chromium.org> <chad@chad-versace.us>
|
||||
Chad Versace <chadversary@chromium.org> <Chad Versace chad@chad-versace.us>
|
||||
Chad Versace <chadversary@chromium.org> <chad.versace@intel.com>
|
||||
Chad Versace <chadversary@chromium.org> <chad.versace@linux.intel.com>
|
||||
Chad Versace <chadversary@chromium.org> <chadversary@google.com>
|
||||
|
||||
Chandu Babu Namburu <chandu@amd.com>
|
||||
Chandu Babu Namburu <chandu@amd.com> <mailto:chandu@amd.com>
|
||||
@@ -301,10 +298,8 @@ Jan Vesely <jano.vesely@gmail.com> Jan Vesely <jan.vesely@rutgers.edu>
|
||||
|
||||
Jan Zielinski <jan.zielinski@intel.com> jzielins <jan.zielinski@intel.com>
|
||||
|
||||
Faith Ekstrand <faith.ekstrand@collabora.com> <jason@jlekstrand.net>
|
||||
Faith Ekstrand <faith.ekstrand@collabora.com> <jason.ekstrand@intel.com>
|
||||
Faith Ekstrand <faith.ekstrand@collabora.com> <jason.ekstrand@collabora.com>
|
||||
Faith Ekstrand <faith.ekstrand@collabora.com> <faith@gfxstrand.net>
|
||||
Jason Ekstrand <jason.ekstrand@collabora.com> <jason@jlekstrand.net>
|
||||
Jason Ekstrand <jason.ekstrand@collabora.com> <jason.ekstrand@intel.com>
|
||||
|
||||
Jeremy Huddleston <jeremyhu@apple.com>
|
||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremyhu@freedesktop.org>
|
||||
@@ -653,8 +648,6 @@ Török Edwin <edwin+mesa@etorok.net> <edwintorok@gmail.com>
|
||||
Vadym Shovkoplias <vadym.shovkoplias@globallogic.com>
|
||||
Vadym Shovkoplias <vadym.shovkoplias@globallogic.com> <vadim.shovkoplias@gmail.com>
|
||||
|
||||
Val Packett <val@packett.cool> <greg@unrelenting.technology>
|
||||
|
||||
Varad Gautam <varad.gautam@collabora.com> <varadgautam@gmail.com>
|
||||
|
||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@freedesktop.org>
|
||||
|
85985
.pick_status.json
85985
.pick_status.json
File diff suppressed because it is too large
Load Diff
19
CODEOWNERS
19
CODEOWNERS
@@ -40,11 +40,11 @@ meson.build @dbaker @eric
|
||||
##########
|
||||
|
||||
# NIR
|
||||
/src/compiler/nir/ @gfxstrand
|
||||
/src/compiler/nir/ @jekstrand
|
||||
|
||||
# Vulkan
|
||||
/src/vulkan/ @eric @gfxstrand
|
||||
/include/vulkan/ @eric @gfxstrand
|
||||
/src/vulkan/ @eric @jekstrand
|
||||
/include/vulkan/ @eric @jekstrand
|
||||
|
||||
|
||||
#############
|
||||
@@ -79,9 +79,12 @@ meson.build @dbaker @eric
|
||||
/src/glx/*glvnd* @kbrenneman
|
||||
|
||||
# Haiku
|
||||
/include/HaikuGL/ @kallisti5
|
||||
/src/egl/drivers/haiku/ @kallisti5
|
||||
/src/gallium/frontends/hgl/ @kallisti5
|
||||
/src/gallium/targets/haiku-softpipe/ @kallisti5
|
||||
/src/gallium/winsys/sw/hgl/ @kallisti5
|
||||
/src/hgl/ @kallisti5
|
||||
|
||||
# Loader - DRI/classic
|
||||
/src/loader/ @xexaxo
|
||||
@@ -125,11 +128,11 @@ meson.build @dbaker @eric
|
||||
/src/imagination/rogue/ @simon-perretta-img
|
||||
|
||||
# Intel
|
||||
/include/drm-uapi/i915_drm.h @kwg @llandwerlin @gfxstrand @idr
|
||||
/include/pci_ids/i*_pci_ids.h @kwg @llandwerlin @gfxstrand @idr
|
||||
/src/intel/ @kwg @llandwerlin @gfxstrand @idr
|
||||
/src/gallium/winsys/iris/ @kwg @llandwerlin @gfxstrand @idr
|
||||
/src/gallium/drivers/iris/ @kwg @llandwerlin @gfxstrand @idr
|
||||
/include/drm-uapi/i915_drm.h @kwg @llandwerlin @jekstrand @idr
|
||||
/include/pci_ids/i*_pci_ids.h @kwg @llandwerlin @jekstrand @idr
|
||||
/src/intel/ @kwg @llandwerlin @jekstrand @idr
|
||||
/src/gallium/winsys/iris/ @kwg @llandwerlin @jekstrand @idr
|
||||
/src/gallium/drivers/iris/ @kwg @llandwerlin @jekstrand @idr
|
||||
/src/gallium/drivers/i915/ @anholt
|
||||
|
||||
# Microsoft
|
||||
|
@@ -61,12 +61,9 @@ LOCAL_SHARED_LIBRARIES += libdrm_intel
|
||||
MESON_GEN_PKGCONFIGS += libdrm_intel:$(LIBDRM_VERSION)
|
||||
endif
|
||||
|
||||
ifneq ($(filter radeonsi,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
|
||||
ifneq ($(filter radeonsi amd,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),)
|
||||
MESON_GEN_LLVM_STUB := true
|
||||
LOCAL_CFLAGS += -DFORCE_BUILD_AMDGPU # instructs LLVM to declare LLVMInitializeAMDGPU* functions
|
||||
endif
|
||||
|
||||
ifneq ($(filter radeonsi amd,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),)
|
||||
LOCAL_SHARED_LIBRARIES += libdrm_amdgpu
|
||||
MESON_GEN_PKGCONFIGS += libdrm_amdgpu:$(LIBDRM_VERSION)
|
||||
endif
|
||||
@@ -161,7 +158,6 @@ include $(BUILD_PREBUILT)
|
||||
endif
|
||||
endef
|
||||
|
||||
ifneq ($(strip $(BOARD_MESA3D_GALLIUM_DRIVERS)),)
|
||||
# Module 'libgallium_dri', produces '/vendor/lib{64}/dri/libgallium_dri.so'
|
||||
# This module also trigger DRI symlinks creation process
|
||||
$(eval $(call mesa3d-lib,libgallium_dri,.so.0,dri,MESA3D_GALLIUM_DRI_BIN))
|
||||
@@ -174,7 +170,6 @@ $(eval $(call mesa3d-lib,libEGL_mesa,.so.1,egl,MESA3D_LIBEGL_BIN))
|
||||
$(eval $(call mesa3d-lib,libGLESv1_CM_mesa,.so.1,egl,MESA3D_LIBGLESV1_BIN))
|
||||
# Module 'libGLESv2_mesa', produces '/vendor/lib{64}/egl/libGLESv2_mesa.so'
|
||||
$(eval $(call mesa3d-lib,libGLESv2_mesa,.so.2,egl,MESA3D_LIBGLESV2_BIN))
|
||||
endif
|
||||
|
||||
# Modules 'vulkan.{driver_name}', produces '/vendor/lib{64}/hw/vulkan.{driver_name}.so' HAL
|
||||
$(foreach driver,$(BOARD_MESA3D_VULKAN_DRIVERS), \
|
||||
|
@@ -88,8 +88,7 @@ MESON_GEN_NINJA := \
|
||||
-Dgallium-drivers=$(subst $(space),$(comma),$(BOARD_MESA3D_GALLIUM_DRIVERS)) \
|
||||
-Dvulkan-drivers=$(subst $(space),$(comma),$(subst radeon,amd,$(BOARD_MESA3D_VULKAN_DRIVERS))) \
|
||||
-Dgbm=enabled \
|
||||
-Degl=$(if $(BOARD_MESA3D_GALLIUM_DRIVERS),enabled,disabled) \
|
||||
-Dllvm=$(if $(MESON_GEN_LLVM_STUB),enabled,disabled) \
|
||||
-Degl=enabled \
|
||||
-Dcpp_rtti=false \
|
||||
-Dlmsensors=disabled \
|
||||
|
||||
@@ -289,7 +288,7 @@ $(MESON_OUT_DIR)/install/.install.timestamp: $(MESON_OUT_DIR)/.build.timestamp
|
||||
rm -rf $(dir $@)
|
||||
mkdir -p $(dir $@)
|
||||
DESTDIR=$(call relative-to-absolute,$(dir $@)) $(MESON_BUILD) install
|
||||
$(if $(BOARD_MESA3D_GALLIUM_DRIVERS),$(MESON_COPY_LIBGALLIUM))
|
||||
$(MESON_COPY_LIBGALLIUM)
|
||||
touch $@
|
||||
|
||||
$($(M_TARGET_PREFIX)MESA3D_LIBGBM_BIN) $(MESA3D_GLES_BINS): $(MESON_OUT_DIR)/install/.install.timestamp
|
||||
|
2
bin/ci/.gitignore
vendored
2
bin/ci/.gitignore
vendored
@@ -1,2 +1,2 @@
|
||||
schema.graphql
|
||||
gitlab_gql.py.cache*
|
||||
gitlab_gql.py.cache.db
|
||||
|
@@ -195,7 +195,7 @@ def cancel_job(project, job) -> None:
|
||||
"""Cancel GitLab job"""
|
||||
pjob = project.jobs.get(job.id, lazy=True)
|
||||
pjob.cancel()
|
||||
print(f"♲ {job.name}", end=" ")
|
||||
print(f"♲ {job.name}")
|
||||
|
||||
|
||||
def cancel_jobs(project, to_cancel) -> None:
|
||||
@@ -206,7 +206,6 @@ def cancel_jobs(project, to_cancel) -> None:
|
||||
with ThreadPoolExecutor(max_workers=6) as exe:
|
||||
part = partial(cancel_job, project)
|
||||
exe.map(part, to_cancel)
|
||||
print()
|
||||
|
||||
|
||||
def print_log(project, job_id) -> None:
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user