Compare commits
211 Commits
mesa-21.2.
...
mesa-20.0.
Author | SHA1 | Date | |
---|---|---|---|
|
fa6e67066b | ||
|
7a1423d41a | ||
|
c15220de7e | ||
|
5d57fe5cb7 | ||
|
e5e0fdf50f | ||
|
98cd8c666d | ||
|
44e9b6ab62 | ||
|
8bc42bf9db | ||
|
5d2f7e96ad | ||
|
753c61f76d | ||
|
f0ac5321f8 | ||
|
a3eb254cfc | ||
|
336c187087 | ||
|
aa3fe28d05 | ||
|
34ca8f82af | ||
|
370247f220 | ||
|
9a9413a7c5 | ||
|
3cfca286af | ||
|
872de20b21 | ||
|
86a6711451 | ||
|
93b59199db | ||
|
35dbf55ada | ||
|
e2db4624b7 | ||
|
f2b5a72f4a | ||
|
97f4d6bdf0 | ||
|
5f896ad529 | ||
|
a8fa654cbe | ||
|
b35d45f21a | ||
|
1b2c982166 | ||
|
92242753b0 | ||
|
ffbafd9c8b | ||
|
b1b35d1033 | ||
|
b26ac839aa | ||
|
155a550c60 | ||
|
7daa262486 | ||
|
4fa692872b | ||
|
6b0033dc30 | ||
|
868286d10b | ||
|
5de89fe2ff | ||
|
c53788cd41 | ||
|
0f437dd261 | ||
|
1e3edbfbd3 | ||
|
558746603b | ||
|
5f4fd166fd | ||
|
33c6933ef4 | ||
|
f8f4c317fb | ||
|
f64c5d0cf6 | ||
|
a1041546ec | ||
|
18508b37cb | ||
|
acc1dfdc02 | ||
|
955226028d | ||
|
45e14cbdc7 | ||
|
a9ee554df3 | ||
|
3710f7c6a1 | ||
|
b6bb359b64 | ||
|
4960149a1f | ||
|
4392cf2d6d | ||
|
53b2b224dc | ||
|
bc67340ea5 | ||
|
1defcf02b4 | ||
|
3d203789a9 | ||
|
5620cd4bca | ||
|
fe1ba4a041 | ||
|
d808374674 | ||
|
e7b8a304bd | ||
|
dd4df57ad9 | ||
|
131136ab99 | ||
|
54574288a1 | ||
|
eb4a39ba2f | ||
|
d0a1bc1c21 | ||
|
6f9a26ac25 | ||
|
8334c60cba | ||
|
a14b7adabd | ||
|
9fc39b9c67 | ||
|
710388f006 | ||
|
c2f6f63f7b | ||
|
69edb32eaa | ||
|
f1ec137ec9 | ||
|
981b2b6241 | ||
|
eb0f6e3ab8 | ||
|
bb589b48eb | ||
|
3aafc6ab8f | ||
|
0942c41582 | ||
|
8a9f1293b8 | ||
|
5f0ae1f0b4 | ||
|
0d189290f0 | ||
|
c38d7f390d | ||
|
9f45639452 | ||
|
47bfaa8795 | ||
|
956a9c7d2a | ||
|
20e6bcea31 | ||
|
16615264b2 | ||
|
555bf5f991 | ||
|
c2dac5a508 | ||
|
01929a5d90 | ||
|
b5b626396e | ||
|
9243bbc9f9 | ||
|
5d48c29658 | ||
|
d7f95b226b | ||
|
23043719f7 | ||
|
4fbaecd768 | ||
|
91de922c7f | ||
|
410dad2eb4 | ||
|
4d3f535ebb | ||
|
5a7ae6be76 | ||
|
5adcb0a62a | ||
|
01020aef25 | ||
|
d43407e622 | ||
|
760b8cfd1c | ||
|
5376a79962 | ||
|
d499e9b4e2 | ||
|
387ee33305 | ||
|
cdc4ea1496 | ||
|
0d9f4578d6 | ||
|
16c364aaf0 | ||
|
9abde3412d | ||
|
dfdfddc4bb | ||
|
604fa0dcad | ||
|
555cb9e7d2 | ||
|
a06fc57fda | ||
|
f27e5d9df5 | ||
|
52714f58ff | ||
|
01dab4b7fe | ||
|
3b65640ea5 | ||
|
e6d598b69f | ||
|
5188cd51e2 | ||
|
96052fdc24 | ||
|
fa5b4bb2df | ||
|
5df7a39c1b | ||
|
d92cf57345 | ||
|
5547fc53c0 | ||
|
99d3ad1c71 | ||
|
0dce180b43 | ||
|
1a35b3d286 | ||
|
ed90606831 | ||
|
ea43cc6702 | ||
|
edcc8ba73a | ||
|
6aacd69a02 | ||
|
1c0b76a382 | ||
|
a429930e0a | ||
|
5c0a93b6eb | ||
|
0e0abec7b6 | ||
|
6bbbef9699 | ||
|
fa0dcef2ef | ||
|
4558bdb95a | ||
|
75ea9c808d | ||
|
e5f13bca20 | ||
|
f93c8d8598 | ||
|
c4e1dd07eb | ||
|
f86e27156d | ||
|
9724b0f32c | ||
|
a3bd400c14 | ||
|
32dc7fff47 | ||
|
027f9c887c | ||
|
f3f4751851 | ||
|
a25c7674aa | ||
|
1d17f42732 | ||
|
e393404ff1 | ||
|
1f8db81632 | ||
|
8f29aaa2cf | ||
|
1e0cc313ba | ||
|
d96f0faacf | ||
|
203710e94c | ||
|
d189ab9fcc | ||
|
bd934ff613 | ||
|
51f7d81dd2 | ||
|
06a9d51f27 | ||
|
419c992e65 | ||
|
440e52ca03 | ||
|
8dede1745c | ||
|
222b47c6c5 | ||
|
ccf70209d2 | ||
|
7538851a22 | ||
|
c937b84643 | ||
|
b8b9233d5a | ||
|
e163a39994 | ||
|
ce7f021269 | ||
|
26adf4b532 | ||
|
27e39daa4b | ||
|
69604c6fd4 | ||
|
450657e26c | ||
|
ecf9055e9c | ||
|
66bb55cc68 | ||
|
958f06b99f | ||
|
7bc056dd78 | ||
|
b5a345595a | ||
|
0cac8f332a | ||
|
e87c0c17b2 | ||
|
e6fbf8d9d3 | ||
|
208fb2edfa | ||
|
623126e741 | ||
|
4b43bee72f | ||
|
e33167af79 | ||
|
f60209b935 | ||
|
0aff56bd7a | ||
|
0bacf9963b | ||
|
fc7ff68df7 | ||
|
4be5ef5caa | ||
|
1a57247da8 | ||
|
deeba167fd | ||
|
c9cf6b5f60 | ||
|
46c7314770 | ||
|
f1c8089f97 | ||
|
5d9a1303ba | ||
|
8585ae7c03 | ||
|
6c705ea125 | ||
|
ea7ab69455 | ||
|
6c0b18c5d1 | ||
|
102aa6d549 | ||
|
b611a616c3 | ||
|
21f5d79c7b |
66
.appveyor/appveyor_msvc.bat
Normal file
66
.appveyor/appveyor_msvc.bat
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
goto %1
|
||||||
|
|
||||||
|
:install
|
||||||
|
rem Check pip
|
||||||
|
if "%buildsystem%" == "scons" (
|
||||||
|
python --version
|
||||||
|
python -m pip --version
|
||||||
|
rem Install Mako
|
||||||
|
python -m pip install Mako==1.0.7
|
||||||
|
rem Install pywin32 extensions, needed by SCons
|
||||||
|
python -m pip install pypiwin32
|
||||||
|
rem Install python wheels, necessary to install SCons via pip
|
||||||
|
python -m pip install wheel
|
||||||
|
rem Install SCons
|
||||||
|
python -m pip install scons==3.0.1
|
||||||
|
call scons --version
|
||||||
|
) else (
|
||||||
|
python --version
|
||||||
|
python -m pip install Mako meson
|
||||||
|
meson --version
|
||||||
|
|
||||||
|
rem Install pkg-config, which meson requires even on windows
|
||||||
|
cinst -y pkgconfiglite
|
||||||
|
)
|
||||||
|
|
||||||
|
rem Install flex/bison
|
||||||
|
set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip
|
||||||
|
if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%"
|
||||||
|
7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
|
||||||
|
set Path=%CD%\winflexbison;%Path%
|
||||||
|
win_flex --version
|
||||||
|
win_bison --version
|
||||||
|
rem Download and extract LLVM
|
||||||
|
if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
|
||||||
|
7z x -y "%LLVM_ARCHIVE%" > nul
|
||||||
|
if "%buildsystem%" == "scons" (
|
||||||
|
mkdir llvm\bin
|
||||||
|
set LLVM=%CD%\llvm
|
||||||
|
) else (
|
||||||
|
move llvm subprojects\
|
||||||
|
copy .appveyor\llvm-wrap.meson subprojects\llvm\meson.build
|
||||||
|
)
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:build_script
|
||||||
|
if "%buildsystem%" == "scons" (
|
||||||
|
call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1
|
||||||
|
) else (
|
||||||
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" -arch=x86
|
||||||
|
rem We use default-library as static to affect any wraps (such as expat and zlib)
|
||||||
|
rem it would be better if we could set subprojects buildtype independently,
|
||||||
|
rem but I haven't written that patch yet :)
|
||||||
|
call meson builddir --backend=vs2017 --default-library=static -Dbuild-tests=true -Db_vscrt=mtd --buildtype=release -Dllvm=true -Dgallium-drivers=swrast -Dosmesa=gallium
|
||||||
|
pushd builddir
|
||||||
|
call msbuild mesa.sln /m
|
||||||
|
popd
|
||||||
|
)
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:test_script
|
||||||
|
if "%buildsystem%" == "scons" (
|
||||||
|
call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check
|
||||||
|
) else (
|
||||||
|
call meson test -C builddir
|
||||||
|
)
|
||||||
|
goto :eof
|
36
.appveyor/llvm-wrap.meson
Normal file
36
.appveyor/llvm-wrap.meson
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# A meson.build file for binary wrapping the LLVM used in the appvyeor CI
|
||||||
|
project('llvm', ['cpp'])
|
||||||
|
|
||||||
|
cpp = meson.get_compiler('cpp')
|
||||||
|
|
||||||
|
_deps = []
|
||||||
|
_search = join_paths(meson.current_source_dir(), 'lib')
|
||||||
|
foreach d : ['LLVMAnalysis', 'LLVMAsmParser', 'LLVMAsmPrinter',
|
||||||
|
'LLVMBinaryFormat', 'LLVMBitReader', 'LLVMBitWriter',
|
||||||
|
'LLVMCodeGen', 'LLVMCore', 'LLVMCoroutines', 'LLVMCoverage',
|
||||||
|
'LLVMDebugInfoCodeView', 'LLVMDebugInfoDWARF',
|
||||||
|
'LLVMDebugInfoMSF', 'LLVMDebugInfoPDB', 'LLVMDemangle',
|
||||||
|
'LLVMDlltoolDriver', 'LLVMExecutionEngine', 'LLVMGlobalISel',
|
||||||
|
'LLVMInstCombine', 'LLVMInstrumentation', 'LLVMInterpreter',
|
||||||
|
'LLVMipo', 'LLVMIRReader', 'LLVMLibDriver', 'LLVMLineEditor',
|
||||||
|
'LLVMLinker', 'LLVMLTO', 'LLVMMCDisassembler', 'LLVMMCJIT',
|
||||||
|
'LLVMMC', 'LLVMMCParser', 'LLVMMIRParser', 'LLVMObjCARCOpts',
|
||||||
|
'LLVMObject', 'LLVMObjectYAML', 'LLVMOption', 'LLVMOrcJIT',
|
||||||
|
'LLVMPasses', 'LLVMProfileData', 'LLVMRuntimeDyld',
|
||||||
|
'LLVMScalarOpts', 'LLVMSelectionDAG', 'LLVMSupport',
|
||||||
|
'LLVMSymbolize', 'LLVMTableGen', 'LLVMTarget',
|
||||||
|
'LLVMTransformUtils', 'LLVMVectorize', 'LLVMX86AsmParser',
|
||||||
|
'LLVMX86AsmPrinter', 'LLVMX86CodeGen', 'LLVMX86Desc',
|
||||||
|
'LLVMX86Disassembler', 'LLVMX86Info', 'LLVMX86Utils',
|
||||||
|
'LLVMXRay']
|
||||||
|
_deps += cpp.find_library(d, dirs : _search)
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
dep_llvm = declare_dependency(
|
||||||
|
include_directories : include_directories('include'),
|
||||||
|
dependencies : _deps,
|
||||||
|
version : '5.0.1',
|
||||||
|
)
|
||||||
|
|
||||||
|
has_rtti = false
|
||||||
|
irbuilder_h = files('include/llvm/IR/IRBuilder.h')
|
@@ -36,10 +36,6 @@ indent_size = 2
|
|||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
|
||||||
[*.rst]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 3
|
|
||||||
|
|
||||||
[*.patch]
|
[*.patch]
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
1484
.gitlab-ci.yml
1484
.gitlab-ci.yml
File diff suppressed because it is too large
Load Diff
122
.gitlab-ci/README.md
Normal file
122
.gitlab-ci/README.md
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
## Mesa testing using gitlab-runner
|
||||||
|
|
||||||
|
The goal of the "test" stage of the .gitlab-ci.yml is to do pre-merge
|
||||||
|
testing of Mesa drivers on various platforms, so that we can ensure no
|
||||||
|
regressions are merged, as long as developers are merging code using
|
||||||
|
the "Merge when pipeline completes" button.
|
||||||
|
|
||||||
|
This document only covers the CI from .gitlab-ci.yml and this
|
||||||
|
directory. For other CI systems, see Intel's [Mesa
|
||||||
|
CI](https://gitlab.freedesktop.org/Mesa_CI) or panfrost's LAVA-based
|
||||||
|
CI (`src/gallium/drivers/panfrost/ci/`)
|
||||||
|
|
||||||
|
### Software architecture
|
||||||
|
|
||||||
|
For freedreno and llvmpipe CI, we're using gitlab-runner on the test
|
||||||
|
devices (DUTs), cached docker containers with VK-GL-CTS, and the
|
||||||
|
normal shared x86_64 runners to build the Mesa drivers to be run
|
||||||
|
inside of those containers on the DUTs.
|
||||||
|
|
||||||
|
The docker containers are rebuilt from the debian-install.sh script
|
||||||
|
when DEBIAN\_TAG is changed in .gitlab-ci.yml, and
|
||||||
|
debian-test-install.sh when DEBIAN\_ARM64\_TAG is changed in
|
||||||
|
.gitlab-ci.yml. The resulting images are around 500MB, and are
|
||||||
|
expected to change approximately weekly (though an individual
|
||||||
|
developer working on them may produce many more images while trying to
|
||||||
|
come up with a working MR!).
|
||||||
|
|
||||||
|
gitlab-runner is a client that polls gitlab.freedesktop.org for
|
||||||
|
available jobs, with no inbound networking requirements. Jobs can
|
||||||
|
have tags, so we can have DUT-specific jobs that only run on runners
|
||||||
|
with that tag marked in the gitlab UI.
|
||||||
|
|
||||||
|
Since dEQP takes a long time to run, we mark the job as "parallel" at
|
||||||
|
some level, which spawns multiple jobs from one definition, and then
|
||||||
|
deqp-runner.sh takes the corresponding fraction of the test list for
|
||||||
|
that job.
|
||||||
|
|
||||||
|
To reduce dEQP runtime (or avoid tests with unreliable results), a
|
||||||
|
deqp-runner.sh invocation can provide a list of tests to skip. If
|
||||||
|
your driver is not yet conformant, you can pass a list of expected
|
||||||
|
failures, and the job will only fail on tests that aren't listed (look
|
||||||
|
at the job's log for which specific tests failed).
|
||||||
|
|
||||||
|
### DUT requirements
|
||||||
|
|
||||||
|
#### DUTs must have a stable kernel and GPU reset.
|
||||||
|
|
||||||
|
If the system goes down during a test run, that job will eventually
|
||||||
|
time out and fail (default 1 hour). However, if the kernel can't
|
||||||
|
reliably reset the GPU on failure, bugs in one MR may leak into
|
||||||
|
spurious failures in another MR. This would be an unacceptable impact
|
||||||
|
on Mesa developers working on other drivers.
|
||||||
|
|
||||||
|
#### DUTs must be able to run docker
|
||||||
|
|
||||||
|
The Mesa gitlab-runner based test architecture is built around docker,
|
||||||
|
so that we can cache the debian package installation and CTS build
|
||||||
|
step across multiple test runs. Since the images are large and change
|
||||||
|
approximately weekly, the DUTs also need to be running some script to
|
||||||
|
prune stale docker images periodically in order to not run out of disk
|
||||||
|
space as we rev those containers (perhaps [this
|
||||||
|
script](https://gitlab.com/gitlab-org/gitlab-runner/issues/2980#note_169233611)).
|
||||||
|
|
||||||
|
Note that docker doesn't allow containers to be stored on NFS, and
|
||||||
|
doesn't allow multiple docker daemons to interact with the same
|
||||||
|
network block device, so you will probably need some sort of physical
|
||||||
|
storage on your DUTs.
|
||||||
|
|
||||||
|
#### DUTs must be public
|
||||||
|
|
||||||
|
By including your device in .gitlab-ci.yml, you're effectively letting
|
||||||
|
anyone on the internet run code on your device. docker containers may
|
||||||
|
provide some limited protection, but how much you trust that and what
|
||||||
|
you do to mitigate hostile access is up to you.
|
||||||
|
|
||||||
|
#### DUTs must expose the dri device nodes to the containers.
|
||||||
|
|
||||||
|
Obviously, to get access to the HW, we need to pass the render node
|
||||||
|
through. This is done by adding `devices = ["/dev/dri"]` to the
|
||||||
|
`runners.docker` section of /etc/gitlab-runner/config.toml.
|
||||||
|
|
||||||
|
### HW CI farm expectations
|
||||||
|
|
||||||
|
To make sure that testing of one vendor's drivers doesn't block
|
||||||
|
unrelated work by other vendors, we require that a given driver's test
|
||||||
|
farm produces a spurious failure no more than once a week. If every
|
||||||
|
driver had CI and failed once a week, we would be seeing someone's
|
||||||
|
code getting blocked on a spurious failure daily, which is an
|
||||||
|
unacceptable cost to the project.
|
||||||
|
|
||||||
|
Additionally, the test farm needs to be able to provide a short enough
|
||||||
|
turnaround time that people can regularly use the "Merge when pipeline
|
||||||
|
succeeds" button successfully (until we get
|
||||||
|
[marge-bot](https://github.com/smarkets/marge-bot) in place on
|
||||||
|
freedesktop.org). As a result, we require that the test farm be able
|
||||||
|
to handle a whole pipeline's worth of jobs in less than 5 minutes (to
|
||||||
|
compare, the build stage is about 10 minutes, if you could get all
|
||||||
|
your jobs scheduled on the shared runners in time.).
|
||||||
|
|
||||||
|
If a test farm is short the HW to provide these guarantees, consider
|
||||||
|
dropping tests to reduce runtime.
|
||||||
|
`VK-GL-CTS/scripts/log/bottleneck_report.py` can help you find what
|
||||||
|
tests were slow in a `results.qpa` file. Or, you can have a job with
|
||||||
|
no `parallel` field set and:
|
||||||
|
|
||||||
|
```
|
||||||
|
variables:
|
||||||
|
CI_NODE_INDEX: 1
|
||||||
|
CI_NODE_TOTAL: 10
|
||||||
|
```
|
||||||
|
|
||||||
|
to just run 1/10th of the test list.
|
||||||
|
|
||||||
|
If a HW CI farm goes offline (network dies and all CI pipelines end up
|
||||||
|
stalled) or its runners are consistenly spuriously failing (disk
|
||||||
|
full?), and the maintainer is not immediately available to fix the
|
||||||
|
issue, please push through an MR disabling that farm's jobs by adding
|
||||||
|
'.' to the front of the jobs names until the maintainer can bring
|
||||||
|
things back up. If this happens, the farm maintainer should provide a
|
||||||
|
report to mesa-dev@lists.freedesktop.org after the fact explaining
|
||||||
|
what happened and what the mitigation plan is for that failure next
|
||||||
|
time.
|
46
.gitlab-ci/arm.config
Normal file
46
.gitlab-ci/arm.config
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
CONFIG_LOCALVERSION="ccu"
|
||||||
|
|
||||||
|
CONFIG_DEBUG_KERNEL=y
|
||||||
|
|
||||||
|
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
||||||
|
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
||||||
|
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
||||||
|
CONFIG_DEVFREQ_GOV_PASSIVE=y
|
||||||
|
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||||
|
|
||||||
|
CONFIG_DRM=y
|
||||||
|
CONFIG_DRM_ROCKCHIP=y
|
||||||
|
CONFIG_DRM_PANFROST=y
|
||||||
|
CONFIG_DRM_LIMA=y
|
||||||
|
CONFIG_DRM_PANEL_SIMPLE=y
|
||||||
|
CONFIG_PWM_CROS_EC=y
|
||||||
|
CONFIG_BACKLIGHT_PWM=y
|
||||||
|
|
||||||
|
CONFIG_ROCKCHIP_CDN_DP=n
|
||||||
|
|
||||||
|
CONFIG_SPI_ROCKCHIP=y
|
||||||
|
CONFIG_PWM_ROCKCHIP=y
|
||||||
|
CONFIG_PHY_ROCKCHIP_DP=y
|
||||||
|
CONFIG_DWMAC_ROCKCHIP=y
|
||||||
|
|
||||||
|
CONFIG_MFD_RK808=y
|
||||||
|
CONFIG_REGULATOR_RK808=y
|
||||||
|
CONFIG_RTC_DRV_RK808=y
|
||||||
|
CONFIG_COMMON_CLK_RK808=y
|
||||||
|
|
||||||
|
CONFIG_REGULATOR_FAN53555=y
|
||||||
|
CONFIG_REGULATOR=y
|
||||||
|
|
||||||
|
CONFIG_REGULATOR_VCTRL=y
|
||||||
|
|
||||||
|
CONFIG_KASAN=n
|
||||||
|
CONFIG_KASAN_INLINE=n
|
||||||
|
CONFIG_STACKTRACE=n
|
||||||
|
|
||||||
|
CONFIG_TMPFS=y
|
||||||
|
|
||||||
|
CONFIG_PROVE_LOCKING=n
|
||||||
|
CONFIG_DEBUG_LOCKDEP=n
|
||||||
|
CONFIG_SOFTLOCKUP_DETECTOR=n
|
||||||
|
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=n
|
||||||
|
|
83
.gitlab-ci/arm64.config
Normal file
83
.gitlab-ci/arm64.config
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
CONFIG_LOCALVERSION="ccu"
|
||||||
|
|
||||||
|
CONFIG_DEBUG_KERNEL=y
|
||||||
|
|
||||||
|
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
||||||
|
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
||||||
|
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
||||||
|
CONFIG_DEVFREQ_GOV_PASSIVE=y
|
||||||
|
|
||||||
|
CONFIG_DRM=y
|
||||||
|
CONFIG_DRM_ROCKCHIP=y
|
||||||
|
CONFIG_DRM_PANFROST=y
|
||||||
|
CONFIG_DRM_LIMA=y
|
||||||
|
CONFIG_DRM_PANEL_SIMPLE=y
|
||||||
|
CONFIG_PWM_CROS_EC=y
|
||||||
|
CONFIG_BACKLIGHT_PWM=y
|
||||||
|
|
||||||
|
CONFIG_ROCKCHIP_CDN_DP=n
|
||||||
|
|
||||||
|
CONFIG_SPI_ROCKCHIP=y
|
||||||
|
CONFIG_PWM_ROCKCHIP=y
|
||||||
|
CONFIG_PHY_ROCKCHIP_DP=y
|
||||||
|
CONFIG_DWMAC_ROCKCHIP=y
|
||||||
|
CONFIG_STMMAC_ETH=y
|
||||||
|
CONFIG_TYPEC_FUSB302=y
|
||||||
|
CONFIG_TYPEC=y
|
||||||
|
CONFIG_TYPEC_TCPM=y
|
||||||
|
|
||||||
|
CONFIG_ARCH_ALPINE=n
|
||||||
|
CONFIG_ARCH_BCM2835=n
|
||||||
|
CONFIG_ARCH_BCM_IPROC=n
|
||||||
|
CONFIG_ARCH_BERLIN=n
|
||||||
|
CONFIG_ARCH_BRCMSTB=n
|
||||||
|
CONFIG_ARCH_EXYNOS=n
|
||||||
|
CONFIG_ARCH_K3=n
|
||||||
|
CONFIG_ARCH_LAYERSCAPE=n
|
||||||
|
CONFIG_ARCH_LG1K=n
|
||||||
|
CONFIG_ARCH_HISI=n
|
||||||
|
CONFIG_ARCH_MEDIATEK=n
|
||||||
|
CONFIG_ARCH_MVEBU=n
|
||||||
|
CONFIG_ARCH_QCOM=n
|
||||||
|
CONFIG_ARCH_SEATTLE=n
|
||||||
|
CONFIG_ARCH_SYNQUACER=n
|
||||||
|
CONFIG_ARCH_RENESAS=n
|
||||||
|
CONFIG_ARCH_R8A774A1=n
|
||||||
|
CONFIG_ARCH_R8A774C0=n
|
||||||
|
CONFIG_ARCH_R8A7795=n
|
||||||
|
CONFIG_ARCH_R8A7796=n
|
||||||
|
CONFIG_ARCH_R8A77965=n
|
||||||
|
CONFIG_ARCH_R8A77970=n
|
||||||
|
CONFIG_ARCH_R8A77980=n
|
||||||
|
CONFIG_ARCH_R8A77990=n
|
||||||
|
CONFIG_ARCH_R8A77995=n
|
||||||
|
CONFIG_ARCH_STRATIX10=n
|
||||||
|
CONFIG_ARCH_TEGRA=n
|
||||||
|
CONFIG_ARCH_SPRD=n
|
||||||
|
CONFIG_ARCH_THUNDER=n
|
||||||
|
CONFIG_ARCH_THUNDER2=n
|
||||||
|
CONFIG_ARCH_UNIPHIER=n
|
||||||
|
CONFIG_ARCH_VEXPRESS=n
|
||||||
|
CONFIG_ARCH_XGENE=n
|
||||||
|
CONFIG_ARCH_ZX=n
|
||||||
|
CONFIG_ARCH_ZYNQMP=n
|
||||||
|
|
||||||
|
CONFIG_ACPI=n
|
||||||
|
|
||||||
|
CONFIG_REGULATOR_FAN53555=y
|
||||||
|
CONFIG_REGULATOR=y
|
||||||
|
|
||||||
|
CONFIG_REGULATOR_VCTRL=y
|
||||||
|
|
||||||
|
CONFIG_KASAN=n
|
||||||
|
CONFIG_KASAN_INLINE=n
|
||||||
|
CONFIG_STACKTRACE=n
|
||||||
|
|
||||||
|
CONFIG_TMPFS=y
|
||||||
|
|
||||||
|
CONFIG_PROVE_LOCKING=n
|
||||||
|
CONFIG_DEBUG_LOCKDEP=n
|
||||||
|
CONFIG_SOFTLOCKUP_DETECTOR=y
|
||||||
|
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||||
|
|
||||||
|
CONFIG_DETECT_HUNG_TASK=y
|
@@ -1,2 +0,0 @@
|
|||||||
[*.sh]
|
|
||||||
indent_size = 2
|
|
@@ -1,26 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# This test script groups together a bunch of fast dEQP variant runs
|
|
||||||
# to amortize the cost of rebooting the board.
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
EXIT=0
|
|
||||||
|
|
||||||
# Run reset tests without parallelism:
|
|
||||||
if ! env \
|
|
||||||
DEQP_RESULTS_DIR=results/reset \
|
|
||||||
DEQP_PARALLEL=1 \
|
|
||||||
DEQP_CASELIST_FILTER='.*reset.*' \
|
|
||||||
/install/deqp-runner.sh; then
|
|
||||||
EXIT=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Then run everything else with parallelism:
|
|
||||||
if ! env \
|
|
||||||
DEQP_RESULTS_DIR=results/nonrobustness \
|
|
||||||
DEQP_CASELIST_INV_FILTER='.*reset.*' \
|
|
||||||
/install/deqp-runner.sh; then
|
|
||||||
EXIT=1
|
|
||||||
fi
|
|
||||||
|
|
@@ -1,81 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# This test script groups together a bunch of fast dEQP variant runs
|
|
||||||
# to amortize the cost of rebooting the board.
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
EXIT=0
|
|
||||||
|
|
||||||
# Test rendering with the gmem path forced when possible (~1 minute)
|
|
||||||
if ! env \
|
|
||||||
DEQP_RESULTS_DIR=results/gmem \
|
|
||||||
DEQP_VER=gles31 \
|
|
||||||
DEQP_FRACTION=5 \
|
|
||||||
FD_MESA_DEBUG=nobypass \
|
|
||||||
/install/deqp-runner.sh; then
|
|
||||||
EXIT=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Test rendering with the bypass path forced when possible (~1 minute)
|
|
||||||
if ! env \
|
|
||||||
DEQP_RESULTS_DIR=results/bypass \
|
|
||||||
DEQP_VER=gles31 \
|
|
||||||
DEQP_FRACTION=5 \
|
|
||||||
FD_MESA_DEBUG=nogmem \
|
|
||||||
GPU_VERSION=freedreno-a630-bypass \
|
|
||||||
/install/deqp-runner.sh; then
|
|
||||||
EXIT=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Test rendering with the UBO-to-constants optimization disabled (~1 minute)
|
|
||||||
if ! env \
|
|
||||||
DEQP_RESULTS_DIR=results/nouboopt \
|
|
||||||
DEQP_VER=gles31 \
|
|
||||||
IR3_SHADER_DEBUG=nouboopt \
|
|
||||||
DEQP_CASELIST_FILTER="functional.*ubo" \
|
|
||||||
/install/deqp-runner.sh; then
|
|
||||||
EXIT=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# gles3-565nozs mustpass (~20s)
|
|
||||||
if ! env \
|
|
||||||
DEQP_RESULTS_DIR=results/gles3-565nozs \
|
|
||||||
DEQP_VER=gles3 \
|
|
||||||
DEQP_CONFIG="rgb565d0s0ms0" \
|
|
||||||
DEQP_VARIANT="565-no-depth-no-stencil" \
|
|
||||||
/install/deqp-runner.sh; then
|
|
||||||
EXIT=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# gles31-565nozs mustpass (~1s)
|
|
||||||
if ! env \
|
|
||||||
DEQP_RESULTS_DIR=results/gles31-565nozs \
|
|
||||||
DEQP_VER=gles31 \
|
|
||||||
DEQP_CONFIG="rgb565d0s0ms0" \
|
|
||||||
DEQP_VARIANT="565-no-depth-no-stencil" \
|
|
||||||
/install/deqp-runner.sh; then
|
|
||||||
EXIT=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# gles3-multisample mustpass -- disabled pending https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1859
|
|
||||||
# if ! env \
|
|
||||||
# DEQP_RESULTS_DIR=results/gles3-multisample \
|
|
||||||
# DEQP_VER=gles3 \
|
|
||||||
# DEQP_CONFIG="rgba8888d24s8ms4" \
|
|
||||||
# DEQP_VARIANT="multisample" \
|
|
||||||
# /install/deqp-runner.sh; then
|
|
||||||
# EXIT=1
|
|
||||||
# fi
|
|
||||||
|
|
||||||
# gles31-multisample mustpass -- disabled pending https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1859
|
|
||||||
# if ! env \
|
|
||||||
# DEQP_RESULTS_DIR=results/gles31-multisample \
|
|
||||||
# DEQP_VER=gles31 \
|
|
||||||
# DEQP_CONFIG="rgba8888d24s8ms4" \
|
|
||||||
# DEQP_VARIANT="multisample" \
|
|
||||||
# /install/deqp-runner.sh; then
|
|
||||||
# EXIT=1
|
|
||||||
# fi
|
|
||||||
|
|
||||||
exit $EXIT
|
|
@@ -1,13 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Init entrypoint for bare-metal devices; calls common init code.
|
|
||||||
|
|
||||||
# First stage: very basic setup to bring up network and /dev etc
|
|
||||||
/init-stage1.sh
|
|
||||||
|
|
||||||
# Second stage: run jobs
|
|
||||||
test $? -eq 0 && /init-stage2.sh
|
|
||||||
|
|
||||||
# Wait until the job would have timed out anyway, so we don't spew a "init
|
|
||||||
# exited" panic.
|
|
||||||
sleep 6000
|
|
@@ -1,101 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Boot script for Chrome OS devices attached to a servo debug connector, using
|
|
||||||
# NFS and TFTP to boot.
|
|
||||||
|
|
||||||
# We're run from the root of the repo, make a helper var for our paths
|
|
||||||
BM=$CI_PROJECT_DIR/install/bare-metal
|
|
||||||
CI_COMMON=$CI_PROJECT_DIR/install/common
|
|
||||||
|
|
||||||
# Runner config checks
|
|
||||||
if [ -z "$BM_SERIAL" ]; then
|
|
||||||
echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This is the CPU serial device."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_SERIAL_EC" ]; then
|
|
||||||
echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This is the EC serial device for controlling board power"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d /nfs ]; then
|
|
||||||
echo "NFS rootfs directory needs to be mounted at /nfs by the gitlab runner"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d /tftp ]; then
|
|
||||||
echo "TFTP directory for this board needs to be mounted at /tftp by the gitlab runner"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# job config checks
|
|
||||||
if [ -z "$BM_KERNEL" ]; then
|
|
||||||
echo "Must set BM_KERNEL to your board's kernel FIT image"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_ROOTFS" ]; then
|
|
||||||
echo "Must set BM_ROOTFS to your board's rootfs directory in the job's variables"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_CMDLINE" ]; then
|
|
||||||
echo "Must set BM_CMDLINE to your board's kernel command line arguments"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
# Clear out any previous run's artifacts.
|
|
||||||
rm -rf results/
|
|
||||||
mkdir -p results
|
|
||||||
|
|
||||||
# Create the rootfs in the NFS directory. rm to make sure it's in a pristine
|
|
||||||
# state, since it's volume-mounted on the host.
|
|
||||||
rsync -a --delete $BM_ROOTFS/ /nfs/
|
|
||||||
mkdir -p /nfs/results
|
|
||||||
. $BM/rootfs-setup.sh /nfs
|
|
||||||
|
|
||||||
# Put the kernel/dtb image and the boot command line in the tftp directory for
|
|
||||||
# the board to find. For normal Mesa development, we build the kernel and
|
|
||||||
# store it in the docker container that this script is running in.
|
|
||||||
#
|
|
||||||
# However, container builds are expensive, so when you're hacking on the
|
|
||||||
# kernel, it's nice to be able to skip the half hour container build and plus
|
|
||||||
# moving that container to the runner. So, if BM_KERNEL is a URL, fetch it
|
|
||||||
# instead of looking in the container. Note that the kernel build should be
|
|
||||||
# the output of:
|
|
||||||
#
|
|
||||||
# make Image.lzma
|
|
||||||
#
|
|
||||||
# mkimage \
|
|
||||||
# -A arm64 \
|
|
||||||
# -f auto \
|
|
||||||
# -C lzma \
|
|
||||||
# -d arch/arm64/boot/Image.lzma \
|
|
||||||
# -b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \
|
|
||||||
# cheza-image.img
|
|
||||||
|
|
||||||
rm -rf /tftp/*
|
|
||||||
if echo "$BM_KERNEL" | grep -q http; then
|
|
||||||
apt install -y wget
|
|
||||||
wget $BM_KERNEL -O /tftp/vmlinuz
|
|
||||||
else
|
|
||||||
cp $BM_KERNEL /tftp/vmlinuz
|
|
||||||
fi
|
|
||||||
echo "$BM_CMDLINE" > /tftp/cmdline
|
|
||||||
|
|
||||||
set +e
|
|
||||||
python3 $BM/cros_servo_run.py \
|
|
||||||
--cpu $BM_SERIAL \
|
|
||||||
--ec $BM_SERIAL_EC
|
|
||||||
ret=$?
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Bring artifacts back from the NFS dir to the build dir where gitlab-runner
|
|
||||||
# will look for them.
|
|
||||||
cp -Rp /nfs/results/. results/
|
|
||||||
|
|
||||||
exit $ret
|
|
@@ -1,175 +0,0 @@
|
|||||||
|
|
||||||
#!/usr/bin/env python3
|
|
||||||
#
|
|
||||||
# Copyright © 2020 Google LLC
|
|
||||||
#
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
# copy of this software and associated documentation files (the "Software"),
|
|
||||||
# to deal in the Software without restriction, including without limitation
|
|
||||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
# and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
# Software is furnished to do so, subject to the following conditions:
|
|
||||||
#
|
|
||||||
# The above copyright notice and this permission notice (including the next
|
|
||||||
# paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
# Software.
|
|
||||||
#
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
||||||
# IN THE SOFTWARE.
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import queue
|
|
||||||
import re
|
|
||||||
from serial_buffer import SerialBuffer
|
|
||||||
import sys
|
|
||||||
import threading
|
|
||||||
|
|
||||||
|
|
||||||
class CrosServoRun:
|
|
||||||
def __init__(self, cpu, ec):
|
|
||||||
# Merged FIFO for the two serial buffers, fed by threads.
|
|
||||||
self.serial_queue = queue.Queue()
|
|
||||||
self.sentinel = object()
|
|
||||||
self.threads_done = 0
|
|
||||||
|
|
||||||
self.ec_ser = SerialBuffer(
|
|
||||||
ec, "results/serial-ec.txt", "R SERIAL-EC> ")
|
|
||||||
self.cpu_ser = SerialBuffer(
|
|
||||||
cpu, "results/serial.txt", "R SERIAL-CPU> ")
|
|
||||||
|
|
||||||
self.iter_feed_ec = threading.Thread(
|
|
||||||
target=self.iter_feed_queue, daemon=True, args=(self.ec_ser.lines(),))
|
|
||||||
self.iter_feed_ec.start()
|
|
||||||
|
|
||||||
self.iter_feed_cpu = threading.Thread(
|
|
||||||
target=self.iter_feed_queue, daemon=True, args=(self.cpu_ser.lines(),))
|
|
||||||
self.iter_feed_cpu.start()
|
|
||||||
|
|
||||||
# Feed lines from our serial queues into the merged queue, marking when our
|
|
||||||
# input is done.
|
|
||||||
def iter_feed_queue(self, it):
|
|
||||||
for i in it:
|
|
||||||
self.serial_queue.put(i)
|
|
||||||
self.serial_queue.put(sentinel)
|
|
||||||
|
|
||||||
# Return the next line from the queue, counting how many threads have
|
|
||||||
# terminated and joining when done
|
|
||||||
def get_serial_queue_line(self):
|
|
||||||
line = self.serial_queue.get()
|
|
||||||
if line == self.sentinel:
|
|
||||||
self.threads_done = self.threads_done + 1
|
|
||||||
if self.threads_done == 2:
|
|
||||||
self.iter_feed_cpu.join()
|
|
||||||
self.iter_feed_ec.join()
|
|
||||||
return line
|
|
||||||
|
|
||||||
# Returns an iterator for getting the next line.
|
|
||||||
def serial_queue_lines(self):
|
|
||||||
return iter(self.get_serial_queue_line, self.sentinel)
|
|
||||||
|
|
||||||
def ec_write(self, s):
|
|
||||||
print("W SERIAL-EC> %s" % s)
|
|
||||||
self.ec_ser.serial.write(s.encode())
|
|
||||||
|
|
||||||
def cpu_write(self, s):
|
|
||||||
print("W SERIAL-CPU> %s" % s)
|
|
||||||
self.cpu_ser.serial.write(s.encode())
|
|
||||||
|
|
||||||
def print_error(self, message):
|
|
||||||
RED = '\033[0;31m'
|
|
||||||
NO_COLOR = '\033[0m'
|
|
||||||
print(RED + message + NO_COLOR)
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
# Flush any partial commands in the EC's prompt, then ask for a reboot.
|
|
||||||
self.ec_write("\n")
|
|
||||||
self.ec_write("reboot\n")
|
|
||||||
|
|
||||||
# This is emitted right when the bootloader pauses to check for input.
|
|
||||||
# Emit a ^N character to request network boot, because we don't have a
|
|
||||||
# direct-to-netboot firmware on cheza.
|
|
||||||
for line in self.serial_queue_lines():
|
|
||||||
if re.search("load_archive: loading locale_en.bin", line):
|
|
||||||
self.cpu_write("\016")
|
|
||||||
break
|
|
||||||
|
|
||||||
# The Cheza boards have issues with failing to bring up power to
|
|
||||||
# the system sometimes, possibly dependent on ambient temperature
|
|
||||||
# in the farm.
|
|
||||||
if re.search("POWER_GOOD not seen in time", line):
|
|
||||||
self.print_error("Detected intermittent poweron failure, restarting run...")
|
|
||||||
return 2
|
|
||||||
|
|
||||||
tftp_failures = 0
|
|
||||||
for line in self.serial_queue_lines():
|
|
||||||
if re.search("---. end Kernel panic", line):
|
|
||||||
return 1
|
|
||||||
|
|
||||||
# The Cheza firmware seems to occasionally get stuck looping in
|
|
||||||
# this error state during TFTP booting, possibly based on amount of
|
|
||||||
# network traffic around it, but it'll usually recover after a
|
|
||||||
# reboot.
|
|
||||||
if re.search("R8152: Bulk read error 0xffffffbf", line):
|
|
||||||
tftp_failures += 1
|
|
||||||
if tftp_failures >= 100:
|
|
||||||
self.print_error("Detected intermittent tftp failure, restarting run...")
|
|
||||||
return 2
|
|
||||||
|
|
||||||
# There are very infrequent bus errors during power management transitions
|
|
||||||
# on cheza, which we don't expect to be the case on future boards.
|
|
||||||
if re.search("Kernel panic - not syncing: Asynchronous SError Interrupt", line):
|
|
||||||
self.print_error("Detected cheza power management bus error, restarting run...")
|
|
||||||
return 2
|
|
||||||
|
|
||||||
# These HFI response errors started appearing with the introduction
|
|
||||||
# of piglit runs. CosmicPenguin says:
|
|
||||||
#
|
|
||||||
# "message ID 106 isn't a thing, so likely what happened is that we
|
|
||||||
# got confused when parsing the HFI queue. If it happened on only
|
|
||||||
# one run, then memory corruption could be a possible clue"
|
|
||||||
#
|
|
||||||
# Given that it seems to trigger randomly near a GPU fault and then
|
|
||||||
# break many tests after that, just restart the whole run.
|
|
||||||
if re.search("a6xx_hfi_send_msg.*Unexpected message id .* on the response queue", line):
|
|
||||||
self.print_error("Detected cheza power management bus error, restarting run...")
|
|
||||||
return 2
|
|
||||||
|
|
||||||
result = re.search("hwci: mesa: (\S*)", line)
|
|
||||||
if result:
|
|
||||||
if result.group(1) == "pass":
|
|
||||||
return 0
|
|
||||||
else:
|
|
||||||
return 1
|
|
||||||
|
|
||||||
self.print_error("Reached the end of the CPU serial log without finding a result")
|
|
||||||
return 1
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('--cpu', type=str,
|
|
||||||
help='CPU Serial device', required=True)
|
|
||||||
parser.add_argument(
|
|
||||||
'--ec', type=str, help='EC Serial device', required=True)
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
servo = CrosServoRun(args.cpu, args.ec)
|
|
||||||
|
|
||||||
while True:
|
|
||||||
retval = servo.run()
|
|
||||||
if retval != 2:
|
|
||||||
break
|
|
||||||
|
|
||||||
# power down the CPU on the device
|
|
||||||
servo.ec_write("power off\n")
|
|
||||||
|
|
||||||
sys.exit(retval)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
@@ -1,30 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
STRINGS=$(mktemp)
|
|
||||||
ERRORS=$(mktemp)
|
|
||||||
|
|
||||||
trap "rm $STRINGS; rm $ERRORS;" EXIT
|
|
||||||
|
|
||||||
FILE=$1
|
|
||||||
shift 1
|
|
||||||
|
|
||||||
while getopts "f:e:" opt; do
|
|
||||||
case $opt in
|
|
||||||
f) echo "$OPTARG" >> $STRINGS;;
|
|
||||||
e) echo "$OPTARG" >> $STRINGS ; echo "$OPTARG" >> $ERRORS;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift $((OPTIND -1))
|
|
||||||
|
|
||||||
echo "Waiting for $FILE to say one of following strings"
|
|
||||||
cat $STRINGS
|
|
||||||
|
|
||||||
while ! egrep -wf $STRINGS $FILE; do
|
|
||||||
sleep 2
|
|
||||||
done
|
|
||||||
|
|
||||||
if egrep -wf $ERRORS $FILE; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
@@ -1,148 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
BM=$CI_PROJECT_DIR/install/bare-metal
|
|
||||||
CI_COMMON=$CI_PROJECT_DIR/install/common
|
|
||||||
|
|
||||||
if [ -z "$BM_SERIAL" -a -z "$BM_SERIAL_SCRIPT" ]; then
|
|
||||||
echo "Must set BM_SERIAL OR BM_SERIAL_SCRIPT in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "BM_SERIAL:"
|
|
||||||
echo " This is the serial device to talk to for waiting for fastboot to be ready and logging from the kernel."
|
|
||||||
echo "BM_SERIAL_SCRIPT:"
|
|
||||||
echo " This is a shell script to talk to for waiting for fastboot to be ready and logging from the kernel."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_POWERUP" ]; then
|
|
||||||
echo "Must set BM_POWERUP in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This is a shell script that should reset the device and begin its boot sequence"
|
|
||||||
echo "such that it pauses at fastboot."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_POWERDOWN" ]; then
|
|
||||||
echo "Must set BM_POWERDOWN in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This is a shell script that should power off the device."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_FASTBOOT_SERIAL" ]; then
|
|
||||||
echo "Must set BM_FASTBOOT_SERIAL in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This must be the a stable-across-resets fastboot serial number."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_KERNEL" ]; then
|
|
||||||
echo "Must set BM_KERNEL to your board's kernel vmlinuz or Image.gz in the job's variables:"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_DTB" ]; then
|
|
||||||
echo "Must set BM_DTB to your board's DTB file in the job's variables:"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_ROOTFS" ]; then
|
|
||||||
echo "Must set BM_ROOTFS to your board's rootfs directory in the job's variables:"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if echo $BM_CMDLINE | grep -q "root=/dev/nfs"; then
|
|
||||||
BM_FASTBOOT_NFSROOT=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
# Clear out any previous run's artifacts.
|
|
||||||
rm -rf results/
|
|
||||||
mkdir -p results/
|
|
||||||
|
|
||||||
if [ -n "$BM_FASTBOOT_NFSROOT" ]; then
|
|
||||||
# Create the rootfs in the NFS directory. rm to make sure it's in a pristine
|
|
||||||
# state, since it's volume-mounted on the host.
|
|
||||||
rsync -a --delete $BM_ROOTFS/ /nfs/
|
|
||||||
mkdir -p /nfs/results
|
|
||||||
. $BM/rootfs-setup.sh /nfs
|
|
||||||
|
|
||||||
# Root on NFS, no need for an inintramfs.
|
|
||||||
rm -f rootfs.cpio.gz
|
|
||||||
touch rootfs.cpio
|
|
||||||
gzip rootfs.cpio
|
|
||||||
else
|
|
||||||
# Create the rootfs in a temp dir
|
|
||||||
rsync -a --delete $BM_ROOTFS/ rootfs/
|
|
||||||
. $BM/rootfs-setup.sh rootfs
|
|
||||||
|
|
||||||
# Finally, pack it up into a cpio rootfs. Skip the vulkan CTS since none of
|
|
||||||
# these devices use it and it would take up space in the initrd.
|
|
||||||
|
|
||||||
if [ -n "$PIGLIT_PROFILES" ]; then
|
|
||||||
EXCLUDE_FILTER="deqp|arb_gpu_shader5|arb_gpu_shader_fp64|arb_gpu_shader_int64|glsl-4.[0123456]0|arb_tessellation_shader"
|
|
||||||
else
|
|
||||||
EXCLUDE_FILTER="piglit|python"
|
|
||||||
fi
|
|
||||||
|
|
||||||
pushd rootfs
|
|
||||||
find -H | \
|
|
||||||
egrep -v "external/(openglcts|vulkancts|amber|glslang|spirv-tools)" |
|
|
||||||
egrep -v "traces-db|apitrace|renderdoc" | \
|
|
||||||
egrep -v $EXCLUDE_FILTER | \
|
|
||||||
cpio -H newc -o | \
|
|
||||||
xz --check=crc32 -T4 - > $CI_PROJECT_DIR/rootfs.cpio.gz
|
|
||||||
popd
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Make the combined kernel image and dtb for passing to fastboot. For normal
|
|
||||||
# Mesa development, we build the kernel and store it in the docker container
|
|
||||||
# that this script is running in.
|
|
||||||
#
|
|
||||||
# However, container builds are expensive, so when you're hacking on the
|
|
||||||
# kernel, it's nice to be able to skip the half hour container build and plus
|
|
||||||
# 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 install -y wget
|
|
||||||
|
|
||||||
wget $BM_KERNEL -O kernel
|
|
||||||
wget $BM_DTB -O dtb
|
|
||||||
|
|
||||||
cat kernel dtb > Image.gz-dtb
|
|
||||||
rm kernel dtb
|
|
||||||
else
|
|
||||||
cat $BM_KERNEL $BM_DTB > Image.gz-dtb
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p artifacts
|
|
||||||
abootimg \
|
|
||||||
--create artifacts/fastboot.img \
|
|
||||||
-k Image.gz-dtb \
|
|
||||||
-r rootfs.cpio.gz \
|
|
||||||
-c cmdline="$BM_CMDLINE"
|
|
||||||
rm Image.gz-dtb
|
|
||||||
|
|
||||||
export PATH=$BM:$PATH
|
|
||||||
|
|
||||||
# Start background command for talking to serial if we have one.
|
|
||||||
if [ -n "$BM_SERIAL_SCRIPT" ]; then
|
|
||||||
$BM_SERIAL_SCRIPT > results/serial-output.txt &
|
|
||||||
|
|
||||||
while [ ! -e results/serial-output.txt ]; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
set +e
|
|
||||||
$BM/fastboot_run.py \
|
|
||||||
--dev="$BM_SERIAL" \
|
|
||||||
--fbserial="$BM_FASTBOOT_SERIAL" \
|
|
||||||
--powerup="$BM_POWERUP" \
|
|
||||||
--powerdown="$BM_POWERDOWN"
|
|
||||||
ret=$?
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ -n "$BM_FASTBOOT_NFSROOT" ]; then
|
|
||||||
# Bring artifacts back from the NFS dir to the build dir where gitlab-runner
|
|
||||||
# will look for them.
|
|
||||||
cp -Rp /nfs/results/. results/
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit $ret
|
|
@@ -1,118 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
#
|
|
||||||
# Copyright © 2020 Google LLC
|
|
||||||
#
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
# copy of this software and associated documentation files (the "Software"),
|
|
||||||
# to deal in the Software without restriction, including without limitation
|
|
||||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
# and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
# Software is furnished to do so, subject to the following conditions:
|
|
||||||
#
|
|
||||||
# The above copyright notice and this permission notice (including the next
|
|
||||||
# paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
# Software.
|
|
||||||
#
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
||||||
# IN THE SOFTWARE.
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
from serial_buffer import SerialBuffer
|
|
||||||
import sys
|
|
||||||
import threading
|
|
||||||
|
|
||||||
class FastbootRun:
|
|
||||||
def __init__(self, args):
|
|
||||||
self.powerup = args.powerup
|
|
||||||
# We would like something like a 1 minute timeout, but the piglit traces
|
|
||||||
# jobs stall out for long periods of time.
|
|
||||||
self.ser = SerialBuffer(args.dev, "results/serial-output.txt", "R SERIAL> ", timeout=600)
|
|
||||||
self.fastboot="fastboot boot -s {ser} artifacts/fastboot.img".format(ser=args.fbserial)
|
|
||||||
|
|
||||||
def print_error(self, message):
|
|
||||||
RED = '\033[0;31m'
|
|
||||||
NO_COLOR = '\033[0m'
|
|
||||||
print(RED + message + NO_COLOR)
|
|
||||||
|
|
||||||
def logged_system(self, cmd):
|
|
||||||
print("Running '{}'".format(cmd))
|
|
||||||
return os.system(cmd)
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
if self.logged_system(self.powerup) != 0:
|
|
||||||
return 1
|
|
||||||
|
|
||||||
fastboot_ready = False
|
|
||||||
for line in self.ser.lines():
|
|
||||||
if re.search("fastboot: processing commands", line) or \
|
|
||||||
re.search("Listening for fastboot command on", line):
|
|
||||||
fastboot_ready = True
|
|
||||||
break
|
|
||||||
|
|
||||||
if re.search("data abort", line):
|
|
||||||
self.print_error("Detected crash during boot, restarting run...")
|
|
||||||
return 2
|
|
||||||
|
|
||||||
if not fastboot_ready:
|
|
||||||
self.print_error("Failed to get to fastboot prompt, restarting run...")
|
|
||||||
return 2
|
|
||||||
|
|
||||||
if self.logged_system(self.fastboot) != 0:
|
|
||||||
return 1
|
|
||||||
|
|
||||||
for line in self.ser.lines():
|
|
||||||
if re.search("---. end Kernel panic", line):
|
|
||||||
return 1
|
|
||||||
|
|
||||||
# The db820c boards intermittently reboot. Just restart the run
|
|
||||||
# when if we see a reboot after we got past fastboot.
|
|
||||||
if re.search("PON REASON", line):
|
|
||||||
self.print_error("Detected spontaneous reboot, restarting run...")
|
|
||||||
return 2
|
|
||||||
|
|
||||||
# db820c sometimes wedges around iommu fault recovery
|
|
||||||
if re.search("watchdog: BUG: soft lockup - CPU.* stuck", line):
|
|
||||||
self.print_error(
|
|
||||||
"Detected kernel soft lockup, restarting run...")
|
|
||||||
return 2
|
|
||||||
|
|
||||||
result = re.search("hwci: mesa: (\S*)", line)
|
|
||||||
if result:
|
|
||||||
if result.group(1) == "pass":
|
|
||||||
return 0
|
|
||||||
else:
|
|
||||||
return 1
|
|
||||||
|
|
||||||
self.print_error("Reached the end of the CPU serial log without finding a result, restarting run...")
|
|
||||||
return 2
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('--dev', type=str, help='Serial device (otherwise reading from serial-output.txt)')
|
|
||||||
parser.add_argument('--powerup', type=str, help='shell command for rebooting', required=True)
|
|
||||||
parser.add_argument('--powerdown', type=str, help='shell command for powering off', required=True)
|
|
||||||
parser.add_argument('--fbserial', type=str, help='fastboot serial number of the board', required=True)
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
fastboot = FastbootRun(args)
|
|
||||||
|
|
||||||
while True:
|
|
||||||
retval = fastboot.run()
|
|
||||||
if retval != 2:
|
|
||||||
break
|
|
||||||
|
|
||||||
fastboot = FastbootRun(args)
|
|
||||||
|
|
||||||
fastboot.logged_system(args.powerdown)
|
|
||||||
|
|
||||||
sys.exit(retval)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
@@ -1,10 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
relay=$1
|
|
||||||
|
|
||||||
if [ -z "$relay" ]; then
|
|
||||||
echo "Must supply a relay arg"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
$CI_PROJECT_DIR/install/bare-metal/google-power-relay.py off $relay
|
|
@@ -1,19 +0,0 @@
|
|||||||
#!/usr/bin/python3
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import serial
|
|
||||||
|
|
||||||
mode = sys.argv[1]
|
|
||||||
relay = sys.argv[2]
|
|
||||||
|
|
||||||
# our relays are "off" means "board is powered".
|
|
||||||
mode_swap = {
|
|
||||||
"on" : "off",
|
|
||||||
"off" : "on",
|
|
||||||
}
|
|
||||||
mode = mode_swap[mode]
|
|
||||||
|
|
||||||
ser = serial.Serial('/dev/ttyACM0', 115200, timeout=2)
|
|
||||||
command = "relay {} {}\n\r".format(mode, relay)
|
|
||||||
ser.write(command.encode())
|
|
||||||
ser.close()
|
|
@@ -1,12 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
relay=$1
|
|
||||||
|
|
||||||
if [ -z "$relay" ]; then
|
|
||||||
echo "Must supply a relay arg"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
$CI_PROJECT_DIR/install/bare-metal/google-power-relay.py off $relay
|
|
||||||
sleep 5
|
|
||||||
$CI_PROJECT_DIR/install/bare-metal/google-power-relay.py on $relay
|
|
@@ -1,17 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ -z "$BM_POE_INTERFACE" ]; then
|
|
||||||
echo "Must supply the PoE Interface to power up"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_POE_ADDRESS" ]; then
|
|
||||||
echo "Must supply the PoE Switch host"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
SNMP_KEY="SNMPv2-SMI::mib-2.105.1.1.1.3.1.`expr 48 + $BM_POE_INTERFACE`"
|
|
||||||
SNMP_ON="i 1"
|
|
||||||
SNMP_OFF="i 2"
|
|
||||||
|
|
||||||
flock /var/run/poe.lock -c "snmpset -v2c -r 3 -t 30 -cmesaci $BM_POE_ADDRESS $SNMP_KEY $SNMP_OFF"
|
|
@@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ -z "$BM_POE_INTERFACE" ]; then
|
|
||||||
echo "Must supply the PoE Interface to power up"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_POE_ADDRESS" ]; then
|
|
||||||
echo "Must supply the PoE Switch host"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
SNMP_KEY="SNMPv2-SMI::mib-2.105.1.1.1.3.1.`expr 48 + $BM_POE_INTERFACE`"
|
|
||||||
SNMP_ON="i 1"
|
|
||||||
SNMP_OFF="i 2"
|
|
||||||
|
|
||||||
flock /var/run/poe.lock -c "snmpset -v2c -r 3 -t 30 -cmesaci $BM_POE_ADDRESS $SNMP_KEY $SNMP_OFF"
|
|
||||||
sleep 3s
|
|
||||||
flock /var/run/poe.lock -c "snmpset -v2c -r 3 -t 30 -cmesaci $BM_POE_ADDRESS $SNMP_KEY $SNMP_ON"
|
|
@@ -1,147 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Boot script for devices attached to a PoE switch, using NFS for the root
|
|
||||||
# filesystem.
|
|
||||||
|
|
||||||
# We're run from the root of the repo, make a helper var for our paths
|
|
||||||
BM=$CI_PROJECT_DIR/install/bare-metal
|
|
||||||
CI_COMMON=$CI_PROJECT_DIR/install/common
|
|
||||||
|
|
||||||
# Runner config checks
|
|
||||||
if [ -z "$BM_SERIAL" ]; then
|
|
||||||
echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This is the serial port to listen the device."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_POE_ADDRESS" ]; then
|
|
||||||
echo "Must set BM_POE_ADDRESS in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This is the PoE switch address to connect for powering up/down devices."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_POE_USERNAME" ]; then
|
|
||||||
echo "Must set BM_POE_USERNAME in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This is the PoE switch username."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_POE_PASSWORD" ]; then
|
|
||||||
echo "Must set BM_POE_PASSWORD in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This is the PoE switch password."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_POE_INTERFACE" ]; then
|
|
||||||
echo "Must set BM_POE_INTERFACE in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This is the PoE switch interface where the device is connected."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_POWERUP" ]; then
|
|
||||||
echo "Must set BM_POWERUP in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This is a shell script that should power up the device and begin its boot sequence."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_POWERDOWN" ]; then
|
|
||||||
echo "Must set BM_POWERDOWN in your gitlab-runner config.toml [[runners]] environment"
|
|
||||||
echo "This is a shell script that should power off the device."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d /nfs ]; then
|
|
||||||
echo "NFS rootfs directory needs to be mounted at /nfs by the gitlab runner"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d /tftp ]; then
|
|
||||||
echo "TFTP directory for this board needs to be mounted at /tftp by the gitlab runner"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# job config checks
|
|
||||||
if [ -z "$BM_ROOTFS" ]; then
|
|
||||||
echo "Must set BM_ROOTFS to your board's rootfs directory in the job's variables"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_BOOTFS" ]; then
|
|
||||||
echo "Must set /boot files for the TFTP boot in the job's variables"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_CMDLINE" ]; then
|
|
||||||
echo "Must set BM_CMDLINE to your board's kernel command line arguments"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BM_BOOTCONFIG" ]; then
|
|
||||||
echo "Must set BM_BOOTCONFIG to your board's required boot configuration arguments"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
# Clear out any previous run's artifacts.
|
|
||||||
rm -rf results/
|
|
||||||
mkdir -p results
|
|
||||||
|
|
||||||
# Create the rootfs in the NFS directory. rm to make sure it's in a pristine
|
|
||||||
# state, since it's volume-mounted on the host.
|
|
||||||
rsync -a --delete $BM_ROOTFS/ /nfs/
|
|
||||||
|
|
||||||
# If BM_BOOTFS is an URL, download it
|
|
||||||
if echo $BM_BOOTFS | grep -q http; then
|
|
||||||
apt install -y wget
|
|
||||||
wget ${FDO_HTTP_CACHE_URI:-}$BM_BOOTFS -O /tmp/bootfs.tar
|
|
||||||
BM_BOOTFS=/tmp/bootfs.tar
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If BM_BOOTFS is a file, assume it is a tarball and uncompress it
|
|
||||||
if [ -f $BM_BOOTFS ]; then
|
|
||||||
mkdir -p /tmp/bootfs
|
|
||||||
tar xf $BM_BOOTFS -C /tmp/bootfs
|
|
||||||
BM_BOOTFS=/tmp/bootfs
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 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 --delete $BM_BOOTFS/usr/lib/modules/ /nfs/usr/lib/modules/
|
|
||||||
[ -d $BM_BOOTFS/lib/modules ] && rsync -a --delete $BM_BOOTFS/lib/modules/ /nfs/usr/lib/modules/
|
|
||||||
|
|
||||||
# Install kernel image + bootloader files
|
|
||||||
rsync -a --delete $BM_BOOTFS/boot/ /tftp/
|
|
||||||
|
|
||||||
# Create the rootfs in the NFS directory
|
|
||||||
mkdir -p /nfs/results
|
|
||||||
. $BM/rootfs-setup.sh /nfs
|
|
||||||
|
|
||||||
echo "$BM_CMDLINE" > /tftp/cmdline.txt
|
|
||||||
|
|
||||||
# Add some required options in config.txt
|
|
||||||
printf "$BM_BOOTCONFIG" >> /tftp/config.txt
|
|
||||||
|
|
||||||
set +e
|
|
||||||
ATTEMPTS=2
|
|
||||||
while [ $((ATTEMPTS--)) -gt 0 ]; do
|
|
||||||
python3 $BM/poe_run.py \
|
|
||||||
--dev="$BM_SERIAL" \
|
|
||||||
--powerup="$BM_POWERUP" \
|
|
||||||
--powerdown="$BM_POWERDOWN" \
|
|
||||||
--timeout="${BM_POE_TIMEOUT:-60}"
|
|
||||||
ret=$?
|
|
||||||
|
|
||||||
if [ $ret -eq 2 ]; then
|
|
||||||
echo "Did not detect boot sequence, retrying..."
|
|
||||||
else
|
|
||||||
ATTEMPTS=0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Bring artifacts back from the NFS dir to the build dir where gitlab-runner
|
|
||||||
# will look for them.
|
|
||||||
cp -Rp /nfs/results/. results/
|
|
||||||
|
|
||||||
exit $ret
|
|
@@ -1,96 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
#
|
|
||||||
# Copyright © 2020 Igalia, S.L.
|
|
||||||
#
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
# copy of this software and associated documentation files (the "Software"),
|
|
||||||
# to deal in the Software without restriction, including without limitation
|
|
||||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
# and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
# Software is furnished to do so, subject to the following conditions:
|
|
||||||
#
|
|
||||||
# The above copyright notice and this permission notice (including the next
|
|
||||||
# paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
# Software.
|
|
||||||
#
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
||||||
# IN THE SOFTWARE.
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
from serial_buffer import SerialBuffer
|
|
||||||
import sys
|
|
||||||
import threading
|
|
||||||
|
|
||||||
class PoERun:
|
|
||||||
def __init__(self, args):
|
|
||||||
self.powerup = args.powerup
|
|
||||||
self.powerdown = args.powerdown
|
|
||||||
self.ser = SerialBuffer(args.dev, "results/serial-output.txt", "", args.timeout)
|
|
||||||
|
|
||||||
def print_error(self, message):
|
|
||||||
RED = '\033[0;31m'
|
|
||||||
NO_COLOR = '\033[0m'
|
|
||||||
print(RED + message + NO_COLOR)
|
|
||||||
|
|
||||||
def logged_system(self, cmd):
|
|
||||||
print("Running '{}'".format(cmd))
|
|
||||||
return os.system(cmd)
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
if self.logged_system(self.powerup) != 0:
|
|
||||||
return 1
|
|
||||||
|
|
||||||
boot_detected = False
|
|
||||||
for line in self.ser.lines():
|
|
||||||
if re.search("Booting Linux", line):
|
|
||||||
boot_detected = True
|
|
||||||
break
|
|
||||||
|
|
||||||
if not boot_detected:
|
|
||||||
self.print_error("Something wrong; couldn't detect the boot start up sequence")
|
|
||||||
return 2
|
|
||||||
|
|
||||||
for line in self.ser.lines():
|
|
||||||
if re.search("---. end Kernel panic", line):
|
|
||||||
return 1
|
|
||||||
|
|
||||||
# Binning memory problems
|
|
||||||
if re.search("binner overflow mem", line):
|
|
||||||
self.print_error("Memory overflow in the binner; GPU hang")
|
|
||||||
return 1
|
|
||||||
|
|
||||||
result = re.search("hwci: mesa: (\S*)", line)
|
|
||||||
if result:
|
|
||||||
if result.group(1) == "pass":
|
|
||||||
return 0
|
|
||||||
else:
|
|
||||||
return 1
|
|
||||||
|
|
||||||
self.print_error("Reached the end of the CPU serial log without finding a result")
|
|
||||||
return 2
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('--dev', type=str, help='Serial device to monitor', required=True)
|
|
||||||
parser.add_argument('--powerup', type=str, help='shell command for rebooting', required=True)
|
|
||||||
parser.add_argument('--powerdown', type=str, help='shell command for powering off', required=True)
|
|
||||||
parser.add_argument('--timeout', type=int, default=60,
|
|
||||||
help='time in seconds to wait for activity', required=False)
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
poe = PoERun(args)
|
|
||||||
retval = poe.run()
|
|
||||||
|
|
||||||
poe.logged_system(args.powerdown)
|
|
||||||
|
|
||||||
sys.exit(retval)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
@@ -1,24 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
rootfs_dst=$1
|
|
||||||
|
|
||||||
mkdir -p $rootfs_dst/results
|
|
||||||
|
|
||||||
# Set up the init script that brings up the system.
|
|
||||||
cp $BM/bm-init.sh $rootfs_dst/init
|
|
||||||
cp $CI_COMMON/init*.sh $rootfs_dst/
|
|
||||||
|
|
||||||
cp $CI_COMMON/capture-devcoredump.sh $rootfs_dst/
|
|
||||||
|
|
||||||
set +x
|
|
||||||
# Pass through relevant env vars from the gitlab job to the baremetal init script
|
|
||||||
"$CI_COMMON"/generate-env.sh > $rootfs_dst/set-job-env-vars.sh
|
|
||||||
chmod +x $rootfs_dst/set-job-env-vars.sh
|
|
||||||
echo "Variables passed through:"
|
|
||||||
cat $rootfs_dst/set-job-env-vars.sh
|
|
||||||
echo "export CI_JOB_JWT=${CI_JOB_JWT@Q}" >> $rootfs_dst/set-job-env-vars.sh
|
|
||||||
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/
|
|
@@ -1,153 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
#
|
|
||||||
# Copyright © 2020 Google LLC
|
|
||||||
#
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
# copy of this software and associated documentation files (the "Software"),
|
|
||||||
# to deal in the Software without restriction, including without limitation
|
|
||||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
# and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
# Software is furnished to do so, subject to the following conditions:
|
|
||||||
#
|
|
||||||
# The above copyright notice and this permission notice (including the next
|
|
||||||
# paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
# Software.
|
|
||||||
#
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
||||||
# IN THE SOFTWARE.
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
from datetime import datetime, timezone
|
|
||||||
import queue
|
|
||||||
import serial
|
|
||||||
import threading
|
|
||||||
import time
|
|
||||||
|
|
||||||
|
|
||||||
class SerialBuffer:
|
|
||||||
def __init__(self, dev, filename, prefix, timeout = None):
|
|
||||||
self.filename = filename
|
|
||||||
self.dev = dev
|
|
||||||
|
|
||||||
if dev:
|
|
||||||
self.f = open(filename, "wb+")
|
|
||||||
self.serial = serial.Serial(dev, 115200, timeout=timeout if timeout else 10)
|
|
||||||
else:
|
|
||||||
self.f = open(filename, "rb")
|
|
||||||
|
|
||||||
self.byte_queue = queue.Queue()
|
|
||||||
self.line_queue = queue.Queue()
|
|
||||||
self.prefix = prefix
|
|
||||||
self.timeout = timeout
|
|
||||||
self.sentinel = object()
|
|
||||||
|
|
||||||
if self.dev:
|
|
||||||
self.read_thread = threading.Thread(
|
|
||||||
target=self.serial_read_thread_loop, daemon=True)
|
|
||||||
else:
|
|
||||||
self.read_thread = threading.Thread(
|
|
||||||
target=self.serial_file_read_thread_loop, daemon=True)
|
|
||||||
self.read_thread.start()
|
|
||||||
|
|
||||||
self.lines_thread = threading.Thread(
|
|
||||||
target=self.serial_lines_thread_loop, daemon=True)
|
|
||||||
self.lines_thread.start()
|
|
||||||
|
|
||||||
# Thread that just reads the bytes from the serial device to try to keep from
|
|
||||||
# buffer overflowing it. If nothing is received in 1 minute, it finalizes.
|
|
||||||
def serial_read_thread_loop(self):
|
|
||||||
greet = "Serial thread reading from %s\n" % self.dev
|
|
||||||
self.byte_queue.put(greet.encode())
|
|
||||||
|
|
||||||
while True:
|
|
||||||
try:
|
|
||||||
b = self.serial.read()
|
|
||||||
if len(b) > 0:
|
|
||||||
self.byte_queue.put(b)
|
|
||||||
elif self.timeout:
|
|
||||||
self.byte_queue.put(self.sentinel)
|
|
||||||
break
|
|
||||||
except Exception as err:
|
|
||||||
print(self.prefix + str(err))
|
|
||||||
self.byte_queue.put(self.sentinel)
|
|
||||||
break
|
|
||||||
|
|
||||||
# Thread that just reads the bytes from the file of serial output that some
|
|
||||||
# other process is appending to.
|
|
||||||
def serial_file_read_thread_loop(self):
|
|
||||||
greet = "Serial thread reading from %s\n" % self.filename
|
|
||||||
self.byte_queue.put(greet.encode())
|
|
||||||
|
|
||||||
while True:
|
|
||||||
line = self.f.readline()
|
|
||||||
if line:
|
|
||||||
self.byte_queue.put(line)
|
|
||||||
else:
|
|
||||||
time.sleep(0.1)
|
|
||||||
|
|
||||||
# Thread that processes the stream of bytes to 1) log to stdout, 2) log to
|
|
||||||
# file, 3) add to the queue of lines to be read by program logic
|
|
||||||
|
|
||||||
def serial_lines_thread_loop(self):
|
|
||||||
line = bytearray()
|
|
||||||
while True:
|
|
||||||
bytes = self.byte_queue.get(block=True)
|
|
||||||
|
|
||||||
if bytes == self.sentinel:
|
|
||||||
self.read_thread.join()
|
|
||||||
self.line_queue.put(self.sentinel)
|
|
||||||
break
|
|
||||||
|
|
||||||
# Write our data to the output file if we're the ones reading from
|
|
||||||
# the serial device
|
|
||||||
if self.dev:
|
|
||||||
self.f.write(bytes)
|
|
||||||
self.f.flush()
|
|
||||||
|
|
||||||
for b in bytes:
|
|
||||||
line.append(b)
|
|
||||||
if b == b'\n'[0]:
|
|
||||||
line = line.decode(errors="replace")
|
|
||||||
|
|
||||||
time = datetime.now().strftime('%y-%m-%d %H:%M:%S')
|
|
||||||
print("{endc}{time} {prefix}{line}".format(
|
|
||||||
time=time, prefix=self.prefix, line=line, endc='\033[0m'), flush=True, end='')
|
|
||||||
|
|
||||||
self.line_queue.put(line)
|
|
||||||
line = bytearray()
|
|
||||||
|
|
||||||
def get_line(self):
|
|
||||||
line = self.line_queue.get()
|
|
||||||
if line == self.sentinel:
|
|
||||||
self.lines_thread.join()
|
|
||||||
return line
|
|
||||||
|
|
||||||
def lines(self):
|
|
||||||
return iter(self.get_line, self.sentinel)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
|
|
||||||
parser.add_argument('--dev', type=str, help='Serial device')
|
|
||||||
parser.add_argument('--file', type=str,
|
|
||||||
help='Filename for serial output', required=True)
|
|
||||||
parser.add_argument('--prefix', type=str,
|
|
||||||
help='Prefix for logging serial to stdout', nargs='?')
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
ser = SerialBuffer(args.dev, args.file, args.prefix or "")
|
|
||||||
for line in ser.lines():
|
|
||||||
# We're just using this as a logger, so eat the produced lines and drop
|
|
||||||
# them
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
10
.gitlab-ci/build-cts-runner.sh
Normal file
10
.gitlab-ci/build-cts-runner.sh
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
git clone https://gitlab.freedesktop.org/mesa/parallel-deqp-runner.git --depth 1 -b mesa-ci-2019-12-17
|
||||||
|
cd parallel-deqp-runner
|
||||||
|
meson build/ $EXTRA_MESON_ARGS
|
||||||
|
ninja -C build -j4 install
|
||||||
|
cd ..
|
||||||
|
rm -rf parallel-deqp-runner
|
61
.gitlab-ci/build-deqp-gl.sh
Normal file
61
.gitlab-ci/build-deqp-gl.sh
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
git config --global user.email "mesa@example.com"
|
||||||
|
git config --global user.name "Mesa CI"
|
||||||
|
# XXX: Use --depth 1 once we can drop the cherry-picks.
|
||||||
|
git clone \
|
||||||
|
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
||||||
|
-b opengl-es-cts-3.2.5.1 \
|
||||||
|
/VK-GL-CTS
|
||||||
|
pushd /VK-GL-CTS
|
||||||
|
# Fix surfaceless build
|
||||||
|
git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
|
||||||
|
git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
|
||||||
|
|
||||||
|
# surfaceless links against libkms and such despite not using it.
|
||||||
|
sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
|
||||||
|
sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
|
||||||
|
sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
|
||||||
|
|
||||||
|
# --insecure is due to SSL cert failures hitting sourceforge for zlib and
|
||||||
|
# libpng (sigh). The archives get their checksums checked anyway, and git
|
||||||
|
# always goes through ssh or https.
|
||||||
|
python3 external/fetch_sources.py --insecure
|
||||||
|
|
||||||
|
mkdir -p /deqp
|
||||||
|
|
||||||
|
# Save the testlog stylesheets:
|
||||||
|
cp doc/testlog-stylesheet/testlog.{css,xsl} /deqp
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd /deqp
|
||||||
|
cmake -G Ninja \
|
||||||
|
-DDEQP_TARGET=surfaceless \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
$EXTRA_CMAKE_ARGS \
|
||||||
|
/VK-GL-CTS
|
||||||
|
ninja
|
||||||
|
|
||||||
|
# Copy out the mustpass lists we want from a bunch of other junk.
|
||||||
|
mkdir /deqp/mustpass
|
||||||
|
for gles in gles2 gles3 gles31; do
|
||||||
|
cp \
|
||||||
|
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \
|
||||||
|
/deqp/mustpass/$gles-master.txt
|
||||||
|
done
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
rm -rf /deqp/external
|
||||||
|
rm -rf /deqp/modules/internal
|
||||||
|
rm -rf /deqp/execserver
|
||||||
|
rm -rf /deqp/modules/egl
|
||||||
|
rm -rf /deqp/framework
|
||||||
|
find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs rm -rf
|
||||||
|
${STRIP_CMD:-strip} modules/*/deqp-*
|
||||||
|
du -sh *
|
||||||
|
rm -rf /VK-GL-CTS
|
||||||
|
popd
|
33
.gitlab-ci/build-deqp-vk.sh
Normal file
33
.gitlab-ci/build-deqp-vk.sh
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
git clone --depth 1 \
|
||||||
|
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
||||||
|
-b vulkan-cts-1.1.6.0 \
|
||||||
|
/VK-GL-CTS
|
||||||
|
cd /VK-GL-CTS
|
||||||
|
|
||||||
|
# --insecure is due to SSL cert failures hitting sourceforge for zlib and
|
||||||
|
# libpng (sigh). The archives get their checksums checked anyway, and git
|
||||||
|
# always goes through ssh or https.
|
||||||
|
python3 external/fetch_sources.py --insecure
|
||||||
|
|
||||||
|
mkdir -p /deqp
|
||||||
|
cd /deqp
|
||||||
|
cmake -G Ninja \
|
||||||
|
-DDEQP_TARGET=x11_glx \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
/VK-GL-CTS
|
||||||
|
ninja -j4
|
||||||
|
|
||||||
|
# Copy out the mustpass list we want.
|
||||||
|
mkdir /deqp/mustpass
|
||||||
|
cp /VK-GL-CTS/external/vulkancts/mustpass/master/vk-default.txt \
|
||||||
|
/deqp/mustpass/vk-master.txt
|
||||||
|
|
||||||
|
rm -rf /deqp/modules/internal
|
||||||
|
rm -rf /deqp/executor
|
||||||
|
rm -rf /deqp/execserver
|
||||||
|
rm -rf /deqp/modules/egl
|
||||||
|
rm -rf /deqp/framework
|
||||||
|
find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs rm -rf
|
||||||
|
strip external/vulkancts/modules/vulkan/deqp-vk
|
||||||
|
du -sh *
|
||||||
|
rm -rf /VK-GL-CTS
|
13
.gitlab-ci/build-piglit.sh
Normal file
13
.gitlab-ci/build-piglit.sh
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
|
||||||
|
pushd /piglit
|
||||||
|
git checkout 8771c3860505db2bcf4877216221d774bf90af6b
|
||||||
|
patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff
|
||||||
|
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release
|
||||||
|
ninja -j4
|
||||||
|
find -name .git -o -name '*ninja*' -o -iname '*cmake*' -o -name '*.[chao]' | xargs rm -rf
|
||||||
|
rm -rf target_api
|
||||||
|
popd
|
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
devcds=`find /sys/devices/virtual/devcoredump/ -name data 2>/dev/null`
|
|
||||||
for i in $devcds; do
|
|
||||||
echo "Found a devcoredump at $i."
|
|
||||||
if cp $i /results/first.devcore; then
|
|
||||||
echo 1 > $i
|
|
||||||
echo "Saved to the job artifacts at /first.devcore"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
sleep 10
|
|
||||||
done
|
|
@@ -1,84 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
for var in \
|
|
||||||
ASAN_OPTIONS \
|
|
||||||
BASE_SYSTEM_FORK_HOST_PREFIX \
|
|
||||||
BASE_SYSTEM_MAINLINE_HOST_PREFIX \
|
|
||||||
CI_COMMIT_BRANCH \
|
|
||||||
CI_COMMIT_TITLE \
|
|
||||||
CI_JOB_ID \
|
|
||||||
CI_JOB_URL \
|
|
||||||
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME \
|
|
||||||
CI_MERGE_REQUEST_TITLE \
|
|
||||||
CI_NODE_INDEX \
|
|
||||||
CI_NODE_TOTAL \
|
|
||||||
CI_PAGES_DOMAIN \
|
|
||||||
CI_PIPELINE_ID \
|
|
||||||
CI_PROJECT_DIR \
|
|
||||||
CI_PROJECT_NAME \
|
|
||||||
CI_PROJECT_PATH \
|
|
||||||
CI_PROJECT_ROOT_NAMESPACE \
|
|
||||||
CI_RUNNER_DESCRIPTION \
|
|
||||||
CI_SERVER_URL \
|
|
||||||
DEQP_CASELIST_FILTER \
|
|
||||||
DEQP_CASELIST_INV_FILTER \
|
|
||||||
DEQP_CONFIG \
|
|
||||||
DEQP_EXPECTED_RENDERER \
|
|
||||||
DEQP_FRACTION \
|
|
||||||
DEQP_HEIGHT \
|
|
||||||
DEQP_NO_SAVE_RESULTS \
|
|
||||||
DEQP_PARALLEL \
|
|
||||||
DEQP_RESULTS_DIR \
|
|
||||||
DEQP_RUNNER_OPTIONS \
|
|
||||||
DEQP_VARIANT \
|
|
||||||
DEQP_VER \
|
|
||||||
DEQP_WIDTH \
|
|
||||||
DEVICE_NAME \
|
|
||||||
DRIVER_NAME \
|
|
||||||
EGL_PLATFORM \
|
|
||||||
FDO_CI_CONCURRENT \
|
|
||||||
FDO_UPSTREAM_REPO \
|
|
||||||
FD_MESA_DEBUG \
|
|
||||||
FLAKES_CHANNEL \
|
|
||||||
GPU_VERSION \
|
|
||||||
HWCI_FREQ_MAX \
|
|
||||||
HWCI_KERNEL_MODULES \
|
|
||||||
HWCI_START_XORG \
|
|
||||||
HWCI_TEST_SCRIPT \
|
|
||||||
IR3_SHADER_DEBUG \
|
|
||||||
JOB_ARTIFACTS_BASE \
|
|
||||||
JOB_RESULTS_PATH \
|
|
||||||
JOB_ROOTFS_OVERLAY_PATH \
|
|
||||||
MESA_BUILD_PATH \
|
|
||||||
MESA_GL_VERSION_OVERRIDE \
|
|
||||||
MESA_GLSL_VERSION_OVERRIDE \
|
|
||||||
MESA_GLES_VERSION_OVERRIDE \
|
|
||||||
MESA_VK_IGNORE_CONFORMANCE_WARNING \
|
|
||||||
MINIO_HOST \
|
|
||||||
NIR_VALIDATE \
|
|
||||||
PAN_MESA_DEBUG \
|
|
||||||
PIGLIT_FRACTION \
|
|
||||||
PIGLIT_JUNIT_RESULTS \
|
|
||||||
PIGLIT_NO_WINDOW \
|
|
||||||
PIGLIT_OPTIONS \
|
|
||||||
PIGLIT_PLATFORM \
|
|
||||||
PIGLIT_PROFILES \
|
|
||||||
PIGLIT_REPLAY_ARTIFACTS_BASE_URL \
|
|
||||||
PIGLIT_REPLAY_SUBCOMMAND \
|
|
||||||
PIGLIT_REPLAY_DESCRIPTION_FILE \
|
|
||||||
PIGLIT_REPLAY_DEVICE_NAME \
|
|
||||||
PIGLIT_REPLAY_EXTRA_ARGS \
|
|
||||||
PIGLIT_REPLAY_REFERENCE_IMAGES_BASE \
|
|
||||||
PIGLIT_REPLAY_UPLOAD_TO_MINIO \
|
|
||||||
PIGLIT_RESULTS \
|
|
||||||
PIGLIT_TESTS \
|
|
||||||
PIPELINE_ARTIFACTS_BASE \
|
|
||||||
TEST_LD_PRELOAD \
|
|
||||||
TU_DEBUG \
|
|
||||||
VK_CPU \
|
|
||||||
VK_DRIVER \
|
|
||||||
; do
|
|
||||||
if [ -n "${!var+x}" ]; then
|
|
||||||
echo "export $var=${!var@Q}"
|
|
||||||
fi
|
|
||||||
done
|
|
@@ -1,22 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Very early init, used to make sure devices and network are set up and
|
|
||||||
# reachable.
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
cd /
|
|
||||||
|
|
||||||
mount -t proc none /proc
|
|
||||||
mount -t sysfs none /sys
|
|
||||||
mount -t devtmpfs none /dev || echo possibly already mounted
|
|
||||||
mkdir -p /dev/pts
|
|
||||||
mount -t devpts devpts /dev/pts
|
|
||||||
mount -t tmpfs tmpfs /tmp
|
|
||||||
|
|
||||||
echo "nameserver 8.8.8.8" > /etc/resolv.conf
|
|
||||||
[ -z "$NFS_SERVER_IP" ] || echo "$NFS_SERVER_IP caching-proxy" >> /etc/hosts
|
|
||||||
|
|
||||||
# Set the time so we can validate certificates before we fetch anything;
|
|
||||||
# however as not all DUTs have network, make this non-fatal.
|
|
||||||
for i in 1 2 3; do sntp -sS pool.ntp.org && break || sleep 2; done || true
|
|
@@ -1,75 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Second-stage init, used to set up devices and our job environment before
|
|
||||||
# running tests.
|
|
||||||
|
|
||||||
. /set-job-env-vars.sh
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
# Set up any devices required by the jobs
|
|
||||||
[ -z "$HWCI_KERNEL_MODULES" ] || (echo -n $HWCI_KERNEL_MODULES | xargs -d, -n1 /usr/sbin/modprobe)
|
|
||||||
|
|
||||||
# Fix prefix confusion: the build installs to $CI_PROJECT_DIR, but we expect
|
|
||||||
# it in /install
|
|
||||||
ln -sf $CI_PROJECT_DIR/install /install
|
|
||||||
export LD_LIBRARY_PATH=/install/lib
|
|
||||||
export LIBGL_DRIVERS_PATH=/install/lib/dri
|
|
||||||
|
|
||||||
# Store Mesa's disk cache under /tmp, rather than sending it out over NFS.
|
|
||||||
export XDG_CACHE_HOME=/tmp
|
|
||||||
|
|
||||||
# Make sure Python can find all our imports
|
|
||||||
export PYTHONPATH=$(python3 -c "import sys;print(\":\".join(sys.path))")
|
|
||||||
|
|
||||||
if [ "$HWCI_FREQ_MAX" = "true" ]; then
|
|
||||||
# Disable GPU frequency scaling
|
|
||||||
DEVFREQ_GOVERNOR=`find /sys/devices -name governor | grep gpu || true`
|
|
||||||
test -z "$DEVFREQ_GOVERNOR" || echo performance > $DEVFREQ_GOVERNOR || true
|
|
||||||
|
|
||||||
# Disable CPU frequency scaling
|
|
||||||
echo performance | tee -a /sys/devices/system/cpu/cpufreq/policy*/scaling_governor || true
|
|
||||||
|
|
||||||
# Disable GPU runtime power management
|
|
||||||
GPU_AUTOSUSPEND=`find /sys/devices -name autosuspend_delay_ms | grep gpu | head -1`
|
|
||||||
test -z "$GPU_AUTOSUSPEND" || echo -1 > $GPU_AUTOSUSPEND || true
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Start a little daemon to capture the first devcoredump we encounter. (They
|
|
||||||
# expire after 5 minutes, so we poll for them).
|
|
||||||
./capture-devcoredump.sh &
|
|
||||||
|
|
||||||
# If we want Xorg to be running for the test, then we start it up before the
|
|
||||||
# HWCI_TEST_SCRIPT because we need to use xinit to start X (otherwise
|
|
||||||
# without using -displayfd you can race with Xorg's startup), but xinit will eat
|
|
||||||
# your client's return code
|
|
||||||
if [ -n "$HWCI_START_XORG" ]; then
|
|
||||||
echo "touch /xorg-started; sleep 100000" > /xorg-script
|
|
||||||
env \
|
|
||||||
xinit /bin/sh /xorg-script -- /usr/bin/Xorg -noreset -s 0 -dpms -logfile /Xorg.0.log &
|
|
||||||
|
|
||||||
# Wait for xorg to be ready for connections.
|
|
||||||
for i in 1 2 3 4 5; do
|
|
||||||
if [ -e /xorg-started ]; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
export DISPLAY=:0
|
|
||||||
fi
|
|
||||||
|
|
||||||
RESULT=fail
|
|
||||||
if sh $HWCI_TEST_SCRIPT; then
|
|
||||||
RESULT=pass
|
|
||||||
rm -rf results/trace/$PIGLIT_REPLAY_DEVICE_NAME
|
|
||||||
fi
|
|
||||||
|
|
||||||
# upload artifacts
|
|
||||||
MINIO=$(cat /proc/cmdline | tr ' ' '\n' | grep minio_results | cut -d '=' -f 2 || true)
|
|
||||||
if [ -n "$MINIO" ]; then
|
|
||||||
tar -czf results.tar.gz results/;
|
|
||||||
ci-fairy minio login "$CI_JOB_JWT";
|
|
||||||
ci-fairy minio cp results.tar.gz minio://"$MINIO"/results.tar.gz;
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "hwci: mesa: $RESULT"
|
|
@@ -1,21 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
_XORG_SCRIPT="/xorg-script"
|
|
||||||
_FLAG_FILE="/xorg-started"
|
|
||||||
|
|
||||||
echo "touch ${_FLAG_FILE}; sleep 100000" > "${_XORG_SCRIPT}"
|
|
||||||
if [ "x$1" != "x" ]; then
|
|
||||||
export LD_LIBRARY_PATH="${1}/lib"
|
|
||||||
export LIBGL_DRIVERS_PATH="${1}/lib/dri"
|
|
||||||
fi
|
|
||||||
xinit /bin/sh "${_XORG_SCRIPT}" -- /usr/bin/Xorg vt45 -noreset -s 0 -dpms -logfile /Xorg.0.log &
|
|
||||||
|
|
||||||
# Wait for xorg to be ready for connections.
|
|
||||||
for i in 1 2 3 4 5; do
|
|
||||||
if [ -e "${_FLAG_FILE}" ]; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep 5
|
|
||||||
done
|
|
@@ -1,56 +0,0 @@
|
|||||||
CONFIG_LOCALVERSION_AUTO=y
|
|
||||||
CONFIG_DEBUG_KERNEL=y
|
|
||||||
|
|
||||||
# abootimg with a 'dummy' rootfs fails with root=/dev/nfs
|
|
||||||
CONFIG_BLK_DEV_INITRD=n
|
|
||||||
|
|
||||||
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
|
||||||
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
|
||||||
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
|
||||||
CONFIG_DEVFREQ_GOV_PASSIVE=y
|
|
||||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
|
||||||
|
|
||||||
CONFIG_DRM=y
|
|
||||||
CONFIG_DRM_ROCKCHIP=y
|
|
||||||
CONFIG_DRM_PANFROST=y
|
|
||||||
CONFIG_DRM_LIMA=y
|
|
||||||
CONFIG_DRM_PANEL_SIMPLE=y
|
|
||||||
CONFIG_PWM_CROS_EC=y
|
|
||||||
CONFIG_BACKLIGHT_PWM=y
|
|
||||||
|
|
||||||
CONFIG_ROCKCHIP_CDN_DP=n
|
|
||||||
|
|
||||||
CONFIG_SPI_ROCKCHIP=y
|
|
||||||
CONFIG_PWM_ROCKCHIP=y
|
|
||||||
CONFIG_PHY_ROCKCHIP_DP=y
|
|
||||||
CONFIG_DWMAC_ROCKCHIP=y
|
|
||||||
|
|
||||||
CONFIG_MFD_RK808=y
|
|
||||||
CONFIG_REGULATOR_RK808=y
|
|
||||||
CONFIG_RTC_DRV_RK808=y
|
|
||||||
CONFIG_COMMON_CLK_RK808=y
|
|
||||||
|
|
||||||
CONFIG_REGULATOR_FAN53555=y
|
|
||||||
CONFIG_REGULATOR=y
|
|
||||||
|
|
||||||
CONFIG_REGULATOR_VCTRL=y
|
|
||||||
|
|
||||||
CONFIG_KASAN=n
|
|
||||||
CONFIG_KASAN_INLINE=n
|
|
||||||
CONFIG_STACKTRACE=n
|
|
||||||
|
|
||||||
CONFIG_TMPFS=y
|
|
||||||
|
|
||||||
CONFIG_PROVE_LOCKING=n
|
|
||||||
CONFIG_DEBUG_LOCKDEP=n
|
|
||||||
CONFIG_SOFTLOCKUP_DETECTOR=n
|
|
||||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=n
|
|
||||||
|
|
||||||
CONFIG_FW_LOADER_COMPRESS=y
|
|
||||||
|
|
||||||
CONFIG_USB_USBNET=y
|
|
||||||
CONFIG_NETDEVICES=y
|
|
||||||
CONFIG_USB_NET_DRIVERS=y
|
|
||||||
CONFIG_USB_RTL8152=y
|
|
||||||
CONFIG_USB_NET_AX8817X=y
|
|
||||||
CONFIG_USB_NET_SMSC95XX=y
|
|
@@ -1,148 +0,0 @@
|
|||||||
CONFIG_LOCALVERSION_AUTO=y
|
|
||||||
CONFIG_DEBUG_KERNEL=y
|
|
||||||
|
|
||||||
# abootimg with a 'dummy' rootfs fails with root=/dev/nfs
|
|
||||||
CONFIG_BLK_DEV_INITRD=n
|
|
||||||
|
|
||||||
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
|
||||||
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
|
||||||
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
|
||||||
CONFIG_DEVFREQ_GOV_PASSIVE=y
|
|
||||||
|
|
||||||
CONFIG_DRM=y
|
|
||||||
CONFIG_DRM_ROCKCHIP=y
|
|
||||||
CONFIG_DRM_PANFROST=y
|
|
||||||
CONFIG_DRM_LIMA=y
|
|
||||||
CONFIG_DRM_PANEL_SIMPLE=y
|
|
||||||
CONFIG_DRM_MSM=y
|
|
||||||
CONFIG_DRM_I2C_ADV7511=y
|
|
||||||
CONFIG_DRM_I2C_ADV7533=y
|
|
||||||
CONFIG_PWM_CROS_EC=y
|
|
||||||
CONFIG_BACKLIGHT_PWM=y
|
|
||||||
|
|
||||||
CONFIG_ROCKCHIP_CDN_DP=n
|
|
||||||
|
|
||||||
CONFIG_SPI_ROCKCHIP=y
|
|
||||||
CONFIG_PWM_ROCKCHIP=y
|
|
||||||
CONFIG_PHY_ROCKCHIP_DP=y
|
|
||||||
CONFIG_DWMAC_ROCKCHIP=y
|
|
||||||
CONFIG_STMMAC_ETH=y
|
|
||||||
CONFIG_TYPEC_FUSB302=y
|
|
||||||
CONFIG_TYPEC=y
|
|
||||||
CONFIG_TYPEC_TCPM=y
|
|
||||||
|
|
||||||
# MSM platform bits
|
|
||||||
CONFIG_QCOM_RPMHPD=y
|
|
||||||
CONFIG_QCOM_RPMPD=y
|
|
||||||
CONFIG_SDM_GPUCC_845=y
|
|
||||||
CONFIG_SDM_VIDEOCC_845=y
|
|
||||||
CONFIG_SDM_DISPCC_845=y
|
|
||||||
CONFIG_SDM_LPASSCC_845=y
|
|
||||||
CONFIG_SDM_CAMCC_845=y
|
|
||||||
CONFIG_RESET_QCOM_PDC=y
|
|
||||||
CONFIG_DRM_TI_SN65DSI86=y
|
|
||||||
CONFIG_I2C_QCOM_GENI=y
|
|
||||||
CONFIG_SPI_QCOM_GENI=y
|
|
||||||
CONFIG_PHY_QCOM_QUSB2=y
|
|
||||||
CONFIG_PHY_QCOM_QMP=y
|
|
||||||
CONFIG_QCOM_LLCC=y
|
|
||||||
CONFIG_QCOM_SPMI_TEMP_ALARM=y
|
|
||||||
CONFIG_QCOM_CLK_APCC_MSM8996=y
|
|
||||||
CONFIG_POWER_RESET_QCOM_PON=y
|
|
||||||
CONFIG_RTC_DRV_PM8XXX=y
|
|
||||||
CONFIG_INTERCONNECT=y
|
|
||||||
CONFIG_INTERCONNECT_QCOM=y
|
|
||||||
CONFIG_INTERCONNECT_QCOM_SDM845=y
|
|
||||||
CONFIG_INTERCONNECT_QCOM_MSM8916=y
|
|
||||||
CONFIG_INTERCONNECT_QCOM_OSM_L3=y
|
|
||||||
CONFIG_INTERCONNECT_QCOM_SC7180=y
|
|
||||||
CONFIG_QCOM_WDT=y
|
|
||||||
CONFIG_CRYPTO_DEV_QCOM_RNG=y
|
|
||||||
|
|
||||||
# db410c ethernet
|
|
||||||
CONFIG_USB_RTL8152=y
|
|
||||||
# db820c ethernet
|
|
||||||
CONFIG_ATL1C=y
|
|
||||||
|
|
||||||
CONFIG_ARCH_ALPINE=n
|
|
||||||
CONFIG_ARCH_BCM2835=n
|
|
||||||
CONFIG_ARCH_BCM_IPROC=n
|
|
||||||
CONFIG_ARCH_BERLIN=n
|
|
||||||
CONFIG_ARCH_BRCMSTB=n
|
|
||||||
CONFIG_ARCH_EXYNOS=n
|
|
||||||
CONFIG_ARCH_K3=n
|
|
||||||
CONFIG_ARCH_LAYERSCAPE=n
|
|
||||||
CONFIG_ARCH_LG1K=n
|
|
||||||
CONFIG_ARCH_HISI=n
|
|
||||||
CONFIG_ARCH_MVEBU=n
|
|
||||||
CONFIG_ARCH_SEATTLE=n
|
|
||||||
CONFIG_ARCH_SYNQUACER=n
|
|
||||||
CONFIG_ARCH_RENESAS=n
|
|
||||||
CONFIG_ARCH_R8A774A1=n
|
|
||||||
CONFIG_ARCH_R8A774C0=n
|
|
||||||
CONFIG_ARCH_R8A7795=n
|
|
||||||
CONFIG_ARCH_R8A7796=n
|
|
||||||
CONFIG_ARCH_R8A77965=n
|
|
||||||
CONFIG_ARCH_R8A77970=n
|
|
||||||
CONFIG_ARCH_R8A77980=n
|
|
||||||
CONFIG_ARCH_R8A77990=n
|
|
||||||
CONFIG_ARCH_R8A77995=n
|
|
||||||
CONFIG_ARCH_STRATIX10=n
|
|
||||||
CONFIG_ARCH_TEGRA=n
|
|
||||||
CONFIG_ARCH_SPRD=n
|
|
||||||
CONFIG_ARCH_THUNDER=n
|
|
||||||
CONFIG_ARCH_THUNDER2=n
|
|
||||||
CONFIG_ARCH_UNIPHIER=n
|
|
||||||
CONFIG_ARCH_VEXPRESS=n
|
|
||||||
CONFIG_ARCH_XGENE=n
|
|
||||||
CONFIG_ARCH_ZX=n
|
|
||||||
CONFIG_ARCH_ZYNQMP=n
|
|
||||||
|
|
||||||
# Strip out some stuff we don't need for graphics testing, to reduce
|
|
||||||
# the build.
|
|
||||||
CONFIG_CAN=n
|
|
||||||
CONFIG_WIRELESS=n
|
|
||||||
CONFIG_RFKILL=n
|
|
||||||
CONFIG_WLAN=n
|
|
||||||
|
|
||||||
CONFIG_REGULATOR_FAN53555=y
|
|
||||||
CONFIG_REGULATOR=y
|
|
||||||
|
|
||||||
CONFIG_REGULATOR_VCTRL=y
|
|
||||||
|
|
||||||
CONFIG_KASAN=n
|
|
||||||
CONFIG_KASAN_INLINE=n
|
|
||||||
CONFIG_STACKTRACE=n
|
|
||||||
|
|
||||||
CONFIG_TMPFS=y
|
|
||||||
|
|
||||||
CONFIG_PROVE_LOCKING=n
|
|
||||||
CONFIG_DEBUG_LOCKDEP=n
|
|
||||||
CONFIG_SOFTLOCKUP_DETECTOR=y
|
|
||||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
|
||||||
|
|
||||||
CONFIG_DETECT_HUNG_TASK=y
|
|
||||||
|
|
||||||
CONFIG_FW_LOADER_COMPRESS=y
|
|
||||||
CONFIG_FW_LOADER_USER_HELPER=n
|
|
||||||
|
|
||||||
CONFIG_USB_USBNET=y
|
|
||||||
CONFIG_NETDEVICES=y
|
|
||||||
CONFIG_USB_NET_DRIVERS=y
|
|
||||||
CONFIG_USB_RTL8152=y
|
|
||||||
CONFIG_USB_NET_AX8817X=y
|
|
||||||
CONFIG_USB_NET_SMSC95XX=y
|
|
||||||
|
|
||||||
# For amlogic
|
|
||||||
CONFIG_MESON_GXL_PHY=y
|
|
||||||
CONFIG_MDIO_BUS_MUX_MESON_G12A=y
|
|
||||||
|
|
||||||
# For Mediatek
|
|
||||||
CONFIG_DRM_MEDIATEK=y
|
|
||||||
CONFIG_PWM_MEDIATEK=y
|
|
||||||
CONFIG_DRM_MEDIATEK_HDMI=y
|
|
||||||
CONFIG_GNSS_MTK_SERIAL=y
|
|
||||||
CONFIG_HW_RANDOM_MTK=y
|
|
||||||
CONFIG_MTK_DEVAPC=y
|
|
||||||
CONFIG_PWM_MTK_DISP=y
|
|
||||||
CONFIG_MTK_CMDQ=y
|
|
74
.gitlab-ci/container/arm_build.sh
Normal file
74
.gitlab-ci/container/arm_build.sh
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -o xtrace
|
||||||
|
|
||||||
|
############### Install packages for building
|
||||||
|
apt-get -y install ca-certificates
|
||||||
|
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||||
|
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||||
|
dpkg --add-architecture armhf
|
||||||
|
apt-get update
|
||||||
|
apt-get -y install \
|
||||||
|
bc \
|
||||||
|
bison \
|
||||||
|
ccache \
|
||||||
|
cmake \
|
||||||
|
cpio \
|
||||||
|
crossbuild-essential-armhf \
|
||||||
|
debootstrap \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
lavacli \
|
||||||
|
libdrm-dev:armhf \
|
||||||
|
libegl1-mesa-dev \
|
||||||
|
libegl1-mesa-dev:armhf \
|
||||||
|
libelf-dev \
|
||||||
|
libelf-dev:armhf \
|
||||||
|
libexpat1-dev \
|
||||||
|
libexpat1-dev:armhf \
|
||||||
|
libgles2-mesa-dev \
|
||||||
|
libgles2-mesa-dev:armhf \
|
||||||
|
libpng-dev \
|
||||||
|
libpng-dev:armhf \
|
||||||
|
libssl-dev \
|
||||||
|
libvulkan-dev \
|
||||||
|
libvulkan-dev:armhf \
|
||||||
|
llvm-7-dev:armhf \
|
||||||
|
llvm-8-dev \
|
||||||
|
meson \
|
||||||
|
pkg-config \
|
||||||
|
python \
|
||||||
|
python3-mako \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
zlib1g-dev
|
||||||
|
|
||||||
|
# dependencies where we want a specific version
|
||||||
|
export LIBDRM_VERSION=libdrm-2.4.100
|
||||||
|
|
||||||
|
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
||||||
|
tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
|
||||||
|
cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd ..
|
||||||
|
rm -rf $LIBDRM_VERSION
|
||||||
|
|
||||||
|
############### Generate cross build file for Meson
|
||||||
|
|
||||||
|
cross_file="/cross_file-armhf.txt"
|
||||||
|
/usr/share/meson/debcrossgen --arch armhf -o "$cross_file"
|
||||||
|
# Explicitly set ccache path for cross compilers
|
||||||
|
sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
|
||||||
|
# Don't need wrapper for armhf executables
|
||||||
|
sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
|
||||||
|
|
||||||
|
############### Generate kernel, ramdisk, test suites, etc for LAVA jobs
|
||||||
|
|
||||||
|
DEBIAN_ARCH=arm64 . .gitlab-ci/container/lava_arm.sh
|
||||||
|
DEBIAN_ARCH=armhf . .gitlab-ci/container/lava_arm.sh
|
||||||
|
|
||||||
|
apt-get purge -y \
|
||||||
|
wget
|
||||||
|
|
||||||
|
apt-get autoremove -y --purge
|
64
.gitlab-ci/container/arm_test.sh
Normal file
64
.gitlab-ci/container/arm_test.sh
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -o xtrace
|
||||||
|
|
||||||
|
############### Install packages for building
|
||||||
|
apt-get -y install ca-certificates
|
||||||
|
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||||
|
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||||
|
apt-get update
|
||||||
|
apt-get -y install \
|
||||||
|
bzip2 \
|
||||||
|
cmake \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
libc6-dev \
|
||||||
|
libdrm-nouveau2 \
|
||||||
|
libexpat1 \
|
||||||
|
libgbm-dev \
|
||||||
|
libgbm-dev \
|
||||||
|
libgles2-mesa-dev \
|
||||||
|
libllvm8 \
|
||||||
|
libpng16-16 \
|
||||||
|
libpng-dev \
|
||||||
|
libvulkan-dev \
|
||||||
|
libvulkan1 \
|
||||||
|
meson \
|
||||||
|
netcat \
|
||||||
|
pkg-config \
|
||||||
|
procps \
|
||||||
|
python \
|
||||||
|
waffle-utils \
|
||||||
|
wget \
|
||||||
|
zlib1g
|
||||||
|
|
||||||
|
############### Build dEQP runner
|
||||||
|
|
||||||
|
. .gitlab-ci/build-cts-runner.sh
|
||||||
|
|
||||||
|
############### Build dEQP GL
|
||||||
|
|
||||||
|
. .gitlab-ci/build-deqp-gl.sh
|
||||||
|
|
||||||
|
|
||||||
|
############### Uninstall the build software
|
||||||
|
|
||||||
|
apt-get purge -y \
|
||||||
|
bzip2 \
|
||||||
|
cmake \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
libc6-dev \
|
||||||
|
libgbm-dev \
|
||||||
|
libgles2-mesa-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libvulkan-dev \
|
||||||
|
meson \
|
||||||
|
pkg-config \
|
||||||
|
python \
|
||||||
|
wget
|
||||||
|
|
||||||
|
apt-get autoremove -y --purge
|
@@ -1,35 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
# Fetch the arm-built rootfs image and unpack it in our x86 container (saves
|
|
||||||
# network transfer, disk usage, and runtime on test jobs)
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
wget ${ARTIFACTS_URL}/lava-rootfs.tgz -O rootfs.tgz
|
|
||||||
mkdir -p /rootfs-$arch
|
|
||||||
tar -C /rootfs-$arch '--exclude=./dev/*' -zxf rootfs.tgz
|
|
||||||
rm rootfs.tgz
|
|
||||||
|
|
||||||
if [[ $arch == "arm64" ]]; then
|
|
||||||
mkdir -p /baremetal-files
|
|
||||||
pushd /baremetal-files
|
|
||||||
|
|
||||||
wget ${ARTIFACTS_URL}/Image
|
|
||||||
wget ${ARTIFACTS_URL}/Image.gz
|
|
||||||
wget ${ARTIFACTS_URL}/cheza-kernel
|
|
||||||
|
|
||||||
DEVICE_TREES="apq8016-sbc.dtb apq8096-db820c.dtb"
|
|
||||||
|
|
||||||
for DTB in $DEVICE_TREES; do
|
|
||||||
wget ${ARTIFACTS_URL}/$DTB
|
|
||||||
done
|
|
||||||
|
|
||||||
popd
|
|
||||||
fi
|
|
@@ -1,18 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
APITRACE_VERSION="170424754bb46002ba706e16ee5404b61988d74a"
|
|
||||||
|
|
||||||
git clone https://github.com/apitrace/apitrace.git --single-branch --no-checkout /apitrace
|
|
||||||
pushd /apitrace
|
|
||||||
git checkout "$APITRACE_VERSION"
|
|
||||||
git submodule update --init --depth 1 --recursive
|
|
||||||
cmake -S . -B _build -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=False -DENABLE_WAFFLE=on $EXTRA_CMAKE_ARGS
|
|
||||||
ninja -C _build
|
|
||||||
mkdir build
|
|
||||||
cp _build/apitrace build
|
|
||||||
cp _build/eglretrace build
|
|
||||||
${STRIP_CMD:-strip} build/*
|
|
||||||
find . -not -path './build' -not -path './build/*' -delete
|
|
||||||
popd
|
|
@@ -1,50 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
# Pull down repositories that crosvm depends on to cros checkout-like locations.
|
|
||||||
CROS_ROOT=/
|
|
||||||
THIRD_PARTY_ROOT=$CROS_ROOT/third_party
|
|
||||||
mkdir -p $THIRD_PARTY_ROOT
|
|
||||||
AOSP_EXTERNAL_ROOT=$CROS_ROOT/aosp/external
|
|
||||||
mkdir -p $AOSP_EXTERNAL_ROOT
|
|
||||||
PLATFORM2_ROOT=/platform2
|
|
||||||
|
|
||||||
PLATFORM2_COMMIT=2079dd5fcd61f1ac39e2fc16595956617f3f1e9e
|
|
||||||
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/platform2 $PLATFORM2_ROOT
|
|
||||||
pushd $PLATFORM2_ROOT
|
|
||||||
git checkout $PLATFORM2_COMMIT
|
|
||||||
popd
|
|
||||||
|
|
||||||
# minijail does not exist in upstream linux distros.
|
|
||||||
MINIJAIL_COMMIT=5f9e3001c61626d2863dad91248ba8496c3ef511
|
|
||||||
git clone --single-branch --no-checkout https://android.googlesource.com/platform/external/minijail $AOSP_EXTERNAL_ROOT/minijail
|
|
||||||
pushd $AOSP_EXTERNAL_ROOT/minijail
|
|
||||||
git checkout $MINIJAIL_COMMIT
|
|
||||||
make
|
|
||||||
cp libminijail.so /usr/lib/x86_64-linux-gnu/
|
|
||||||
popd
|
|
||||||
|
|
||||||
# Pull the cras library for audio access.
|
|
||||||
ADHD_COMMIT=5068bdd18b51de8f2d5bcff754cdecda80de8f44
|
|
||||||
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/third_party/adhd $THIRD_PARTY_ROOT/adhd
|
|
||||||
pushd $THIRD_PARTY_ROOT/adhd
|
|
||||||
git checkout $ADHD_COMMIT
|
|
||||||
popd
|
|
||||||
|
|
||||||
CROSVM_VERSION=f70350ba51e9631e3b7fe711c0296e041a61a499
|
|
||||||
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/platform/crosvm /platform/crosvm
|
|
||||||
pushd /platform/crosvm
|
|
||||||
git checkout "$CROSVM_VERSION"
|
|
||||||
|
|
||||||
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
|
||||||
-j ${FDO_CI_CONCURRENT:-4} \
|
|
||||||
--locked \
|
|
||||||
--features 'default-no-sandbox gpu x virtio-gpu-next' \
|
|
||||||
--path . \
|
|
||||||
--root /usr/local \
|
|
||||||
$EXTRA_CARGO_ARGS
|
|
||||||
|
|
||||||
popd
|
|
||||||
|
|
||||||
rm -rf $PLATFORM2_ROOT $AOSP_EXTERNAL_ROOT/minijail $THIRD_PARTY_ROOT/adhd /platform/crosvm
|
|
@@ -1,9 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
cargo install --locked deqp-runner \
|
|
||||||
-j ${FDO_CI_CONCURRENT:-4} \
|
|
||||||
--version 0.7.2 \
|
|
||||||
--root /usr/local \
|
|
||||||
$EXTRA_CARGO_ARGS
|
|
@@ -1,80 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
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.2.6.2 \
|
|
||||||
--depth 1 \
|
|
||||||
/VK-GL-CTS
|
|
||||||
pushd /VK-GL-CTS
|
|
||||||
|
|
||||||
# --insecure is due to SSL cert failures hitting sourceforge for zlib and
|
|
||||||
# libpng (sigh). The archives get their checksums checked anyway, and git
|
|
||||||
# always goes through ssh or https.
|
|
||||||
python3 external/fetch_sources.py --insecure
|
|
||||||
|
|
||||||
mkdir -p /deqp
|
|
||||||
|
|
||||||
# Save the testlog stylesheets:
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
cmake -S /VK-GL-CTS -B . -G Ninja \
|
|
||||||
-DDEQP_TARGET=${DEQP_TARGET:-x11_glx} \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
$EXTRA_CMAKE_ARGS
|
|
||||||
ninja
|
|
||||||
|
|
||||||
mv /deqp/modules/egl/deqp-egl-x11 /deqp/modules/egl/deqp-egl
|
|
||||||
|
|
||||||
# Copy out the mustpass lists we want.
|
|
||||||
mkdir /deqp/mustpass
|
|
||||||
cp /VK-GL-CTS/external/vulkancts/mustpass/master/vk-default.txt \
|
|
||||||
/deqp/mustpass/vk-master.txt
|
|
||||||
|
|
||||||
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/.
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
rm -rf /deqp/external/openglcts/modules/gl_cts/data/mustpass
|
|
||||||
rm -rf /deqp/external/openglcts/modules/cts-runner
|
|
||||||
rm -rf /deqp/modules/internal
|
|
||||||
rm -rf /deqp/execserver
|
|
||||||
rm -rf /deqp/framework
|
|
||||||
find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs rm -rf
|
|
||||||
${STRIP_CMD:-strip} external/vulkancts/modules/vulkan/deqp-vk
|
|
||||||
${STRIP_CMD:-strip} external/openglcts/modules/glcts
|
|
||||||
${STRIP_CMD:-strip} modules/*/deqp-*
|
|
||||||
du -sh *
|
|
||||||
rm -rf /VK-GL-CTS
|
|
||||||
popd
|
|
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
git clone https://github.com/ValveSoftware/Fossilize.git
|
|
||||||
cd Fossilize
|
|
||||||
git checkout 72088685d90bc814d14aad5505354ffa8a642789
|
|
||||||
git submodule update --init
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
cmake -S .. -B . -G Ninja -DCMAKE_BUILD_TYPE=Release
|
|
||||||
ninja -C . install
|
|
||||||
cd ../..
|
|
||||||
rm -rf Fossilize
|
|
@@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
GFXRECONSTRUCT_VERSION=3738decc2f4f9ff183818e5ab213a75a79fb7ab1
|
|
||||||
|
|
||||||
git clone https://github.com/LunarG/gfxreconstruct.git --single-branch -b master --no-checkout /gfxreconstruct
|
|
||||||
pushd /gfxreconstruct
|
|
||||||
git checkout "$GFXRECONSTRUCT_VERSION"
|
|
||||||
git submodule update --init
|
|
||||||
git submodule update
|
|
||||||
cmake -S . -B _build -G Ninja -DCMAKE_BUILD_TYPE=Release
|
|
||||||
ninja -C _build gfxrecon-replay gfxrecon-info
|
|
||||||
mkdir -p build/bin
|
|
||||||
install _build/tools/replay/gfxrecon-replay build/bin
|
|
||||||
install _build/tools/info/gfxrecon-info build/bin
|
|
||||||
strip build/bin/*
|
|
||||||
find . -not -path './build' -not -path './build/*' -delete
|
|
||||||
popd
|
|
@@ -1,16 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
PARALLEL_DEQP_RUNNER_VERSION=6596b71cf37a7efb4d54acd48c770ed2d4ad6b7e
|
|
||||||
|
|
||||||
git clone https://gitlab.freedesktop.org/mesa/parallel-deqp-runner --single-branch -b master --no-checkout /parallel-deqp-runner
|
|
||||||
pushd /parallel-deqp-runner
|
|
||||||
git checkout "$PARALLEL_DEQP_RUNNER_VERSION"
|
|
||||||
meson . _build
|
|
||||||
ninja -C _build hang-detection
|
|
||||||
mkdir -p build/bin
|
|
||||||
install _build/hang-detection build/bin
|
|
||||||
strip build/bin/*
|
|
||||||
find . -not -path './build' -not -path './build/*' -delete
|
|
||||||
popd
|
|
@@ -1,51 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
mkdir -p 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).
|
|
||||||
# Sneak in some override symlinks during kernel build until we can update
|
|
||||||
# debian (they'll get blown away by the rm of the kernel dir at the end).
|
|
||||||
mkdir -p ld-links
|
|
||||||
for i in /usr/bin/*-ld /usr/bin/ld; do
|
|
||||||
i=`basename $i`
|
|
||||||
ln -sf /usr/bin/$i.bfd ld-links/$i
|
|
||||||
done
|
|
||||||
export PATH=`pwd`/ld-links:$PATH
|
|
||||||
|
|
||||||
export LOCALVERSION="`basename $KERNEL_URL`"
|
|
||||||
./scripts/kconfig/merge_config.sh ${DEFCONFIG} ../.gitlab-ci/container/${KERNEL_ARCH}.config
|
|
||||||
make ${KERNEL_IMAGE_NAME}
|
|
||||||
for image in ${KERNEL_IMAGE_NAME}; do
|
|
||||||
cp arch/${KERNEL_ARCH}/boot/${image} /lava-files/.
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ -n ${DEVICE_TREES} ]]; then
|
|
||||||
make dtbs
|
|
||||||
cp ${DEVICE_TREES} /lava-files/.
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${DEBIAN_ARCH} = "amd64" ]]; then
|
|
||||||
make modules
|
|
||||||
INSTALL_MOD_PATH=/lava-files/rootfs-${DEBIAN_ARCH}/ make modules_install
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${DEBIAN_ARCH} = "arm64" ]]; then
|
|
||||||
make Image.lzma
|
|
||||||
mkimage \
|
|
||||||
-f auto \
|
|
||||||
-A arm \
|
|
||||||
-O linux \
|
|
||||||
-d arch/arm64/boot/Image.lzma \
|
|
||||||
-C lzma\
|
|
||||||
-b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \
|
|
||||||
/lava-files/cheza-kernel
|
|
||||||
KERNEL_IMAGE_NAME+=" cheza-kernel"
|
|
||||||
fi
|
|
||||||
|
|
||||||
popd
|
|
||||||
rm -rf kernel
|
|
||||||
|
|
@@ -1,30 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
export LLVM_CONFIG="llvm-config-11"
|
|
||||||
|
|
||||||
$LLVM_CONFIG --version
|
|
||||||
|
|
||||||
git config --global user.email "mesa@example.com"
|
|
||||||
git config --global user.name "Mesa CI"
|
|
||||||
git clone \
|
|
||||||
https://github.com/llvm/llvm-project \
|
|
||||||
--depth 1 \
|
|
||||||
-b llvmorg-12.0.0-rc3 \
|
|
||||||
/llvm-project
|
|
||||||
|
|
||||||
mkdir /libclc
|
|
||||||
pushd /libclc
|
|
||||||
cmake -S /llvm-project/libclc -B . -G Ninja -DLLVM_CONFIG=$LLVM_CONFIG -DLIBCLC_TARGETS_TO_BUILD="spirv-mesa3d-;spirv64-mesa3d-" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DLLVM_SPIRV=/usr/bin/llvm-spirv
|
|
||||||
ninja
|
|
||||||
ninja install
|
|
||||||
popd
|
|
||||||
|
|
||||||
# workaroud cmake vs debian packaging.
|
|
||||||
mkdir -p /usr/lib/clc
|
|
||||||
ln -s /usr/share/clc/spirv64-mesa3d-.spv /usr/lib/clc/
|
|
||||||
ln -s /usr/share/clc/spirv-mesa3d-.spv /usr/lib/clc/
|
|
||||||
|
|
||||||
du -sh *
|
|
||||||
rm -rf /libclc /llvm-project
|
|
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
export LIBDRM_VERSION=libdrm-2.4.107
|
|
||||||
|
|
||||||
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
|
|
||||||
ninja -C build install
|
|
||||||
cd ..
|
|
||||||
rm -rf $LIBDRM_VERSION
|
|
||||||
|
|
@@ -1,23 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
|
|
||||||
pushd /piglit
|
|
||||||
git checkout 11025faf96df23debbefd3678fe959eaa35a50f0
|
|
||||||
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
|
|
||||||
find -name .git -o -name '*ninja*' -o -iname '*cmake*' -o -name '*.[chao]' | xargs rm -rf
|
|
||||||
rm -rf target_api
|
|
||||||
if [ "x$PIGLIT_BUILD_TARGETS" = "xpiglit_replayer" ]; then
|
|
||||||
find ! -regex "^\.$" \
|
|
||||||
! -regex "^\.\/piglit.*" \
|
|
||||||
! -regex "^\.\/framework.*" \
|
|
||||||
! -regex "^\.\/bin$" \
|
|
||||||
! -regex "^\.\/bin\/replayer\.py" \
|
|
||||||
! -regex "^\.\/templates.*" \
|
|
||||||
! -regex "^\.\/tests$" \
|
|
||||||
! -regex "^\.\/tests\/replay\.py" 2>/dev/null | xargs rm -rf
|
|
||||||
fi
|
|
||||||
popd
|
|
@@ -1,31 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Note that this script is not actually "building" rust, but build- is the
|
|
||||||
# convention for the shared helpers for putting stuff in our containers.
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
# cargo (and rustup) wants to store stuff in $HOME/.cargo, and binaries in
|
|
||||||
# $HOME/.cargo/bin. Make bin a link to a public bin directory so the commands
|
|
||||||
# are just available to all build jobs.
|
|
||||||
mkdir -p $HOME/.cargo
|
|
||||||
ln -s /usr/local/bin $HOME/.cargo/bin
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
# Pick the rust compiler (1.41) available in Debian stable, and pick a specific
|
|
||||||
# snapshot from rustup so the compiler doesn't drift on us.
|
|
||||||
wget https://sh.rustup.rs -O - | \
|
|
||||||
sh -s -- -y --default-toolchain 1.41.1-2020-02-27
|
|
||||||
|
|
||||||
# Set up a config script for cross compiling -- cargo needs your system cc for
|
|
||||||
# linking in cross builds, but doesn't know what you want to use for system cc.
|
|
||||||
cat > /root/.cargo/config <<EOF
|
|
||||||
[target.armv7-unknown-linux-gnueabihf]
|
|
||||||
linker = "arm-linux-gnueabihf-gcc"
|
|
||||||
|
|
||||||
[target.aarch64-unknown-linux-gnu]
|
|
||||||
linker = "aarch64-linux-gnu-gcc"
|
|
||||||
EOF
|
|
@@ -1,20 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
mkdir -p /epoxy
|
|
||||||
pushd /epoxy
|
|
||||||
wget -qO- https://github.com/anholt/libepoxy/releases/download/1.5.8/libepoxy-1.5.8.tar.xz | tar -xJ --strip-components=1
|
|
||||||
meson build/ $EXTRA_MESON_ARGS
|
|
||||||
ninja -C build install
|
|
||||||
popd
|
|
||||||
rm -rf /epoxy
|
|
||||||
|
|
||||||
VIRGLRENDERER_VERSION=08e11a495429c222f150b6d6f8c4936f2f0e0759
|
|
||||||
git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git --single-branch --no-checkout /virglrenderer
|
|
||||||
pushd /virglrenderer
|
|
||||||
git checkout "$VIRGLRENDERER_VERSION"
|
|
||||||
meson build/ $EXTRA_MESON_ARGS
|
|
||||||
ninja -C build install
|
|
||||||
popd
|
|
||||||
rm -rf /virglrenderer
|
|
@@ -1,43 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
VKD3D_PROTON_VERSION="2.3.1"
|
|
||||||
VKD3D_PROTON_COMMIT="3ed3526332f53d7d35cf1b685fa8096b01f26ff0"
|
|
||||||
|
|
||||||
VKD3D_PROTON_DST_DIR="/vkd3d-proton-tests"
|
|
||||||
VKD3D_PROTON_SRC_DIR="/vkd3d-proton-src"
|
|
||||||
VKD3D_PROTON_BUILD_DIR="/vkd3d-proton-$VKD3D_PROTON_VERSION"
|
|
||||||
|
|
||||||
function build_arch {
|
|
||||||
local arch="$1"
|
|
||||||
shift
|
|
||||||
|
|
||||||
meson "$@" \
|
|
||||||
-Denable_tests=true \
|
|
||||||
--buildtype release \
|
|
||||||
--prefix "$VKD3D_PROTON_BUILD_DIR" \
|
|
||||||
--strip \
|
|
||||||
--bindir "x${arch}" \
|
|
||||||
--libdir "x${arch}" \
|
|
||||||
"$VKD3D_PROTON_BUILD_DIR/build.${arch}"
|
|
||||||
|
|
||||||
ninja -C "$VKD3D_PROTON_BUILD_DIR/build.${arch}" install
|
|
||||||
|
|
||||||
install -D -m755 -t "${VKD3D_PROTON_DST_DIR}/x${arch}/bin" "$VKD3D_PROTON_BUILD_DIR/build.${arch}/tests/"*.exe
|
|
||||||
}
|
|
||||||
|
|
||||||
git clone https://github.com/HansKristian-Work/vkd3d-proton.git --single-branch -b "v$VKD3D_PROTON_VERSION" --no-checkout "$VKD3D_PROTON_SRC_DIR"
|
|
||||||
pushd "$VKD3D_PROTON_SRC_DIR"
|
|
||||||
git checkout "$VKD3D_PROTON_COMMIT"
|
|
||||||
git submodule update --init --recursive
|
|
||||||
git submodule update --recursive
|
|
||||||
build_arch 64 --cross-file build-win64.txt
|
|
||||||
build_arch 86 --cross-file build-win32.txt
|
|
||||||
cp "setup_vkd3d_proton.sh" "$VKD3D_PROTON_BUILD_DIR/setup_vkd3d_proton.sh"
|
|
||||||
chmod +x "$VKD3D_PROTON_BUILD_DIR/setup_vkd3d_proton.sh"
|
|
||||||
popd
|
|
||||||
|
|
||||||
"$VKD3D_PROTON_BUILD_DIR"/setup_vkd3d_proton.sh install
|
|
||||||
rm -rf "$VKD3D_PROTON_BUILD_DIR"
|
|
||||||
rm -rf "$VKD3D_PROTON_SRC_DIR"
|
|
@@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if test -f /etc/debian_version; then
|
|
||||||
apt-get autoremove -y --purge
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Clean up any build cache for rust.
|
|
||||||
rm -rf /.cargo
|
|
||||||
|
|
||||||
ccache --show-stats
|
|
@@ -1,36 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if test -f /etc/debian_version; then
|
|
||||||
CCACHE_PATH=/usr/lib/ccache
|
|
||||||
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/mesa/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++"
|
|
||||||
|
|
||||||
# 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
|
|
||||||
# with it with "meson.build:21:0: ERROR: Unable to determine dynamic linker"
|
|
||||||
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' > /usr/local/bin/ninja
|
|
||||||
echo '/usr/bin/ninja -j${FDO_CI_CONCURRENT:-4} "$@"' >> /usr/local/bin/ninja
|
|
||||||
chmod +x /usr/local/bin/ninja
|
|
||||||
|
|
||||||
# Set MAKEFLAGS so that all make invocations in container builds include the
|
|
||||||
# flags (doesn't apply to non-container builds, but we don't run make there)
|
|
||||||
export MAKEFLAGS="-j${FDO_CI_CONCURRENT:-4}"
|
|
@@ -1,35 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
ndk=$1
|
|
||||||
arch=$2
|
|
||||||
cpu_family=$3
|
|
||||||
cpu=$4
|
|
||||||
cross_file="/cross_file-$arch.txt"
|
|
||||||
|
|
||||||
# armv7 has the toolchain split between two names.
|
|
||||||
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
|
|
||||||
# the libEGL and driver symbol tests.
|
|
||||||
|
|
||||||
cat >$cross_file <<EOF
|
|
||||||
[binaries]
|
|
||||||
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', '-static-libstdc++']
|
|
||||||
c_ld = 'lld'
|
|
||||||
cpp_ld = 'lld'
|
|
||||||
strip = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/$arch-strip'
|
|
||||||
pkgconfig = ['/usr/bin/pkg-config']
|
|
||||||
|
|
||||||
[host_machine]
|
|
||||||
system = 'linux'
|
|
||||||
cpu_family = '$cpu_family'
|
|
||||||
cpu = '$cpu'
|
|
||||||
endian = 'little'
|
|
||||||
|
|
||||||
[properties]
|
|
||||||
needs_exe_wrapper = true
|
|
||||||
|
|
||||||
EOF
|
|
@@ -1,38 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Makes a .pc file in the Android NDK for meson to find its libraries.
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
ndk="$1"
|
|
||||||
pc="$2"
|
|
||||||
cflags="$3"
|
|
||||||
libs="$4"
|
|
||||||
version="$5"
|
|
||||||
|
|
||||||
sysroot=$ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot
|
|
||||||
|
|
||||||
for arch in \
|
|
||||||
x86_64-linux-android \
|
|
||||||
i686-linux-android \
|
|
||||||
aarch64-linux-android \
|
|
||||||
arm-linux-androideabi; do
|
|
||||||
pcdir=$sysroot/usr/lib/$arch/pkgconfig
|
|
||||||
mkdir -p $pcdir
|
|
||||||
|
|
||||||
cat >$pcdir/$pc <<EOF
|
|
||||||
prefix=$sysroot
|
|
||||||
exec_prefix=$sysroot
|
|
||||||
libdir=$sysroot/usr/lib/$arch/29
|
|
||||||
sharedlibdir=$sysroot/usr/lib/$arch
|
|
||||||
includedir=$sysroot/usr/include
|
|
||||||
|
|
||||||
Name: zlib
|
|
||||||
Description: zlib compression library
|
|
||||||
Version: $version
|
|
||||||
|
|
||||||
Requires:
|
|
||||||
Libs: -L$sysroot/usr/lib/$arch/29 $libs
|
|
||||||
Cflags: -I$sysroot/usr/include $cflags
|
|
||||||
EOF
|
|
||||||
done
|
|
@@ -1,51 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
arch=$1
|
|
||||||
cross_file="/cross_file-$arch.txt"
|
|
||||||
/usr/share/meson/debcrossgen --arch $arch -o "$cross_file"
|
|
||||||
# Explicitly set ccache path for cross compilers
|
|
||||||
sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
|
|
||||||
if [ "$arch" = "i386" ]; then
|
|
||||||
# Work around a bug in debcrossgen that should be fixed in the next release
|
|
||||||
sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
|
|
||||||
fi
|
|
||||||
# Rely on qemu-user being configured in binfmt_misc on the host
|
|
||||||
sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
|
|
||||||
|
|
||||||
# Add a line for rustc, which debcrossgen is missing.
|
|
||||||
cc=`sed -n 's|c = .\(.*\).|\1|p' < $cross_file`
|
|
||||||
if [[ "$arch" = "arm64" ]]; then
|
|
||||||
rust_target=aarch64-unknown-linux-gnu
|
|
||||||
elif [[ "$arch" = "armhf" ]]; then
|
|
||||||
rust_target=armv7-unknown-linux-gnueabihf
|
|
||||||
elif [[ "$arch" = "i386" ]]; then
|
|
||||||
rust_target=i686-unknown-linux-gnu
|
|
||||||
elif [[ "$arch" = "ppc64el" ]]; then
|
|
||||||
rust_target=powerpc64le-unknown-linux-gnu
|
|
||||||
elif [[ "$arch" = "s390x" ]]; then
|
|
||||||
rust_target=s390x-unknown-linux-gnu
|
|
||||||
else
|
|
||||||
echo "Needs rustc target mapping"
|
|
||||||
fi
|
|
||||||
sed -i -e '/\[binaries\]/a\' -e "rust = ['rustc', '--target=$rust_target', '-C', 'linker=$cc']" "$cross_file"
|
|
||||||
|
|
||||||
# Set up cmake cross compile toolchain file for dEQP builds
|
|
||||||
toolchain_file="/toolchain-$arch.cmake"
|
|
||||||
if [[ "$arch" = "arm64" ]]; then
|
|
||||||
GCC_ARCH="aarch64-linux-gnu"
|
|
||||||
DE_CPU="DE_CPU_ARM_64"
|
|
||||||
CMAKE_ARCH=arm
|
|
||||||
elif [[ "$arch" = "armhf" ]]; then
|
|
||||||
GCC_ARCH="arm-linux-gnueabihf"
|
|
||||||
DE_CPU="DE_CPU_ARM"
|
|
||||||
CMAKE_ARCH=arm
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "$GCC_ARCH" ]]; then
|
|
||||||
echo "set(CMAKE_SYSTEM_NAME Linux)" > "$toolchain_file"
|
|
||||||
echo "set(CMAKE_SYSTEM_PROCESSOR arm)" >> "$toolchain_file"
|
|
||||||
echo "set(CMAKE_C_COMPILER /usr/lib/ccache/$GCC_ARCH-gcc)" >> "$toolchain_file"
|
|
||||||
echo "set(CMAKE_CXX_COMPILER /usr/lib/ccache/$GCC_ARCH-g++)" >> "$toolchain_file"
|
|
||||||
echo "set(ENV{PKG_CONFIG} \"/usr/bin/$GCC_ARCH-pkg-config\")" >> "$toolchain_file"
|
|
||||||
echo "set(DE_CPU $DE_CPU)" >> "$toolchain_file"
|
|
||||||
fi
|
|
@@ -1,268 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
if [ $DEBIAN_ARCH = arm64 ]; then
|
|
||||||
ARCH_PACKAGES="firmware-qcom-media"
|
|
||||||
elif [ $DEBIAN_ARCH = amd64 ]; then
|
|
||||||
ARCH_PACKAGES="firmware-amd-graphics
|
|
||||||
libelf1
|
|
||||||
libllvm11
|
|
||||||
"
|
|
||||||
fi
|
|
||||||
|
|
||||||
INSTALL_CI_FAIRY_PACKAGES="git
|
|
||||||
python3-dev
|
|
||||||
python3-pip
|
|
||||||
python3-setuptools
|
|
||||||
python3-wheel
|
|
||||||
"
|
|
||||||
|
|
||||||
apt-get -y install --no-install-recommends \
|
|
||||||
$ARCH_PACKAGES \
|
|
||||||
$INSTALL_CI_FAIRY_PACKAGES \
|
|
||||||
ca-certificates \
|
|
||||||
firmware-realtek \
|
|
||||||
initramfs-tools \
|
|
||||||
libasan6 \
|
|
||||||
libexpat1 \
|
|
||||||
libpng16-16 \
|
|
||||||
libpython3.9 \
|
|
||||||
libsensors5 \
|
|
||||||
libvulkan1 \
|
|
||||||
libwaffle-1-0 \
|
|
||||||
libx11-6 \
|
|
||||||
libx11-xcb1 \
|
|
||||||
libxcb-dri2-0 \
|
|
||||||
libxcb-dri3-0 \
|
|
||||||
libxcb-glx0 \
|
|
||||||
libxcb-present0 \
|
|
||||||
libxcb-randr0 \
|
|
||||||
libxcb-shm0 \
|
|
||||||
libxcb-sync1 \
|
|
||||||
libxcb-xfixes0 \
|
|
||||||
libxdamage1 \
|
|
||||||
libxext6 \
|
|
||||||
libxfixes3 \
|
|
||||||
libxkbcommon0 \
|
|
||||||
libxrender1 \
|
|
||||||
libxshmfence1 \
|
|
||||||
libxxf86vm1 \
|
|
||||||
netcat-openbsd \
|
|
||||||
python3 \
|
|
||||||
python3-lxml \
|
|
||||||
python3-mako \
|
|
||||||
python3-numpy \
|
|
||||||
python3-packaging \
|
|
||||||
python3-pil \
|
|
||||||
python3-renderdoc \
|
|
||||||
python3-requests \
|
|
||||||
python3-simplejson \
|
|
||||||
python3-yaml \
|
|
||||||
sntp \
|
|
||||||
strace \
|
|
||||||
waffle-utils \
|
|
||||||
wget \
|
|
||||||
xinit \
|
|
||||||
xserver-xorg-core \
|
|
||||||
xz-utils
|
|
||||||
|
|
||||||
# Needed for ci-fairy, this revision is able to upload files to
|
|
||||||
# MinIO and doesn't depend on git
|
|
||||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@0f1abc24c043e63894085a6bd12f14263e8b29eb
|
|
||||||
|
|
||||||
apt-get purge -y \
|
|
||||||
$INSTALL_CI_FAIRY_PACKAGES
|
|
||||||
|
|
||||||
passwd root -d
|
|
||||||
chsh -s /bin/sh
|
|
||||||
|
|
||||||
cat > /init <<EOF
|
|
||||||
#!/bin/sh
|
|
||||||
export PS1=lava-shell:
|
|
||||||
exec sh
|
|
||||||
EOF
|
|
||||||
chmod +x /init
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Strip the image to a small minimal system without removing the debian
|
|
||||||
# toolchain.
|
|
||||||
|
|
||||||
# xz compress firmware so it doesn't waste RAM at runtime on ramdisk systems
|
|
||||||
find /lib/firmware -type f -print0 | \
|
|
||||||
xargs -0r -P4 -n4 xz -T1 -C crc32
|
|
||||||
|
|
||||||
# Copy timezone file and remove tzdata package
|
|
||||||
rm -rf /etc/localtime
|
|
||||||
cp /usr/share/zoneinfo/Etc/UTC /etc/localtime
|
|
||||||
|
|
||||||
UNNEEDED_PACKAGES="
|
|
||||||
libfdisk1
|
|
||||||
"
|
|
||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
# Removing unused packages
|
|
||||||
for PACKAGE in ${UNNEEDED_PACKAGES}
|
|
||||||
do
|
|
||||||
echo ${PACKAGE}
|
|
||||||
if ! apt-get remove --purge --yes "${PACKAGE}"
|
|
||||||
then
|
|
||||||
echo "WARNING: ${PACKAGE} isn't installed"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
apt-get autoremove --yes || true
|
|
||||||
|
|
||||||
# Dropping logs
|
|
||||||
rm -rf /var/log/*
|
|
||||||
|
|
||||||
# Dropping documentation, localization, i18n files, etc
|
|
||||||
rm -rf /usr/share/doc/*
|
|
||||||
rm -rf /usr/share/locale/*
|
|
||||||
rm -rf /usr/share/X11/locale/*
|
|
||||||
rm -rf /usr/share/man
|
|
||||||
rm -rf /usr/share/i18n/*
|
|
||||||
rm -rf /usr/share/info/*
|
|
||||||
rm -rf /usr/share/lintian/*
|
|
||||||
rm -rf /usr/share/common-licenses/*
|
|
||||||
rm -rf /usr/share/mime/*
|
|
||||||
|
|
||||||
# Dropping reportbug scripts
|
|
||||||
rm -rf /usr/share/bug
|
|
||||||
|
|
||||||
# Drop udev hwdb not required on a stripped system
|
|
||||||
rm -rf /lib/udev/hwdb.bin /lib/udev/hwdb.d/*
|
|
||||||
|
|
||||||
# Drop all gconv conversions && binaries
|
|
||||||
rm -rf usr/bin/iconv
|
|
||||||
rm -rf usr/sbin/iconvconfig
|
|
||||||
rm -rf usr/lib/*/gconv/
|
|
||||||
|
|
||||||
# Remove libusb database
|
|
||||||
rm -rf usr/sbin/update-usbids
|
|
||||||
rm -rf var/lib/usbutils/usb.ids
|
|
||||||
rm -rf usr/share/misc/usb.ids
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Crush into a minimal production image to be deployed via some type of image
|
|
||||||
# updating system.
|
|
||||||
# IMPORTANT: The Debian system is not longer functional at this point,
|
|
||||||
# for example, apt and dpkg will stop working
|
|
||||||
|
|
||||||
UNNEEDED_PACKAGES="apt libapt-pkg6.0 "\
|
|
||||||
"ncurses-bin ncurses-base libncursesw6 libncurses6 "\
|
|
||||||
"perl-base "\
|
|
||||||
"debconf libdebconfclient0 "\
|
|
||||||
"e2fsprogs e2fslibs libfdisk1 "\
|
|
||||||
"insserv "\
|
|
||||||
"udev "\
|
|
||||||
"init-system-helpers "\
|
|
||||||
"bash "\
|
|
||||||
"cpio "\
|
|
||||||
"xz-utils "\
|
|
||||||
"passwd "\
|
|
||||||
"libsemanage1 libsemanage-common "\
|
|
||||||
"libsepol1 "\
|
|
||||||
"gpgv "\
|
|
||||||
"hostname "\
|
|
||||||
"adduser "\
|
|
||||||
"debian-archive-keyring "\
|
|
||||||
"libegl1-mesa-dev "\
|
|
||||||
"libegl-mesa0 "\
|
|
||||||
"libgl1-mesa-dev "\
|
|
||||||
"libgl1-mesa-dri "\
|
|
||||||
"libglapi-mesa "\
|
|
||||||
"libgles2-mesa-dev "\
|
|
||||||
"libglx-mesa0 "\
|
|
||||||
"mesa-common-dev "\
|
|
||||||
|
|
||||||
# Removing unneeded packages
|
|
||||||
for PACKAGE in ${UNNEEDED_PACKAGES}
|
|
||||||
do
|
|
||||||
echo "Forcing removal of ${PACKAGE}"
|
|
||||||
if ! dpkg --purge --force-remove-essential --force-depends "${PACKAGE}"
|
|
||||||
then
|
|
||||||
echo "WARNING: ${PACKAGE} isn't installed"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Show what's left package-wise before dropping dpkg itself
|
|
||||||
COLUMNS=300 dpkg-query -W --showformat='${Installed-Size;10}\t${Package}\n' | sort -k1,1n
|
|
||||||
|
|
||||||
# Drop dpkg
|
|
||||||
dpkg --purge --force-remove-essential --force-depends dpkg
|
|
||||||
|
|
||||||
# No apt or dpkg, no need for its configuration archives
|
|
||||||
rm -rf etc/apt
|
|
||||||
rm -rf etc/dpkg
|
|
||||||
|
|
||||||
# Drop directories not part of ostree
|
|
||||||
# Note that /var needs to exist as ostree bind mounts the deployment /var over
|
|
||||||
# it
|
|
||||||
rm -rf var/* opt srv share
|
|
||||||
|
|
||||||
# ca-certificates are in /etc drop the source
|
|
||||||
rm -rf usr/share/ca-certificates
|
|
||||||
|
|
||||||
# No bash, no need for completions
|
|
||||||
rm -rf usr/share/bash-completion
|
|
||||||
|
|
||||||
# No zsh, no need for comletions
|
|
||||||
rm -rf usr/share/zsh/vendor-completions
|
|
||||||
|
|
||||||
# drop gcc python helpers
|
|
||||||
rm -rf usr/share/gcc
|
|
||||||
|
|
||||||
# Drop sysvinit leftovers
|
|
||||||
rm -rf etc/init.d
|
|
||||||
rm -rf etc/rc[0-6S].d
|
|
||||||
|
|
||||||
# Drop upstart helpers
|
|
||||||
rm -rf etc/init
|
|
||||||
|
|
||||||
# Various xtables helpers
|
|
||||||
rm -rf usr/lib/xtables
|
|
||||||
|
|
||||||
# Drop all locales
|
|
||||||
# TODO: only remaining locale is actually "C". Should we really remove it?
|
|
||||||
rm -rf usr/lib/locale/*
|
|
||||||
|
|
||||||
# partition helpers
|
|
||||||
rm -rf usr/sbin/*fdisk
|
|
||||||
|
|
||||||
# local compiler
|
|
||||||
rm -rf usr/bin/localedef
|
|
||||||
|
|
||||||
# Systemd dns resolver
|
|
||||||
find usr etc -name '*systemd-resolve*' -prune -exec rm -r {} \;
|
|
||||||
|
|
||||||
# Systemd network configuration
|
|
||||||
find usr etc -name '*networkd*' -prune -exec rm -r {} \;
|
|
||||||
|
|
||||||
# systemd ntp client
|
|
||||||
find usr etc -name '*timesyncd*' -prune -exec rm -r {} \;
|
|
||||||
|
|
||||||
# systemd hw database manager
|
|
||||||
find usr etc -name '*systemd-hwdb*' -prune -exec rm -r {} \;
|
|
||||||
|
|
||||||
# No need for fuse
|
|
||||||
find usr etc -name '*fuse*' -prune -exec rm -r {} \;
|
|
||||||
|
|
||||||
# lsb init function leftovers
|
|
||||||
rm -rf usr/lib/lsb
|
|
||||||
|
|
||||||
# Only needed when adding libraries
|
|
||||||
rm -rf usr/sbin/ldconfig*
|
|
||||||
|
|
||||||
# Games, unused
|
|
||||||
rmdir usr/games
|
|
||||||
|
|
||||||
# Remove pam module to authenticate against a DB
|
|
||||||
# plus libdb-5.3.so that is only used by this pam module
|
|
||||||
rm -rf usr/lib/*/security/pam_userdb.so
|
|
||||||
rm -rf usr/lib/*/libdb-5.3.so
|
|
||||||
|
|
||||||
# remove NSS support for nis, nisplus and hesiod
|
|
||||||
rm -rf usr/lib/*/libnss_hesiod*
|
|
||||||
rm -rf usr/lib/*/libnss_nis*
|
|
@@ -1,79 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
# Ephemeral packages (installed for this script and removed again at the end)
|
|
||||||
STABLE_EPHEMERAL=" \
|
|
||||||
"
|
|
||||||
|
|
||||||
dpkg --add-architecture $arch
|
|
||||||
apt-get update
|
|
||||||
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
$STABLE_EPHEMERAL \
|
|
||||||
crossbuild-essential-$arch \
|
|
||||||
libelf-dev:$arch \
|
|
||||||
libexpat1-dev:$arch \
|
|
||||||
libpciaccess-dev:$arch \
|
|
||||||
libstdc++6:$arch \
|
|
||||||
libvulkan-dev:$arch \
|
|
||||||
libx11-dev:$arch \
|
|
||||||
libx11-xcb-dev:$arch \
|
|
||||||
libxcb-dri2-0-dev:$arch \
|
|
||||||
libxcb-dri3-dev:$arch \
|
|
||||||
libxcb-glx0-dev:$arch \
|
|
||||||
libxcb-present-dev:$arch \
|
|
||||||
libxcb-randr0-dev:$arch \
|
|
||||||
libxcb-shm0-dev:$arch \
|
|
||||||
libxcb-xfixes0-dev:$arch \
|
|
||||||
libxdamage-dev:$arch \
|
|
||||||
libxext-dev:$arch \
|
|
||||||
libxrandr-dev:$arch \
|
|
||||||
libxshmfence-dev:$arch \
|
|
||||||
libxxf86vm-dev:$arch \
|
|
||||||
wget
|
|
||||||
|
|
||||||
if [[ $arch != "armhf" ]]; then
|
|
||||||
if [[ $arch == "s390x" ]]; then
|
|
||||||
LLVM=9
|
|
||||||
else
|
|
||||||
LLVM=11
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
libclang-cpp${LLVM}:$arch \
|
|
||||||
libffi-dev:$arch \
|
|
||||||
libgcc-s1:$arch \
|
|
||||||
libtinfo-dev:$arch \
|
|
||||||
libz3-dev:$arch \
|
|
||||||
llvm-${LLVM}:$arch \
|
|
||||||
zlib1g
|
|
||||||
fi
|
|
||||||
|
|
||||||
. .gitlab-ci/container/create-cross-file.sh $arch
|
|
||||||
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_pre_build.sh
|
|
||||||
|
|
||||||
|
|
||||||
# dependencies where we want a specific version
|
|
||||||
EXTRA_MESON_ARGS="--cross-file=/cross_file-${arch}.txt -D libdir=lib/$(dpkg-architecture -A $arch -qDEB_TARGET_MULTIARCH)"
|
|
||||||
. .gitlab-ci/container/build-libdrm.sh
|
|
||||||
|
|
||||||
apt-get purge -y \
|
|
||||||
$STABLE_EPHEMERAL
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_post_build.sh
|
|
||||||
|
|
||||||
# This needs to be done after container_post_build.sh, or apt-get breaks in there
|
|
||||||
if [[ $arch != "armhf" ]]; then
|
|
||||||
apt-get download llvm-${LLVM}-{dev,tools}:$arch
|
|
||||||
dpkg -i --force-depends llvm-${LLVM}-*_${arch}.deb
|
|
||||||
rm llvm-${LLVM}-*_${arch}.deb
|
|
||||||
fi
|
|
@@ -1,60 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
EPHEMERAL="\
|
|
||||||
rdfind \
|
|
||||||
unzip \
|
|
||||||
"
|
|
||||||
|
|
||||||
apt-get install -y --no-remove $EPHEMERAL
|
|
||||||
|
|
||||||
# Fetch the NDK and extract just the toolchain we want.
|
|
||||||
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 /android-ndk-r21d/
|
|
||||||
# Drop some large tools we won't use in this build.
|
|
||||||
find /android-ndk-r21d/ -type f | egrep -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"
|
|
||||||
|
|
||||||
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.102
|
|
||||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.xz
|
|
||||||
tar -xf $LIBDRM_VERSION.tar.xz && rm $LIBDRM_VERSION.tar.xz
|
|
||||||
|
|
||||||
for arch in \
|
|
||||||
x86_64-linux-android \
|
|
||||||
i686-linux-android \
|
|
||||||
aarch64-linux-android \
|
|
||||||
arm-linux-androideabi ; do
|
|
||||||
|
|
||||||
cd $LIBDRM_VERSION
|
|
||||||
rm -rf build-$arch
|
|
||||||
meson build-$arch \
|
|
||||||
--cross-file=/cross_file-$arch.txt \
|
|
||||||
--libdir=lib/$arch \
|
|
||||||
-Dlibkms=false \
|
|
||||||
-Dnouveau=false \
|
|
||||||
-Dvc4=false \
|
|
||||||
-Detnaviv=false \
|
|
||||||
-Dfreedreno=false \
|
|
||||||
-Dintel=false \
|
|
||||||
-Dcairo-tests=false
|
|
||||||
ninja -C build-$arch install
|
|
||||||
cd ..
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -rf $LIBDRM_VERSION
|
|
||||||
|
|
||||||
apt-get purge -y $EPHEMERAL
|
|
@@ -1,72 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
apt-get -y install ca-certificates
|
|
||||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
|
||||||
echo 'deb https://deb.debian.org/debian buster main' >/etc/apt/sources.list.d/buster.list
|
|
||||||
apt-get update
|
|
||||||
|
|
||||||
apt-get -y install \
|
|
||||||
abootimg \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
bc \
|
|
||||||
bison \
|
|
||||||
ccache \
|
|
||||||
cmake \
|
|
||||||
debootstrap \
|
|
||||||
fastboot \
|
|
||||||
flex \
|
|
||||||
g++ \
|
|
||||||
git \
|
|
||||||
kmod \
|
|
||||||
libasan6 \
|
|
||||||
libdrm-dev \
|
|
||||||
libelf-dev \
|
|
||||||
libexpat1-dev \
|
|
||||||
libx11-dev \
|
|
||||||
libx11-xcb-dev \
|
|
||||||
libxcb-dri2-0-dev \
|
|
||||||
libxcb-dri3-dev \
|
|
||||||
libxcb-glx0-dev \
|
|
||||||
libxcb-present-dev \
|
|
||||||
libxcb-randr0-dev \
|
|
||||||
libxcb-shm0-dev \
|
|
||||||
libxcb-xfixes0-dev \
|
|
||||||
libxdamage-dev \
|
|
||||||
libxext-dev \
|
|
||||||
libxrandr-dev \
|
|
||||||
libxshmfence-dev \
|
|
||||||
libxxf86vm-dev \
|
|
||||||
llvm-11-dev \
|
|
||||||
meson \
|
|
||||||
pkg-config \
|
|
||||||
python-is-python3 \
|
|
||||||
python3-mako \
|
|
||||||
python3-pil \
|
|
||||||
python3-pip \
|
|
||||||
python3-requests \
|
|
||||||
python3-setuptools \
|
|
||||||
u-boot-tools \
|
|
||||||
wget \
|
|
||||||
xz-utils \
|
|
||||||
zlib1g-dev
|
|
||||||
|
|
||||||
# Not available anymore in bullseye
|
|
||||||
apt-get install -y --no-remove -t buster \
|
|
||||||
android-sdk-ext4-utils
|
|
||||||
|
|
||||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@6f5af7e5574509726c79109e3c147cee95e81366
|
|
||||||
|
|
||||||
arch=armhf
|
|
||||||
. .gitlab-ci/container/cross_build.sh
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_pre_build.sh
|
|
||||||
|
|
||||||
# dependencies where we want a specific version
|
|
||||||
EXTRA_MESON_ARGS=
|
|
||||||
. .gitlab-ci/container/build-libdrm.sh
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_post_build.sh
|
|
@@ -1,34 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
############### Install packages for baremetal testing
|
|
||||||
apt-get install -y ca-certificates
|
|
||||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
|
||||||
apt-get update
|
|
||||||
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
abootimg \
|
|
||||||
cpio \
|
|
||||||
fastboot \
|
|
||||||
netcat \
|
|
||||||
procps \
|
|
||||||
python-is-python3 \
|
|
||||||
python3-distutils \
|
|
||||||
python3-minimal \
|
|
||||||
python3-serial \
|
|
||||||
rsync \
|
|
||||||
snmp \
|
|
||||||
wget
|
|
||||||
|
|
||||||
# setup SNMPv2 SMI MIB
|
|
||||||
wget https://raw.githubusercontent.com/net-snmp/net-snmp/master/mibs/SNMPv2-SMI.txt \
|
|
||||||
-O /usr/share/snmp/mibs/SNMPv2-SMI.txt
|
|
||||||
|
|
||||||
arch=arm64 . .gitlab-ci/container/baremetal_build.sh
|
|
||||||
arch=armhf . .gitlab-ci/container/baremetal_build.sh
|
|
||||||
|
|
||||||
# This firmware file from Debian bullseye causes hangs
|
|
||||||
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
|
|
@@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
arch=i386
|
|
||||||
|
|
||||||
. .gitlab-ci/container/cross_build.sh
|
|
@@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
arch=ppc64el
|
|
||||||
|
|
||||||
. .gitlab-ci/container/cross_build.sh
|
|
@@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
arch=s390x
|
|
||||||
|
|
||||||
. .gitlab-ci/container/cross_build.sh
|
|
@@ -1,83 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
apt-get install -y ca-certificates
|
|
||||||
|
|
||||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
|
||||||
|
|
||||||
# Ephemeral packages (installed for this script and removed again at
|
|
||||||
# the end)
|
|
||||||
STABLE_EPHEMERAL=" \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
"
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
$STABLE_EPHEMERAL \
|
|
||||||
bison \
|
|
||||||
ccache \
|
|
||||||
dpkg-cross \
|
|
||||||
flex \
|
|
||||||
g++ \
|
|
||||||
g++-mingw-w64-x86-64 \
|
|
||||||
gcc \
|
|
||||||
git \
|
|
||||||
glslang-tools \
|
|
||||||
kmod \
|
|
||||||
libclang-11-dev \
|
|
||||||
libclang-9-dev \
|
|
||||||
libclc-dev \
|
|
||||||
libelf-dev \
|
|
||||||
libepoxy-dev \
|
|
||||||
libexpat1-dev \
|
|
||||||
libgtk-3-dev \
|
|
||||||
libllvm11 \
|
|
||||||
libllvm9 \
|
|
||||||
libomxil-bellagio-dev \
|
|
||||||
libpciaccess-dev \
|
|
||||||
libunwind-dev \
|
|
||||||
libva-dev \
|
|
||||||
libvdpau-dev \
|
|
||||||
libvulkan-dev \
|
|
||||||
libx11-dev \
|
|
||||||
libx11-xcb-dev \
|
|
||||||
libxext-dev \
|
|
||||||
libxml2-utils \
|
|
||||||
libxrandr-dev \
|
|
||||||
libxrender-dev \
|
|
||||||
libxshmfence-dev \
|
|
||||||
libxvmc-dev \
|
|
||||||
libxxf86vm-dev \
|
|
||||||
libz-mingw-w64-dev \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
pkg-config \
|
|
||||||
python-is-python3 \
|
|
||||||
python3-mako \
|
|
||||||
python3-pil \
|
|
||||||
python3-requests \
|
|
||||||
qemu-user \
|
|
||||||
valgrind \
|
|
||||||
wayland-protocols \
|
|
||||||
wget \
|
|
||||||
wine64 \
|
|
||||||
x11proto-dri2-dev \
|
|
||||||
x11proto-gl-dev \
|
|
||||||
x11proto-randr-dev \
|
|
||||||
xz-utils \
|
|
||||||
zlib1g-dev
|
|
||||||
|
|
||||||
# Needed for ci-fairy, this revision is able to upload files to MinIO
|
|
||||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@6f5af7e5574509726c79109e3c147cee95e81366
|
|
||||||
|
|
||||||
############### Uninstall ephemeral packages
|
|
||||||
|
|
||||||
apt-get purge -y $STABLE_EPHEMERAL
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_post_build.sh
|
|
@@ -1,112 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
# Ephemeral packages (installed for this script and removed again at the end)
|
|
||||||
STABLE_EPHEMERAL=" \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autotools-dev \
|
|
||||||
bzip2 \
|
|
||||||
cmake \
|
|
||||||
libgbm-dev \
|
|
||||||
libtool \
|
|
||||||
python3-pip \
|
|
||||||
"
|
|
||||||
|
|
||||||
# We need multiarch for Wine
|
|
||||||
dpkg --add-architecture i386
|
|
||||||
apt-get update
|
|
||||||
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
$STABLE_EPHEMERAL \
|
|
||||||
clang \
|
|
||||||
libasan6 \
|
|
||||||
libarchive-dev \
|
|
||||||
libclang-cpp11-dev \
|
|
||||||
libglvnd-dev \
|
|
||||||
libllvmspirvlib-dev \
|
|
||||||
liblua5.3-dev \
|
|
||||||
libxcb-dri2-0-dev \
|
|
||||||
libxcb-dri3-dev \
|
|
||||||
libxcb-glx0-dev \
|
|
||||||
libxcb-present-dev \
|
|
||||||
libxcb-randr0-dev \
|
|
||||||
libxcb-shm0-dev \
|
|
||||||
libxcb-sync-dev \
|
|
||||||
libxcb-xfixes0-dev \
|
|
||||||
libxcb1-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
llvm-11-dev \
|
|
||||||
llvm-9-dev \
|
|
||||||
ocl-icd-opencl-dev \
|
|
||||||
procps \
|
|
||||||
spirv-tools \
|
|
||||||
strace \
|
|
||||||
time \
|
|
||||||
wine \
|
|
||||||
wine32
|
|
||||||
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_pre_build.sh
|
|
||||||
|
|
||||||
|
|
||||||
# Debian's pkg-config wrapers for mingw are broken, and there's no sign that
|
|
||||||
# they're going to be fixed, so we'll just have to fix it ourselves
|
|
||||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=930492
|
|
||||||
cat >/usr/local/bin/x86_64-w64-mingw32-pkg-config <<EOF
|
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
PKG_CONFIG_LIBDIR=/usr/x86_64-w64-mingw32/lib/pkgconfig pkg-config \$@
|
|
||||||
EOF
|
|
||||||
chmod +x /usr/local/bin/x86_64-w64-mingw32-pkg-config
|
|
||||||
|
|
||||||
|
|
||||||
# dependencies where we want a specific version
|
|
||||||
export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
|
||||||
export WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
|
|
||||||
|
|
||||||
export XORGMACROS_VERSION=util-macros-1.19.0
|
|
||||||
export LIBWAYLAND_VERSION=wayland-1.18.0
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-libdrm.sh
|
|
||||||
|
|
||||||
wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
|
|
||||||
tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
|
|
||||||
cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
|
|
||||||
rm -rf $LIBWAYLAND_VERSION
|
|
||||||
|
|
||||||
|
|
||||||
pushd /usr/local
|
|
||||||
git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
|
|
||||||
rm -rf shader-db/.git
|
|
||||||
cd shader-db
|
|
||||||
make
|
|
||||||
popd
|
|
||||||
|
|
||||||
git clone https://github.com/microsoft/DirectX-Headers -b v1.0.1 --depth 1
|
|
||||||
pushd DirectX-Headers
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
meson .. --backend=ninja --buildtype=release -Dbuild-test=false
|
|
||||||
ninja
|
|
||||||
ninja install
|
|
||||||
popd
|
|
||||||
rm -rf DirectX-Headers
|
|
||||||
|
|
||||||
pip3 install git+https://git.lavasoftware.org/lava/lavacli@3db3ddc45e5358908bc6a17448059ea2340492b7
|
|
||||||
|
|
||||||
############### Uninstall the build software
|
|
||||||
|
|
||||||
apt-get purge -y \
|
|
||||||
$STABLE_EPHEMERAL
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_post_build.sh
|
|
@@ -1,71 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
apt-get install -y ca-certificates
|
|
||||||
|
|
||||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
|
||||||
|
|
||||||
# Ephemeral packages (installed for this script and removed again at
|
|
||||||
# the end)
|
|
||||||
STABLE_EPHEMERAL=" \
|
|
||||||
cargo \
|
|
||||||
python3-dev \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
"
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
apt-get dist-upgrade -y
|
|
||||||
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
git \
|
|
||||||
git-lfs \
|
|
||||||
libasan6 \
|
|
||||||
libexpat1 \
|
|
||||||
libllvm11 \
|
|
||||||
libllvm9 \
|
|
||||||
liblz4-1 \
|
|
||||||
libpng16-16 \
|
|
||||||
libpython3.9 \
|
|
||||||
libvulkan1 \
|
|
||||||
libwayland-client0 \
|
|
||||||
libwayland-server0 \
|
|
||||||
libxcb-ewmh2 \
|
|
||||||
libxcb-randr0 \
|
|
||||||
libxcb-xfixes0 \
|
|
||||||
libxkbcommon0 \
|
|
||||||
libxrandr2 \
|
|
||||||
libxrender1 \
|
|
||||||
python-is-python3 \
|
|
||||||
python3-mako \
|
|
||||||
python3-numpy \
|
|
||||||
python3-packaging \
|
|
||||||
python3-pil \
|
|
||||||
python3-requests \
|
|
||||||
python3-six \
|
|
||||||
python3-yaml \
|
|
||||||
vulkan-tools \
|
|
||||||
waffle-utils \
|
|
||||||
xauth \
|
|
||||||
xvfb \
|
|
||||||
zlib1g
|
|
||||||
|
|
||||||
apt-get install -y --no-install-recommends \
|
|
||||||
$STABLE_EPHEMERAL
|
|
||||||
|
|
||||||
# Needed for ci-fairy, this revision is able to upload files to MinIO
|
|
||||||
# and doesn't depend on git
|
|
||||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@0f1abc24c043e63894085a6bd12f14263e8b29eb
|
|
||||||
|
|
||||||
############### Build dEQP runner
|
|
||||||
. .gitlab-ci/container/build-deqp-runner.sh
|
|
||||||
rm -rf ~/.cargo
|
|
||||||
|
|
||||||
apt-get purge -y $STABLE_EPHEMERAL
|
|
||||||
|
|
||||||
apt-get autoremove -y --purge
|
|
@@ -1,122 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
# Ephemeral packages (installed for this script and removed again at the end)
|
|
||||||
STABLE_EPHEMERAL=" \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
bc \
|
|
||||||
bison \
|
|
||||||
bzip2 \
|
|
||||||
cargo \
|
|
||||||
ccache \
|
|
||||||
clang-11 \
|
|
||||||
cmake \
|
|
||||||
flex \
|
|
||||||
g++ \
|
|
||||||
glslang-tools \
|
|
||||||
libasound2-dev \
|
|
||||||
libcap-dev \
|
|
||||||
libclang-cpp11-dev \
|
|
||||||
libelf-dev \
|
|
||||||
libfdt-dev \
|
|
||||||
libgbm-dev \
|
|
||||||
libgles2-mesa-dev \
|
|
||||||
libllvmspirvlib-dev \
|
|
||||||
libpciaccess-dev \
|
|
||||||
libpng-dev \
|
|
||||||
libudev-dev \
|
|
||||||
libvulkan-dev \
|
|
||||||
libwaffle-dev \
|
|
||||||
libwayland-dev \
|
|
||||||
libx11-xcb-dev \
|
|
||||||
libxcb-dri2-0-dev \
|
|
||||||
libxext-dev \
|
|
||||||
libxkbcommon-dev \
|
|
||||||
libxrender-dev \
|
|
||||||
llvm-11-dev \
|
|
||||||
llvm-spirv \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
ocl-icd-opencl-dev \
|
|
||||||
patch \
|
|
||||||
pkg-config \
|
|
||||||
python3-distutils \
|
|
||||||
wayland-protocols \
|
|
||||||
wget \
|
|
||||||
xz-utils \
|
|
||||||
"
|
|
||||||
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
$STABLE_EPHEMERAL \
|
|
||||||
clinfo \
|
|
||||||
inetutils-syslogd \
|
|
||||||
iptables \
|
|
||||||
libclang-common-11-dev \
|
|
||||||
libclang-cpp11 \
|
|
||||||
libcap2 \
|
|
||||||
libegl1 \
|
|
||||||
libfdt1 \
|
|
||||||
libllvmspirvlib11 \
|
|
||||||
libxcb-shm0 \
|
|
||||||
ocl-icd-libopencl1 \
|
|
||||||
python3-lxml \
|
|
||||||
python3-renderdoc \
|
|
||||||
python3-simplejson \
|
|
||||||
spirv-tools \
|
|
||||||
sysvinit-core
|
|
||||||
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_pre_build.sh
|
|
||||||
|
|
||||||
############### Build kernel
|
|
||||||
|
|
||||||
export DEFCONFIG="arch/x86/configs/x86_64_defconfig"
|
|
||||||
export KERNEL_IMAGE_NAME=bzImage
|
|
||||||
export KERNEL_ARCH=x86_64
|
|
||||||
export DEBIAN_ARCH=amd64
|
|
||||||
|
|
||||||
mkdir -p /lava-files/
|
|
||||||
. .gitlab-ci/container/build-kernel.sh
|
|
||||||
|
|
||||||
############### Build libdrm
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-libdrm.sh
|
|
||||||
|
|
||||||
############### Build libclc
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-libclc.sh
|
|
||||||
|
|
||||||
############### Build virglrenderer
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-virglrenderer.sh
|
|
||||||
|
|
||||||
############### Build piglit
|
|
||||||
|
|
||||||
PIGLIT_OPTS="-DPIGLIT_BUILD_CL_TESTS=ON -DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
|
|
||||||
|
|
||||||
############### Build Crosvm
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-crosvm.sh
|
|
||||||
rm -rf /root/.cargo
|
|
||||||
|
|
||||||
############### Build dEQP GL
|
|
||||||
|
|
||||||
DEQP_TARGET=surfaceless . .gitlab-ci/container/build-deqp.sh
|
|
||||||
|
|
||||||
############### Build apitrace
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-apitrace.sh
|
|
||||||
|
|
||||||
############### Uninstall the build software
|
|
||||||
|
|
||||||
ccache --show-stats
|
|
||||||
|
|
||||||
apt-get purge -y \
|
|
||||||
$STABLE_EPHEMERAL
|
|
||||||
|
|
||||||
apt-get autoremove -y --purge
|
|
@@ -1,160 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
# Ephemeral packages (installed for this script and removed again at the end)
|
|
||||||
STABLE_EPHEMERAL=" \
|
|
||||||
ccache \
|
|
||||||
cmake \
|
|
||||||
g++ \
|
|
||||||
g++-mingw-w64-i686-posix \
|
|
||||||
g++-mingw-w64-x86-64-posix \
|
|
||||||
glslang-tools \
|
|
||||||
libgbm-dev \
|
|
||||||
libgles2-mesa-dev \
|
|
||||||
liblz4-dev \
|
|
||||||
libpciaccess-dev \
|
|
||||||
libudev-dev \
|
|
||||||
libvulkan-dev \
|
|
||||||
libwaffle-dev \
|
|
||||||
libwayland-dev \
|
|
||||||
libx11-xcb-dev \
|
|
||||||
libxcb-ewmh-dev \
|
|
||||||
libxcb-keysyms1-dev \
|
|
||||||
libxkbcommon-dev \
|
|
||||||
libxrandr-dev \
|
|
||||||
libxrender-dev \
|
|
||||||
libzstd-dev \
|
|
||||||
meson \
|
|
||||||
mingw-w64-i686-dev \
|
|
||||||
mingw-w64-tools \
|
|
||||||
mingw-w64-x86-64-dev \
|
|
||||||
p7zip \
|
|
||||||
patch \
|
|
||||||
pkg-config \
|
|
||||||
python3-distutils \
|
|
||||||
wget \
|
|
||||||
xz-utils \
|
|
||||||
"
|
|
||||||
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
$STABLE_EPHEMERAL \
|
|
||||||
libxcb-shm0 \
|
|
||||||
python3-lxml \
|
|
||||||
python3-simplejson \
|
|
||||||
xinit \
|
|
||||||
xserver-xorg-video-amdgpu \
|
|
||||||
xserver-xorg-video-ati
|
|
||||||
|
|
||||||
# We need multiarch for Wine
|
|
||||||
dpkg --add-architecture i386
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
wine \
|
|
||||||
wine32 \
|
|
||||||
wine64
|
|
||||||
|
|
||||||
function setup_wine() {
|
|
||||||
export WINEDEBUG="-all"
|
|
||||||
export WINEPREFIX="$1"
|
|
||||||
|
|
||||||
# We don't want crash dialogs
|
|
||||||
cat >crashdialog.reg <<EOF
|
|
||||||
Windows Registry Editor Version 5.00
|
|
||||||
|
|
||||||
[HKEY_CURRENT_USER\Software\Wine\WineDbg]
|
|
||||||
"ShowCrashDialog"=dword:00000000
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Set the wine prefix and disable the crash dialog
|
|
||||||
wine regedit crashdialog.reg
|
|
||||||
rm crashdialog.reg
|
|
||||||
|
|
||||||
# An immediate wine command may fail with: "${WINEPREFIX}: Not a
|
|
||||||
# valid wine prefix." and that is just spit because of checking
|
|
||||||
# the existance of the system.reg file, which fails. Just giving
|
|
||||||
# it a bit more of time for it to be created solves the problem
|
|
||||||
# ...
|
|
||||||
while ! test -f "${WINEPREFIX}/system.reg"; do sleep 1; done
|
|
||||||
}
|
|
||||||
|
|
||||||
############### Install DXVK
|
|
||||||
|
|
||||||
DXVK_VERSION="1.8.1"
|
|
||||||
|
|
||||||
setup_wine "/dxvk-wine64"
|
|
||||||
|
|
||||||
wget "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz"
|
|
||||||
tar xzpf dxvk-"${DXVK_VERSION}".tar.gz
|
|
||||||
dxvk-"${DXVK_VERSION}"/setup_dxvk.sh install
|
|
||||||
rm -rf dxvk-"${DXVK_VERSION}"
|
|
||||||
rm dxvk-"${DXVK_VERSION}".tar.gz
|
|
||||||
|
|
||||||
############### Install Windows' apitrace binaries
|
|
||||||
|
|
||||||
APITRACE_VERSION="10.0"
|
|
||||||
APITRACE_VERSION_DATE=""
|
|
||||||
|
|
||||||
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"
|
|
||||||
mv "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64" /apitrace-msvc-win64
|
|
||||||
rm "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z"
|
|
||||||
|
|
||||||
# Add the apitrace path to the registry
|
|
||||||
wine \
|
|
||||||
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment" \
|
|
||||||
/v Path \
|
|
||||||
/t REG_EXPAND_SZ \
|
|
||||||
/d "C:\windows\system32;C:\windows;C:\windows\system32\wbem;Z:\apitrace-msvc-win64\bin" \
|
|
||||||
/f
|
|
||||||
|
|
||||||
############### Building ...
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_pre_build.sh
|
|
||||||
|
|
||||||
############### Build parallel-deqp-runner's hang-detection tool
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-hang-detection.sh
|
|
||||||
|
|
||||||
############### Build piglit
|
|
||||||
|
|
||||||
PIGLIT_BUILD_TARGETS="piglit_replayer" . .gitlab-ci/container/build-piglit.sh
|
|
||||||
|
|
||||||
############### Build Fossilize
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-fossilize.sh
|
|
||||||
|
|
||||||
############### Build dEQP VK
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-deqp.sh
|
|
||||||
|
|
||||||
############### Build gfxreconstruct
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-gfxreconstruct.sh
|
|
||||||
|
|
||||||
############### Build VKD3D-Proton
|
|
||||||
|
|
||||||
setup_wine "/vkd3d-proton-wine64"
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-vkd3d-proton.sh
|
|
||||||
|
|
||||||
############### Build libdrm
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-libdrm.sh
|
|
||||||
|
|
||||||
############### Uninstall the build software
|
|
||||||
|
|
||||||
ccache --show-stats
|
|
||||||
|
|
||||||
apt-get purge -y \
|
|
||||||
$STABLE_EPHEMERAL
|
|
||||||
|
|
||||||
apt-get autoremove -y --purge
|
|
@@ -1,107 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
|
|
||||||
EPHEMERAL="
|
|
||||||
autoconf
|
|
||||||
automake
|
|
||||||
bzip2
|
|
||||||
git
|
|
||||||
libtool
|
|
||||||
pkgconfig(epoxy)
|
|
||||||
pkgconfig(gbm)
|
|
||||||
unzip
|
|
||||||
wget
|
|
||||||
xz
|
|
||||||
"
|
|
||||||
|
|
||||||
dnf install -y --setopt=install_weak_deps=False \
|
|
||||||
bison \
|
|
||||||
ccache \
|
|
||||||
clang-devel \
|
|
||||||
flex \
|
|
||||||
gcc \
|
|
||||||
gcc-c++ \
|
|
||||||
gettext \
|
|
||||||
kernel-headers \
|
|
||||||
llvm-devel \
|
|
||||||
meson \
|
|
||||||
"pkgconfig(dri2proto)" \
|
|
||||||
"pkgconfig(expat)" \
|
|
||||||
"pkgconfig(glproto)" \
|
|
||||||
"pkgconfig(libclc)" \
|
|
||||||
"pkgconfig(libelf)" \
|
|
||||||
"pkgconfig(libglvnd)" \
|
|
||||||
"pkgconfig(libomxil-bellagio)" \
|
|
||||||
"pkgconfig(libselinux)" \
|
|
||||||
"pkgconfig(libva)" \
|
|
||||||
"pkgconfig(pciaccess)" \
|
|
||||||
"pkgconfig(vdpau)" \
|
|
||||||
"pkgconfig(vulkan)" \
|
|
||||||
"pkgconfig(wayland-egl-backend)" \
|
|
||||||
"pkgconfig(wayland-protocols)" \
|
|
||||||
"pkgconfig(wayland-scanner)" \
|
|
||||||
"pkgconfig(x11)" \
|
|
||||||
"pkgconfig(x11-xcb)" \
|
|
||||||
"pkgconfig(xcb)" \
|
|
||||||
"pkgconfig(xcb-dri2)" \
|
|
||||||
"pkgconfig(xcb-dri3)" \
|
|
||||||
"pkgconfig(xcb-glx)" \
|
|
||||||
"pkgconfig(xcb-present)" \
|
|
||||||
"pkgconfig(xcb-randr)" \
|
|
||||||
"pkgconfig(xcb-sync)" \
|
|
||||||
"pkgconfig(xcb-xfixes)" \
|
|
||||||
"pkgconfig(xdamage)" \
|
|
||||||
"pkgconfig(xext)" \
|
|
||||||
"pkgconfig(xfixes)" \
|
|
||||||
"pkgconfig(xrandr)" \
|
|
||||||
"pkgconfig(xshmfence)" \
|
|
||||||
"pkgconfig(xxf86vm)" \
|
|
||||||
"pkgconfig(zlib)" \
|
|
||||||
python-unversioned-command \
|
|
||||||
python3-devel \
|
|
||||||
python3-mako \
|
|
||||||
python3-devel \
|
|
||||||
python3-mako \
|
|
||||||
vulkan-headers \
|
|
||||||
$EPHEMERAL
|
|
||||||
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_pre_build.sh
|
|
||||||
|
|
||||||
|
|
||||||
# dependencies where we want a specific version
|
|
||||||
export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
|
||||||
export WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
|
|
||||||
|
|
||||||
export XORGMACROS_VERSION=util-macros-1.19.0
|
|
||||||
export LIBWAYLAND_VERSION=wayland-1.18.0
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
. .gitlab-ci/container/build-libdrm.sh
|
|
||||||
|
|
||||||
wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
|
|
||||||
tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
|
|
||||||
cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
|
|
||||||
rm -rf $LIBWAYLAND_VERSION
|
|
||||||
|
|
||||||
|
|
||||||
pushd /usr/local
|
|
||||||
git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
|
|
||||||
rm -rf shader-db/.git
|
|
||||||
cd shader-db
|
|
||||||
make
|
|
||||||
popd
|
|
||||||
|
|
||||||
|
|
||||||
############### Uninstall the build software
|
|
||||||
|
|
||||||
dnf remove -y $EPHEMERAL
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_post_build.sh
|
|
63
.gitlab-ci/container/lava_arm.sh
Normal file
63
.gitlab-ci/container/lava_arm.sh
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -o xtrace
|
||||||
|
|
||||||
|
if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
|
||||||
|
GCC_ARCH="aarch64-linux-gnu"
|
||||||
|
KERNEL_ARCH="arm64"
|
||||||
|
DEFCONFIG="arch/arm64/configs/defconfig"
|
||||||
|
DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb"
|
||||||
|
KERNEL_IMAGE_NAME="Image"
|
||||||
|
else
|
||||||
|
GCC_ARCH="arm-linux-gnueabihf"
|
||||||
|
KERNEL_ARCH="arm"
|
||||||
|
DEFCONFIG="arch/arm/configs/multi_v7_defconfig"
|
||||||
|
DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
|
||||||
|
KERNEL_IMAGE_NAME="zImage"
|
||||||
|
fi
|
||||||
|
|
||||||
|
############### Build dEQP runner
|
||||||
|
if [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
||||||
|
EXTRA_MESON_ARGS="--cross-file /cross_file-armhf.txt"
|
||||||
|
fi
|
||||||
|
. .gitlab-ci/build-cts-runner.sh
|
||||||
|
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin
|
||||||
|
mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
|
||||||
|
|
||||||
|
|
||||||
|
############### Build dEQP
|
||||||
|
EXTRA_CMAKE_ARGS="-DCMAKE_C_COMPILER=${GCC_ARCH}-gcc -DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++"
|
||||||
|
STRIP_CMD="${GCC_ARCH}-strip"
|
||||||
|
. .gitlab-ci/build-deqp-gl.sh
|
||||||
|
mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||||
|
|
||||||
|
|
||||||
|
############### Cross-build kernel
|
||||||
|
KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/v5.5-rc5-panfrost-fixes/linux-v5.5-rc5-panfrost-fixes.tar.gz"
|
||||||
|
|
||||||
|
if [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
||||||
|
export ARCH=${KERNEL_ARCH}
|
||||||
|
export CROSS_COMPILE="${GCC_ARCH}-"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p kernel
|
||||||
|
wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel
|
||||||
|
pushd kernel
|
||||||
|
./scripts/kconfig/merge_config.sh ${DEFCONFIG} ../.gitlab-ci/${KERNEL_ARCH}.config
|
||||||
|
make -j12 ${KERNEL_IMAGE_NAME} dtbs
|
||||||
|
cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /lava-files/.
|
||||||
|
cp ${DEVICE_TREES} /lava-files/.
|
||||||
|
popd
|
||||||
|
rm -rf kernel
|
||||||
|
|
||||||
|
|
||||||
|
############### Create rootfs
|
||||||
|
set +e
|
||||||
|
debootstrap --variant=minbase --arch=${DEBIAN_ARCH} testing /lava-files/rootfs-${DEBIAN_ARCH}/ http://deb.debian.org/debian
|
||||||
|
cat /lava-files/rootfs-${DEBIAN_ARCH}/debootstrap/debootstrap.log
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cp .gitlab-ci/create-rootfs.sh /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||||
|
chroot /lava-files/rootfs-${DEBIAN_ARCH} sh /create-rootfs.sh
|
||||||
|
rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh
|
@@ -1,211 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
check_minio()
|
|
||||||
{
|
|
||||||
MINIO_PATH="${MINIO_HOST}/mesa-lava/$1/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}"
|
|
||||||
if wget -q --method=HEAD "https://${MINIO_PATH}/done"; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# If remote files are up-to-date, skip rebuilding them
|
|
||||||
check_minio "${FDO_UPSTREAM_REPO}"
|
|
||||||
check_minio "${CI_PROJECT_PATH}"
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_pre_build.sh
|
|
||||||
|
|
||||||
# Install rust, which we'll be using for deqp-runner. It will be cleaned up at the end.
|
|
||||||
. .gitlab-ci/container/build-rust.sh
|
|
||||||
|
|
||||||
if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
|
|
||||||
GCC_ARCH="aarch64-linux-gnu"
|
|
||||||
KERNEL_ARCH="arm64"
|
|
||||||
DEFCONFIG="arch/arm64/configs/defconfig"
|
|
||||||
DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb"
|
|
||||||
DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb"
|
|
||||||
DEVICE_TREES+=" arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb"
|
|
||||||
DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb"
|
|
||||||
DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8016-sbc.dtb"
|
|
||||||
DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8096-db820c.dtb"
|
|
||||||
DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dtb"
|
|
||||||
DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-juniper-sku16.dtb"
|
|
||||||
KERNEL_IMAGE_NAME="Image"
|
|
||||||
elif [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
|
||||||
GCC_ARCH="arm-linux-gnueabihf"
|
|
||||||
KERNEL_ARCH="arm"
|
|
||||||
DEFCONFIG="arch/arm/configs/multi_v7_defconfig"
|
|
||||||
DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
|
|
||||||
KERNEL_IMAGE_NAME="zImage"
|
|
||||||
. .gitlab-ci/container/create-cross-file.sh armhf
|
|
||||||
else
|
|
||||||
GCC_ARCH="x86_64-linux-gnu"
|
|
||||||
KERNEL_ARCH="x86_64"
|
|
||||||
DEFCONFIG="arch/x86/configs/x86_64_defconfig"
|
|
||||||
DEVICE_TREES=""
|
|
||||||
KERNEL_IMAGE_NAME="bzImage"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Determine if we're in a cross build.
|
|
||||||
if [[ -e /cross_file-$DEBIAN_ARCH.txt ]]; then
|
|
||||||
EXTRA_MESON_ARGS="--cross-file /cross_file-$DEBIAN_ARCH.txt"
|
|
||||||
EXTRA_CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=/toolchain-$DEBIAN_ARCH.cmake"
|
|
||||||
|
|
||||||
if [ $DEBIAN_ARCH = arm64 ]; then
|
|
||||||
RUST_TARGET="aarch64-unknown-linux-gnu"
|
|
||||||
elif [ $DEBIAN_ARCH = armhf ]; then
|
|
||||||
RUST_TARGET="armv7-unknown-linux-gnueabihf"
|
|
||||||
fi
|
|
||||||
rustup target add $RUST_TARGET
|
|
||||||
export EXTRA_CARGO_ARGS="--target $RUST_TARGET"
|
|
||||||
|
|
||||||
export ARCH=${KERNEL_ARCH}
|
|
||||||
export CROSS_COMPILE="${GCC_ARCH}-"
|
|
||||||
fi
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
automake \
|
|
||||||
bc \
|
|
||||||
cmake \
|
|
||||||
debootstrap \
|
|
||||||
git \
|
|
||||||
glslang-tools \
|
|
||||||
libdrm-dev \
|
|
||||||
libegl1-mesa-dev \
|
|
||||||
libgbm-dev \
|
|
||||||
libgles2-mesa-dev \
|
|
||||||
libpng-dev \
|
|
||||||
libssl-dev \
|
|
||||||
libudev-dev \
|
|
||||||
libvulkan-dev \
|
|
||||||
libwaffle-dev \
|
|
||||||
libwayland-dev \
|
|
||||||
libx11-xcb-dev \
|
|
||||||
libxcb-dri2-0-dev \
|
|
||||||
libxkbcommon-dev \
|
|
||||||
patch \
|
|
||||||
python3-distutils \
|
|
||||||
python3-mako \
|
|
||||||
python3-numpy \
|
|
||||||
python3-serial \
|
|
||||||
wget
|
|
||||||
|
|
||||||
|
|
||||||
if [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
libegl1-mesa-dev:armhf \
|
|
||||||
libelf-dev:armhf \
|
|
||||||
libgbm-dev:armhf \
|
|
||||||
libgles2-mesa-dev:armhf \
|
|
||||||
libpng-dev:armhf \
|
|
||||||
libudev-dev:armhf \
|
|
||||||
libvulkan-dev:armhf \
|
|
||||||
libwaffle-dev:armhf \
|
|
||||||
libwayland-dev:armhf \
|
|
||||||
libx11-xcb-dev:armhf \
|
|
||||||
libxkbcommon-dev:armhf
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
############### Building
|
|
||||||
STRIP_CMD="${GCC_ARCH}-strip"
|
|
||||||
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}
|
|
||||||
|
|
||||||
|
|
||||||
############### Build apitrace
|
|
||||||
. .gitlab-ci/container/build-apitrace.sh
|
|
||||||
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/apitrace
|
|
||||||
mv /apitrace/build /lava-files/rootfs-${DEBIAN_ARCH}/apitrace
|
|
||||||
rm -rf /apitrace
|
|
||||||
|
|
||||||
|
|
||||||
############### Build dEQP runner
|
|
||||||
. .gitlab-ci/container/build-deqp-runner.sh
|
|
||||||
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin
|
|
||||||
mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
|
|
||||||
mv /usr/local/bin/piglit-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
|
|
||||||
|
|
||||||
|
|
||||||
############### Build dEQP
|
|
||||||
DEQP_TARGET=surfaceless . .gitlab-ci/container/build-deqp.sh
|
|
||||||
|
|
||||||
mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
|
|
||||||
|
|
||||||
|
|
||||||
############### Build piglit
|
|
||||||
PIGLIT_OPTS="-DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
|
|
||||||
mv /piglit /lava-files/rootfs-${DEBIAN_ARCH}/.
|
|
||||||
|
|
||||||
|
|
||||||
############### Build libdrm
|
|
||||||
EXTRA_MESON_ARGS+=" -D prefix=/libdrm"
|
|
||||||
. .gitlab-ci/container/build-libdrm.sh
|
|
||||||
|
|
||||||
############### Build kernel
|
|
||||||
. .gitlab-ci/container/build-kernel.sh
|
|
||||||
|
|
||||||
############### Delete rust, since the tests won't be compiling anything.
|
|
||||||
rm -rf /root/.cargo
|
|
||||||
|
|
||||||
############### Create rootfs
|
|
||||||
set +e
|
|
||||||
if ! debootstrap \
|
|
||||||
--variant=minbase \
|
|
||||||
--arch=${DEBIAN_ARCH} \
|
|
||||||
--components main,contrib,non-free \
|
|
||||||
bullseye \
|
|
||||||
/lava-files/rootfs-${DEBIAN_ARCH}/ \
|
|
||||||
http://deb.debian.org/debian; then
|
|
||||||
cat /lava-files/rootfs-${DEBIAN_ARCH}/debootstrap/debootstrap.log
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
set -e
|
|
||||||
|
|
||||||
cp .gitlab-ci/container/create-rootfs.sh /lava-files/rootfs-${DEBIAN_ARCH}/.
|
|
||||||
chroot /lava-files/rootfs-${DEBIAN_ARCH} sh /create-rootfs.sh
|
|
||||||
rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh
|
|
||||||
|
|
||||||
|
|
||||||
############### Install the built libdrm
|
|
||||||
# Dependencies pulled during the creation of the rootfs may overwrite
|
|
||||||
# the built libdrm. Hence, we add it after the rootfs has been already
|
|
||||||
# created.
|
|
||||||
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/lib/$GCC_ARCH
|
|
||||||
find /libdrm/ -name lib\*\.so\* | xargs cp -t /lava-files/rootfs-${DEBIAN_ARCH}/usr/lib/$GCC_ARCH/.
|
|
||||||
rm -rf /libdrm
|
|
||||||
|
|
||||||
|
|
||||||
if [ ${DEBIAN_ARCH} = arm64 ]; then
|
|
||||||
# Make a gzipped copy of the Image for db410c.
|
|
||||||
gzip -k /lava-files/Image
|
|
||||||
KERNEL_IMAGE_NAME+=" Image.gz"
|
|
||||||
fi
|
|
||||||
|
|
||||||
du -ah /lava-files/rootfs-${DEBIAN_ARCH} | sort -h | tail -100
|
|
||||||
pushd /lava-files/rootfs-${DEBIAN_ARCH}
|
|
||||||
tar czf /lava-files/lava-rootfs.tgz .
|
|
||||||
popd
|
|
||||||
|
|
||||||
. .gitlab-ci/container/container_post_build.sh
|
|
||||||
|
|
||||||
############### Upload the files!
|
|
||||||
ci-fairy minio login $CI_JOB_JWT
|
|
||||||
FILES_TO_UPLOAD="lava-rootfs.tgz \
|
|
||||||
$KERNEL_IMAGE_NAME"
|
|
||||||
|
|
||||||
if [[ -n $DEVICE_TREES ]]; then
|
|
||||||
FILES_TO_UPLOAD="$FILES_TO_UPLOAD $(basename -a $DEVICE_TREES)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
for f in $FILES_TO_UPLOAD; do
|
|
||||||
ci-fairy minio cp /lava-files/$f \
|
|
||||||
minio://${MINIO_PATH}/$f
|
|
||||||
done
|
|
||||||
|
|
||||||
touch /lava-files/done
|
|
||||||
ci-fairy minio cp /lava-files/done minio://${MINIO_PATH}/done
|
|
52
.gitlab-ci/container/llvm-snapshot.gpg.key
Normal file
52
.gitlab-ci/container/llvm-snapshot.gpg.key
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: GnuPG v1.4.12 (GNU/Linux)
|
||||||
|
|
||||||
|
mQINBFE9lCwBEADi0WUAApM/mgHJRU8lVkkw0CHsZNpqaQDNaHefD6Rw3S4LxNmM
|
||||||
|
EZaOTkhP200XZM8lVdbfUW9xSjA3oPldc1HG26NjbqqCmWpdo2fb+r7VmU2dq3NM
|
||||||
|
R18ZlKixiLDE6OUfaXWKamZsXb6ITTYmgTO6orQWYrnW6ckYHSeaAkW0wkDAryl2
|
||||||
|
B5v8aoFnQ1rFiVEMo4NGzw4UX+MelF7rxaaregmKVTPiqCOSPJ1McC1dHFN533FY
|
||||||
|
Wh/RVLKWo6npu+owtwYFQW+zyQhKzSIMvNujFRzhIxzxR9Gn87MoLAyfgKEzrbbT
|
||||||
|
DhqqNXTxS4UMUKCQaO93TzetX/EBrRpJj+vP640yio80h4Dr5pAd7+LnKwgpTDk1
|
||||||
|
G88bBXJAcPZnTSKu9I2c6KY4iRNbvRz4i+ZdwwZtdW4nSdl2792L7Sl7Nc44uLL/
|
||||||
|
ZqkKDXEBF6lsX5XpABwyK89S/SbHOytXv9o4puv+65Ac5/UShspQTMSKGZgvDauU
|
||||||
|
cs8kE1U9dPOqVNCYq9Nfwinkf6RxV1k1+gwtclxQuY7UpKXP0hNAXjAiA5KS5Crq
|
||||||
|
7aaJg9q2F4bub0mNU6n7UI6vXguF2n4SEtzPRk6RP+4TiT3bZUsmr+1ktogyOJCc
|
||||||
|
Ha8G5VdL+NBIYQthOcieYCBnTeIH7D3Sp6FYQTYtVbKFzmMK+36ERreL/wARAQAB
|
||||||
|
tD1TeWx2ZXN0cmUgTGVkcnUgLSBEZWJpYW4gTExWTSBwYWNrYWdlcyA8c3lsdmVz
|
||||||
|
dHJlQGRlYmlhbi5vcmc+iQI4BBMBAgAiBQJRPZQsAhsDBgsJCAcDAgYVCAIJCgsE
|
||||||
|
FgIDAQIeAQIXgAAKCRAVz00Yr090Ibx+EADArS/hvkDF8juWMXxh17CgR0WZlHCC
|
||||||
|
9CTBWkg5a0bNN/3bb97cPQt/vIKWjQtkQpav6/5JTVCSx2riL4FHYhH0iuo4iAPR
|
||||||
|
udC7Cvg8g7bSPrKO6tenQZNvQm+tUmBHgFiMBJi92AjZ/Qn1Shg7p9ITivFxpLyX
|
||||||
|
wpmnF1OKyI2Kof2rm4BFwfSWuf8Fvh7kDMRLHv+MlnK/7j/BNpKdozXxLcwoFBmn
|
||||||
|
l0WjpAH3OFF7Pvm1LJdf1DjWKH0Dc3sc6zxtmBR/KHHg6kK4BGQNnFKujcP7TVdv
|
||||||
|
gMYv84kun14pnwjZcqOtN3UJtcx22880DOQzinoMs3Q4w4o05oIF+sSgHViFpc3W
|
||||||
|
R0v+RllnH05vKZo+LDzc83DQVrdwliV12eHxrMQ8UYg88zCbF/cHHnlzZWAJgftg
|
||||||
|
hB08v1BKPgYRUzwJ6VdVqXYcZWEaUJmQAPuAALyZESw94hSo28FAn0/gzEc5uOYx
|
||||||
|
K+xG/lFwgAGYNb3uGM5m0P6LVTfdg6vDwwOeTNIExVk3KVFXeSQef2ZMkhwA7wya
|
||||||
|
KJptkb62wBHFE+o9TUdtMCY6qONxMMdwioRE5BYNwAsS1PnRD2+jtlI0DzvKHt7B
|
||||||
|
MWd8hnoUKhMeZ9TNmo+8CpsAtXZcBho0zPGz/R8NlJhAWpdAZ1CmcPo83EW86Yq7
|
||||||
|
BxQUKnNHcwj2ebkCDQRRPZQsARAA4jxYmbTHwmMjqSizlMJYNuGOpIidEdx9zQ5g
|
||||||
|
zOr431/VfWq4S+VhMDhs15j9lyml0y4ok215VRFwrAREDg6UPMr7ajLmBQGau0Fc
|
||||||
|
bvZJ90l4NjXp5p0NEE/qOb9UEHT7EGkEhaZ1ekkWFTWCgsy7rRXfZLxB6sk7pzLC
|
||||||
|
DshyW3zjIakWAnpQ5j5obiDy708pReAuGB94NSyb1HoW/xGsGgvvCw4r0w3xPStw
|
||||||
|
F1PhmScE6NTBIfLliea3pl8vhKPlCh54Hk7I8QGjo1ETlRP4Qll1ZxHJ8u25f/ta
|
||||||
|
RES2Aw8Hi7j0EVcZ6MT9JWTI83yUcnUlZPZS2HyeWcUj+8nUC8W4N8An+aNps9l/
|
||||||
|
21inIl2TbGo3Yn1JQLnA1YCoGwC34g8QZTJhElEQBN0X29ayWW6OdFx8MDvllbBV
|
||||||
|
ymmKq2lK1U55mQTfDli7S3vfGz9Gp/oQwZ8bQpOeUkc5hbZszYwP4RX+68xDPfn+
|
||||||
|
M9udl+qW9wu+LyePbW6HX90LmkhNkkY2ZzUPRPDHZANU5btaPXc2H7edX4y4maQa
|
||||||
|
xenqD0lGh9LGz/mps4HEZtCI5CY8o0uCMF3lT0XfXhuLksr7Pxv57yue8LLTItOJ
|
||||||
|
d9Hmzp9G97SRYYeqU+8lyNXtU2PdrLLq7QHkzrsloG78lCpQcalHGACJzrlUWVP/
|
||||||
|
fN3Ht3kAEQEAAYkCHwQYAQIACQUCUT2ULAIbDAAKCRAVz00Yr090IbhWEADbr50X
|
||||||
|
OEXMIMGRLe+YMjeMX9NG4jxs0jZaWHc/WrGR+CCSUb9r6aPXeLo+45949uEfdSsB
|
||||||
|
pbaEdNWxF5Vr1CSjuO5siIlgDjmT655voXo67xVpEN4HhMrxugDJfCa6z97P0+ML
|
||||||
|
PdDxim57uNqkam9XIq9hKQaurxMAECDPmlEXI4QT3eu5qw5/knMzDMZj4Vi6hovL
|
||||||
|
wvvAeLHO/jsyfIdNmhBGU2RWCEZ9uo/MeerPHtRPfg74g+9PPfP6nyHD2Wes6yGd
|
||||||
|
oVQwtPNAQD6Cj7EaA2xdZYLJ7/jW6yiPu98FFWP74FN2dlyEA2uVziLsfBrgpS4l
|
||||||
|
tVOlrO2YzkkqUGrybzbLpj6eeHx+Cd7wcjI8CalsqtL6cG8cUEjtWQUHyTbQWAgG
|
||||||
|
5VPEgIAVhJ6RTZ26i/G+4J8neKyRs4vz+57UGwY6zI4AB1ZcWGEE3Bf+CDEDgmnP
|
||||||
|
LSwbnHefK9IljT9XU98PelSryUO/5UPw7leE0akXKB4DtekToO226px1VnGp3Bov
|
||||||
|
1GBGvpHvL2WizEwdk+nfk8LtrLzej+9FtIcq3uIrYnsac47Pf7p0otcFeTJTjSq3
|
||||||
|
krCaoG4Hx0zGQG2ZFpHrSrZTVy6lxvIdfi0beMgY6h78p6M9eYZHQHc02DjFkQXN
|
||||||
|
bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw==
|
||||||
|
=j+4q
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
@@ -1,95 +0,0 @@
|
|||||||
CONFIG_LOCALVERSION_AUTO=y
|
|
||||||
CONFIG_DEBUG_KERNEL=y
|
|
||||||
|
|
||||||
# abootimg with a 'dummy' rootfs fails with root=/dev/nfs
|
|
||||||
CONFIG_BLK_DEV_INITRD=n
|
|
||||||
|
|
||||||
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
|
||||||
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
|
||||||
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
|
||||||
CONFIG_DEVFREQ_GOV_PASSIVE=y
|
|
||||||
|
|
||||||
CONFIG_DRM=y
|
|
||||||
CONFIG_DRM_PANEL_SIMPLE=y
|
|
||||||
CONFIG_PWM_CROS_EC=y
|
|
||||||
CONFIG_BACKLIGHT_PWM=y
|
|
||||||
|
|
||||||
# Strip out some stuff we don't need for graphics testing, to reduce
|
|
||||||
# the build.
|
|
||||||
CONFIG_CAN=n
|
|
||||||
CONFIG_WIRELESS=n
|
|
||||||
CONFIG_RFKILL=n
|
|
||||||
CONFIG_WLAN=n
|
|
||||||
|
|
||||||
CONFIG_REGULATOR_FAN53555=y
|
|
||||||
CONFIG_REGULATOR=y
|
|
||||||
|
|
||||||
CONFIG_REGULATOR_VCTRL=y
|
|
||||||
|
|
||||||
CONFIG_KASAN=n
|
|
||||||
CONFIG_KASAN_INLINE=n
|
|
||||||
CONFIG_STACKTRACE=n
|
|
||||||
|
|
||||||
CONFIG_TMPFS=y
|
|
||||||
|
|
||||||
CONFIG_PROVE_LOCKING=n
|
|
||||||
CONFIG_DEBUG_LOCKDEP=n
|
|
||||||
CONFIG_SOFTLOCKUP_DETECTOR=y
|
|
||||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
|
||||||
|
|
||||||
CONFIG_DETECT_HUNG_TASK=y
|
|
||||||
|
|
||||||
CONFIG_USB_USBNET=y
|
|
||||||
CONFIG_NETDEVICES=y
|
|
||||||
CONFIG_USB_NET_DRIVERS=y
|
|
||||||
CONFIG_USB_RTL8152=y
|
|
||||||
CONFIG_USB_NET_AX8817X=y
|
|
||||||
CONFIG_USB_NET_SMSC95XX=y
|
|
||||||
CONFIG_USB_GADGET=y
|
|
||||||
CONFIG_USB_ETH=y
|
|
||||||
|
|
||||||
CONFIG_FW_LOADER_COMPRESS=y
|
|
||||||
|
|
||||||
# options for AMD devices
|
|
||||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
|
||||||
CONFIG_ACPI_VIDEO=y
|
|
||||||
CONFIG_X86_AMD_FREQ_SENSITIVITY=y
|
|
||||||
CONFIG_PINCTRL=y
|
|
||||||
CONFIG_PINCTRL_AMD=y
|
|
||||||
CONFIG_DRM_AMDGPU=m
|
|
||||||
CONFIG_DRM_AMDGPU_SI=m
|
|
||||||
CONFIG_DRM_AMDGPU_USERPTR=y
|
|
||||||
CONFIG_DRM_AMD_ACP=n
|
|
||||||
CONFIG_ACPI_WMI=y
|
|
||||||
CONFIG_MXM_WMI=y
|
|
||||||
CONFIG_PARPORT=y
|
|
||||||
CONFIG_PARPORT_PC=y
|
|
||||||
CONFIG_PARPORT_SERIAL=y
|
|
||||||
CONFIG_SERIAL_8250_DW=y
|
|
||||||
CONFIG_CHROME_PLATFORMS=y
|
|
||||||
|
|
||||||
#options for Intel devices
|
|
||||||
CONFIG_MFD_INTEL_LPSS_PCI=y
|
|
||||||
|
|
||||||
#options for KVM guests
|
|
||||||
CONFIG_FUSE_FS=y
|
|
||||||
CONFIG_HYPERVISOR_GUEST=y
|
|
||||||
CONFIG_KVM=y
|
|
||||||
CONFIG_KVM_GUEST=y
|
|
||||||
CONFIG_VIRT_DRIVERS=y
|
|
||||||
CONFIG_VIRTIO_FS=y
|
|
||||||
CONFIG_DRM_VIRTIO_GPU=y
|
|
||||||
CONFIG_SERIAL_8250_CONSOLE=y
|
|
||||||
CONFIG_VIRTIO_NET=y
|
|
||||||
CONFIG_VIRTIO_CONSOLE=y
|
|
||||||
CONFIG_PARAVIRT=y
|
|
||||||
CONFIG_VIRTIO_BLK=y
|
|
||||||
CONFIG_VIRTUALIZATION=y
|
|
||||||
CONFIG_VIRTIO=y
|
|
||||||
CONFIG_VIRTIO_PCI=y
|
|
||||||
CONFIG_VIRTIO_MMIO=y
|
|
||||||
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
|
|
||||||
CONFIG_CRYPTO_DEV_VIRTIO=y
|
|
||||||
CONFIG_HW_RANDOM_VIRTIO=y
|
|
||||||
CONFIG_BLK_MQ_VIRTIO=y
|
|
||||||
CONFIG_TUN=y
|
|
220
.gitlab-ci/container/x86_build.sh
Normal file
220
.gitlab-ci/container/x86_build.sh
Normal file
@@ -0,0 +1,220 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -o xtrace
|
||||||
|
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
CROSS_ARCHITECTURES="i386"
|
||||||
|
for arch in $CROSS_ARCHITECTURES; do
|
||||||
|
dpkg --add-architecture $arch
|
||||||
|
done
|
||||||
|
|
||||||
|
apt-get install -y \
|
||||||
|
ca-certificates \
|
||||||
|
gnupg \
|
||||||
|
unzip \
|
||||||
|
wget
|
||||||
|
|
||||||
|
# Upstream LLVM package repository
|
||||||
|
apt-key add .gitlab-ci/container/llvm-snapshot.gpg.key
|
||||||
|
echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list
|
||||||
|
|
||||||
|
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||||
|
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
|
||||||
|
# Use newer packages from backports by default
|
||||||
|
cat >/etc/apt/preferences <<EOF
|
||||||
|
Package: *
|
||||||
|
Pin: release a=buster-backports
|
||||||
|
Pin-Priority: 500
|
||||||
|
EOF
|
||||||
|
|
||||||
|
apt-get dist-upgrade -y
|
||||||
|
|
||||||
|
apt-get install -y --no-remove \
|
||||||
|
autoconf \
|
||||||
|
automake \
|
||||||
|
autotools-dev \
|
||||||
|
bison \
|
||||||
|
clang-9 \
|
||||||
|
cmake \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
libclang-6.0-dev \
|
||||||
|
libclang-7-dev \
|
||||||
|
libclang-8-dev \
|
||||||
|
libclang-9-dev \
|
||||||
|
libclc-dev \
|
||||||
|
libelf-dev \
|
||||||
|
libepoxy-dev \
|
||||||
|
libexpat1-dev \
|
||||||
|
libgbm-dev \
|
||||||
|
libgtk-3-dev \
|
||||||
|
libomxil-bellagio-dev \
|
||||||
|
libpciaccess-dev \
|
||||||
|
libtool \
|
||||||
|
libunwind-dev \
|
||||||
|
libva-dev \
|
||||||
|
libvdpau-dev \
|
||||||
|
libvulkan-dev \
|
||||||
|
libx11-dev \
|
||||||
|
libx11-xcb-dev \
|
||||||
|
libxdamage-dev \
|
||||||
|
libxext-dev \
|
||||||
|
libxrandr-dev \
|
||||||
|
libxrender-dev \
|
||||||
|
libxshmfence-dev \
|
||||||
|
libxvmc-dev \
|
||||||
|
libxxf86vm-dev \
|
||||||
|
llvm-6.0-dev \
|
||||||
|
llvm-7-dev \
|
||||||
|
llvm-8-dev \
|
||||||
|
llvm-9-dev \
|
||||||
|
meson \
|
||||||
|
pkg-config \
|
||||||
|
python-mako \
|
||||||
|
python3-mako \
|
||||||
|
scons \
|
||||||
|
x11proto-dri2-dev \
|
||||||
|
x11proto-gl-dev \
|
||||||
|
x11proto-randr-dev \
|
||||||
|
xz-utils \
|
||||||
|
zlib1g-dev
|
||||||
|
|
||||||
|
# Cross-build Mesa deps
|
||||||
|
for arch in $CROSS_ARCHITECTURES; do
|
||||||
|
apt-get install -y --no-remove \
|
||||||
|
crossbuild-essential-${arch} \
|
||||||
|
libdrm-dev:${arch} \
|
||||||
|
libelf-dev:${arch} \
|
||||||
|
libexpat1-dev:${arch}
|
||||||
|
done
|
||||||
|
|
||||||
|
# for 64bit windows cross-builds
|
||||||
|
apt-get install -y --no-remove \
|
||||||
|
libz-mingw-w64-dev \
|
||||||
|
mingw-w64 \
|
||||||
|
wine \
|
||||||
|
wine32 \
|
||||||
|
wine64
|
||||||
|
|
||||||
|
# Debian's pkg-config wrapers for mingw are broken, and there's no sign that
|
||||||
|
# they're going to be fixed, so we'll just have to fix it ourselves
|
||||||
|
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=930492
|
||||||
|
cat >/usr/local/bin/x86_64-w64-mingw32-pkg-config <<EOF
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
PKG_CONFIG_LIBDIR=/usr/x86_64-w64-mingw32/lib/pkgconfig pkg-config \$@
|
||||||
|
EOF
|
||||||
|
chmod +x /usr/local/bin/x86_64-w64-mingw32-pkg-config
|
||||||
|
|
||||||
|
# for the vulkan overlay layer
|
||||||
|
wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip
|
||||||
|
unzip glslang-master-linux-Release.zip bin/glslangValidator
|
||||||
|
install -m755 bin/glslangValidator /usr/local/bin/
|
||||||
|
rm bin/glslangValidator glslang-master-linux-Release.zip
|
||||||
|
|
||||||
|
|
||||||
|
# dependencies where we want a specific version
|
||||||
|
export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
||||||
|
export XCB_RELEASES=https://xcb.freedesktop.org/dist
|
||||||
|
export WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
|
||||||
|
|
||||||
|
export XORGMACROS_VERSION=util-macros-1.19.0
|
||||||
|
export LIBDRM_VERSION=libdrm-2.4.100
|
||||||
|
export XCBPROTO_VERSION=xcb-proto-1.13
|
||||||
|
export LIBXCB_VERSION=libxcb-1.13
|
||||||
|
export LIBWAYLAND_VERSION=wayland-1.15.0
|
||||||
|
export WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.12
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
|
||||||
|
tar -xvf $XCBPROTO_VERSION.tar.bz2 && rm $XCBPROTO_VERSION.tar.bz2
|
||||||
|
cd $XCBPROTO_VERSION; ./configure; make install; cd ..
|
||||||
|
rm -rf $XCBPROTO_VERSION
|
||||||
|
|
||||||
|
wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
|
||||||
|
tar -xvf $LIBXCB_VERSION.tar.bz2 && rm $LIBXCB_VERSION.tar.bz2
|
||||||
|
cd $LIBXCB_VERSION; ./configure; make install; cd ..
|
||||||
|
rm -rf $LIBXCB_VERSION
|
||||||
|
|
||||||
|
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
||||||
|
tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
|
||||||
|
cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd ..
|
||||||
|
rm -rf $LIBDRM_VERSION
|
||||||
|
|
||||||
|
wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
|
||||||
|
tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
|
||||||
|
cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
|
||||||
|
rm -rf $LIBWAYLAND_VERSION
|
||||||
|
|
||||||
|
wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
|
||||||
|
tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.xz
|
||||||
|
cd $WAYLAND_PROTOCOLS_VERSION; ./configure; make install; cd ..
|
||||||
|
rm -rf $WAYLAND_PROTOCOLS_VERSION
|
||||||
|
|
||||||
|
|
||||||
|
# The version of libglvnd-dev in debian is too old
|
||||||
|
# Check this page to see when this local compilation can be dropped in favour of the package:
|
||||||
|
# https://packages.debian.org/libglvnd-dev
|
||||||
|
GLVND_VERSION=1.2.0
|
||||||
|
wget https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v$GLVND_VERSION/libglvnd-v$GLVND_VERSION.tar.gz
|
||||||
|
tar -xvf libglvnd-v$GLVND_VERSION.tar.gz && rm libglvnd-v$GLVND_VERSION.tar.gz
|
||||||
|
pushd libglvnd-v$GLVND_VERSION; ./autogen.sh; ./configure; make install; popd
|
||||||
|
rm -rf libglvnd-v$GLVND_VERSION
|
||||||
|
|
||||||
|
|
||||||
|
pushd /usr/local
|
||||||
|
git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
|
||||||
|
rm -rf shader-db/.git
|
||||||
|
cd shader-db
|
||||||
|
make
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Use ccache to speed up builds
|
||||||
|
apt-get install -y --no-remove ccache
|
||||||
|
|
||||||
|
# We need xmllint to validate the XML files in Mesa
|
||||||
|
apt-get install -y --no-remove libxml2-utils
|
||||||
|
|
||||||
|
|
||||||
|
# Generate cross build files for Meson
|
||||||
|
for arch in $CROSS_ARCHITECTURES; do
|
||||||
|
cross_file="/cross_file-$arch.txt"
|
||||||
|
/usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file"
|
||||||
|
# Explicitly set ccache path for cross compilers
|
||||||
|
sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
|
||||||
|
if [ "$arch" = "i386" ]; then
|
||||||
|
# Work around a bug in debcrossgen that should be fixed in the next release
|
||||||
|
sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
|
||||||
|
# Don't need wrapper for i386 executables
|
||||||
|
sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
############### Uninstall the build software
|
||||||
|
|
||||||
|
apt-get purge -y \
|
||||||
|
autoconf \
|
||||||
|
automake \
|
||||||
|
autotools-dev \
|
||||||
|
cmake \
|
||||||
|
git \
|
||||||
|
gnupg \
|
||||||
|
libgbm-dev \
|
||||||
|
libtool \
|
||||||
|
unzip \
|
||||||
|
wget
|
||||||
|
|
||||||
|
apt-get autoremove -y --purge
|
59
.gitlab-ci/container/x86_build_old.sh
Normal file
59
.gitlab-ci/container/x86_build_old.sh
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -o xtrace
|
||||||
|
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
apt-get install -y \
|
||||||
|
apt-transport-https \
|
||||||
|
ca-certificates
|
||||||
|
|
||||||
|
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||||
|
echo 'deb https://deb.debian.org/debian stretch-backports main' >/etc/apt/sources.list.d/backports.list
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
|
||||||
|
# Use newer packages from backports by default
|
||||||
|
cat >/etc/apt/preferences <<EOF
|
||||||
|
Package: *
|
||||||
|
Pin: release a=stretch-backports
|
||||||
|
Pin-Priority: 500
|
||||||
|
EOF
|
||||||
|
|
||||||
|
apt-get dist-upgrade -y
|
||||||
|
|
||||||
|
apt-get install -y --no-remove \
|
||||||
|
llvm-3.9-dev \
|
||||||
|
libclang-3.9-dev \
|
||||||
|
llvm-4.0-dev \
|
||||||
|
libclang-4.0-dev \
|
||||||
|
llvm-5.0-dev \
|
||||||
|
libclang-5.0-dev \
|
||||||
|
g++ \
|
||||||
|
bzip2 \
|
||||||
|
ccache \
|
||||||
|
zlib1g-dev \
|
||||||
|
pkg-config \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
libepoxy-dev \
|
||||||
|
libclc-dev \
|
||||||
|
xz-utils \
|
||||||
|
libdrm-dev \
|
||||||
|
libexpat1-dev \
|
||||||
|
libelf-dev \
|
||||||
|
libunwind-dev \
|
||||||
|
libpng-dev \
|
||||||
|
python-mako \
|
||||||
|
python3-mako \
|
||||||
|
bison \
|
||||||
|
flex \
|
||||||
|
gettext \
|
||||||
|
scons \
|
||||||
|
meson
|
||||||
|
|
||||||
|
|
||||||
|
############### Uninstall unused packages
|
||||||
|
|
||||||
|
apt-get autoremove -y --purge
|
96
.gitlab-ci/container/x86_test-gl.sh
Normal file
96
.gitlab-ci/container/x86_test-gl.sh
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -o xtrace
|
||||||
|
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
apt-get install -y \
|
||||||
|
ca-certificates \
|
||||||
|
gnupg \
|
||||||
|
|
||||||
|
# Upstream LLVM package repository
|
||||||
|
apt-key add .gitlab-ci/container/llvm-snapshot.gpg.key
|
||||||
|
echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list
|
||||||
|
|
||||||
|
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||||
|
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
|
||||||
|
# Use newer packages from backports by default
|
||||||
|
cat >/etc/apt/preferences <<EOF
|
||||||
|
Package: *
|
||||||
|
Pin: release a=buster-backports
|
||||||
|
Pin-Priority: 500
|
||||||
|
EOF
|
||||||
|
|
||||||
|
apt-get dist-upgrade -y
|
||||||
|
|
||||||
|
apt-get install -y --no-remove \
|
||||||
|
cmake \
|
||||||
|
g++ \
|
||||||
|
git \
|
||||||
|
gcc \
|
||||||
|
libexpat1 \
|
||||||
|
libgbm-dev \
|
||||||
|
libgles2-mesa-dev \
|
||||||
|
libpng16-16 \
|
||||||
|
libpng-dev \
|
||||||
|
libvulkan1 \
|
||||||
|
libvulkan-dev \
|
||||||
|
libwaffle-dev \
|
||||||
|
libwayland-server0 \
|
||||||
|
libxcb-xfixes0 \
|
||||||
|
libxkbcommon0 \
|
||||||
|
libxkbcommon-dev \
|
||||||
|
libxrender1 \
|
||||||
|
libxrender-dev \
|
||||||
|
libllvm9 \
|
||||||
|
meson \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
python3-mako \
|
||||||
|
python3-numpy \
|
||||||
|
python3-six \
|
||||||
|
python \
|
||||||
|
waffle-utils \
|
||||||
|
xauth \
|
||||||
|
xvfb \
|
||||||
|
zlib1g
|
||||||
|
|
||||||
|
|
||||||
|
############### Build piglit
|
||||||
|
|
||||||
|
. .gitlab-ci/build-piglit.sh
|
||||||
|
|
||||||
|
############### Build dEQP runner
|
||||||
|
|
||||||
|
. .gitlab-ci/build-cts-runner.sh
|
||||||
|
|
||||||
|
############### Build dEQP GL
|
||||||
|
|
||||||
|
. .gitlab-ci/build-deqp-gl.sh
|
||||||
|
|
||||||
|
|
||||||
|
############### Uninstall the build software
|
||||||
|
|
||||||
|
apt-get purge -y \
|
||||||
|
cmake \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
gnupg \
|
||||||
|
libc6-dev \
|
||||||
|
libgbm-dev \
|
||||||
|
libgles2-mesa-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libwaffle-dev \
|
||||||
|
libxkbcommon-dev \
|
||||||
|
libxrender-dev \
|
||||||
|
meson \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
python
|
||||||
|
|
||||||
|
apt-get autoremove -y --purge
|
87
.gitlab-ci/container/x86_test-vk.sh
Normal file
87
.gitlab-ci/container/x86_test-vk.sh
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -o xtrace
|
||||||
|
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
apt-get install -y \
|
||||||
|
ca-certificates \
|
||||||
|
gnupg \
|
||||||
|
|
||||||
|
# Upstream LLVM package repository
|
||||||
|
apt-key add .gitlab-ci/container/llvm-snapshot.gpg.key
|
||||||
|
echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list
|
||||||
|
|
||||||
|
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||||
|
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
|
||||||
|
# Use newer packages from backports by default
|
||||||
|
cat >/etc/apt/preferences <<EOF
|
||||||
|
Package: *
|
||||||
|
Pin: release a=buster-backports
|
||||||
|
Pin-Priority: 500
|
||||||
|
EOF
|
||||||
|
|
||||||
|
apt-get dist-upgrade -y
|
||||||
|
|
||||||
|
apt-get install -y --no-remove \
|
||||||
|
cmake \
|
||||||
|
g++ \
|
||||||
|
git \
|
||||||
|
gcc \
|
||||||
|
libexpat1 \
|
||||||
|
libgbm-dev \
|
||||||
|
libgles2-mesa-dev \
|
||||||
|
libpng16-16 \
|
||||||
|
libpng-dev \
|
||||||
|
libvulkan1 \
|
||||||
|
libvulkan-dev \
|
||||||
|
libwayland-server0 \
|
||||||
|
libxcb-randr0 \
|
||||||
|
libxcb-xfixes0 \
|
||||||
|
libxkbcommon0 \
|
||||||
|
libxkbcommon-dev \
|
||||||
|
libxrender1 \
|
||||||
|
libxrender-dev \
|
||||||
|
libllvm9 \
|
||||||
|
meson \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
python3-distutils \
|
||||||
|
python \
|
||||||
|
xauth \
|
||||||
|
xvfb
|
||||||
|
|
||||||
|
|
||||||
|
############### Build dEQP runner
|
||||||
|
|
||||||
|
. .gitlab-ci/build-cts-runner.sh
|
||||||
|
|
||||||
|
############### Build dEQP VK
|
||||||
|
|
||||||
|
. .gitlab-ci/build-deqp-vk.sh
|
||||||
|
|
||||||
|
|
||||||
|
############### Uninstall the build software
|
||||||
|
|
||||||
|
apt-get purge -y \
|
||||||
|
cmake \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
gnupg \
|
||||||
|
libgbm-dev \
|
||||||
|
libgles2-mesa-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libvulkan-dev \
|
||||||
|
libxkbcommon-dev \
|
||||||
|
libxrender-dev \
|
||||||
|
meson \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
python
|
||||||
|
|
||||||
|
apt-get autoremove -y --purge
|
195
.gitlab-ci/create-rootfs.sh
Normal file
195
.gitlab-ci/create-rootfs.sh
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
LLVM=libllvm8
|
||||||
|
|
||||||
|
# LLVMPipe on armhf is broken with LLVM 8
|
||||||
|
if [ `dpkg --print-architecture` = "armhf" ]; then
|
||||||
|
LLVM=libllvm7
|
||||||
|
fi
|
||||||
|
|
||||||
|
apt-get -y install --no-install-recommends \
|
||||||
|
initramfs-tools \
|
||||||
|
libpng16-16 \
|
||||||
|
strace \
|
||||||
|
libsensors5 \
|
||||||
|
libexpat1 \
|
||||||
|
libdrm2 \
|
||||||
|
libdrm-nouveau2 \
|
||||||
|
$LLVM
|
||||||
|
passwd root -d
|
||||||
|
chsh -s /bin/sh
|
||||||
|
ln -s /bin/sh /init
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
# Strip the image to a small minimal system without removing the debian
|
||||||
|
# toolchain.
|
||||||
|
|
||||||
|
# Copy timezone file and remove tzdata package
|
||||||
|
rm -rf /etc/localtime
|
||||||
|
cp /usr/share/zoneinfo/Etc/UTC /etc/localtime
|
||||||
|
|
||||||
|
UNNEEDED_PACKAGES="libfdisk1
|
||||||
|
tzdata
|
||||||
|
diffutils"
|
||||||
|
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# Removing unused packages
|
||||||
|
for PACKAGE in ${UNNEEDED_PACKAGES}
|
||||||
|
do
|
||||||
|
echo ${PACKAGE}
|
||||||
|
if ! apt-get remove --purge --yes "${PACKAGE}"
|
||||||
|
then
|
||||||
|
echo "WARNING: ${PACKAGE} isn't installed"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
apt-get autoremove --yes || true
|
||||||
|
|
||||||
|
# Dropping logs
|
||||||
|
rm -rf /var/log/*
|
||||||
|
|
||||||
|
# Dropping documentation, localization, i18n files, etc
|
||||||
|
rm -rf /usr/share/doc/*
|
||||||
|
rm -rf /usr/share/locale/*
|
||||||
|
rm -rf /usr/share/man
|
||||||
|
rm -rf /usr/share/i18n/*
|
||||||
|
rm -rf /usr/share/info/*
|
||||||
|
rm -rf /usr/share/lintian/*
|
||||||
|
rm -rf /usr/share/common-licenses/*
|
||||||
|
rm -rf /usr/share/mime/*
|
||||||
|
|
||||||
|
# Dropping reportbug scripts
|
||||||
|
rm -rf /usr/share/bug
|
||||||
|
|
||||||
|
# Drop udev hwdb not required on a stripped system
|
||||||
|
rm -rf /lib/udev/hwdb.bin /lib/udev/hwdb.d/*
|
||||||
|
|
||||||
|
# Drop all gconv conversions && binaries
|
||||||
|
rm -rf usr/bin/iconv
|
||||||
|
rm -rf usr/sbin/iconvconfig
|
||||||
|
rm -rf usr/lib/*/gconv/
|
||||||
|
|
||||||
|
# Remove libusb database
|
||||||
|
rm -rf usr/sbin/update-usbids
|
||||||
|
rm -rf var/lib/usbutils/usb.ids
|
||||||
|
rm -rf usr/share/misc/usb.ids
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
# Crush into a minimal production image to be deployed via some type of image
|
||||||
|
# updating system.
|
||||||
|
# IMPORTANT: The Debian system is not longer functional at this point,
|
||||||
|
# for example, apt and dpkg will stop working
|
||||||
|
|
||||||
|
UNNEEDED_PACKAGES="apt libapt-pkg5.0 "\
|
||||||
|
"ncurses-bin ncurses-base libncursesw5 libncurses5 "\
|
||||||
|
"perl-base "\
|
||||||
|
"debconf libdebconfclient0 "\
|
||||||
|
"e2fsprogs e2fslibs libfdisk1 "\
|
||||||
|
"insserv "\
|
||||||
|
"udev "\
|
||||||
|
"init-system-helpers "\
|
||||||
|
"bash "\
|
||||||
|
"cpio "\
|
||||||
|
"passwd "\
|
||||||
|
"libsemanage1 libsemanage-common "\
|
||||||
|
"libsepol1 "\
|
||||||
|
"gzip "\
|
||||||
|
"gpgv "\
|
||||||
|
"hostname "\
|
||||||
|
"adduser "\
|
||||||
|
"debian-archive-keyring "\
|
||||||
|
|
||||||
|
# Removing unneeded packages
|
||||||
|
for PACKAGE in ${UNNEEDED_PACKAGES}
|
||||||
|
do
|
||||||
|
echo "Forcing removal of ${PACKAGE}"
|
||||||
|
if ! dpkg --purge --force-remove-essential --force-depends "${PACKAGE}"
|
||||||
|
then
|
||||||
|
echo "WARNING: ${PACKAGE} isn't installed"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Show what's left package-wise before dropping dpkg itself
|
||||||
|
COLUMNS=300 dpkg-query -W --showformat='${Installed-Size;10}\t${Package}\n' | sort -k1,1n
|
||||||
|
|
||||||
|
# Drop dpkg
|
||||||
|
dpkg --purge --force-remove-essential --force-depends dpkg
|
||||||
|
|
||||||
|
# No apt or dpkg, no need for its configuration archives
|
||||||
|
rm -rf etc/apt
|
||||||
|
rm -rf etc/dpkg
|
||||||
|
|
||||||
|
# Drop directories not part of ostree
|
||||||
|
# Note that /var needs to exist as ostree bind mounts the deployment /var over
|
||||||
|
# it
|
||||||
|
rm -rf var/* opt srv share
|
||||||
|
|
||||||
|
# ca-certificates are in /etc drop the source
|
||||||
|
rm -rf usr/share/ca-certificates
|
||||||
|
|
||||||
|
# No bash, no need for completions
|
||||||
|
rm -rf usr/share/bash-completion
|
||||||
|
|
||||||
|
# No zsh, no need for comletions
|
||||||
|
rm -rf usr/share/zsh/vendor-completions
|
||||||
|
|
||||||
|
# drop gcc-6 python helpers
|
||||||
|
rm -rf usr/share/gcc-6
|
||||||
|
|
||||||
|
# Drop sysvinit leftovers
|
||||||
|
rm -rf etc/init.d
|
||||||
|
rm -rf etc/rc[0-6S].d
|
||||||
|
|
||||||
|
# Drop upstart helpers
|
||||||
|
rm -rf etc/init
|
||||||
|
|
||||||
|
# Various xtables helpers
|
||||||
|
rm -rf usr/lib/xtables
|
||||||
|
|
||||||
|
# Drop all locales
|
||||||
|
# TODO: only remaining locale is actually "C". Should we really remove it?
|
||||||
|
rm -rf usr/lib/locale/*
|
||||||
|
|
||||||
|
# partition helpers
|
||||||
|
rm usr/sbin/*fdisk
|
||||||
|
|
||||||
|
# local compiler
|
||||||
|
rm usr/bin/localedef
|
||||||
|
|
||||||
|
# Systemd dns resolver
|
||||||
|
find usr etc -name '*systemd-resolve*' -prune -exec rm -r {} \;
|
||||||
|
|
||||||
|
# Systemd network configuration
|
||||||
|
find usr etc -name '*networkd*' -prune -exec rm -r {} \;
|
||||||
|
|
||||||
|
# systemd ntp client
|
||||||
|
find usr etc -name '*timesyncd*' -prune -exec rm -r {} \;
|
||||||
|
|
||||||
|
# systemd hw database manager
|
||||||
|
find usr etc -name '*systemd-hwdb*' -prune -exec rm -r {} \;
|
||||||
|
|
||||||
|
# No need for fuse
|
||||||
|
find usr etc -name '*fuse*' -prune -exec rm -r {} \;
|
||||||
|
|
||||||
|
# lsb init function leftovers
|
||||||
|
rm -rf usr/lib/lsb
|
||||||
|
|
||||||
|
# Only needed when adding libraries
|
||||||
|
rm usr/sbin/ldconfig*
|
||||||
|
|
||||||
|
# Games, unused
|
||||||
|
rmdir usr/games
|
||||||
|
|
||||||
|
# Remove pam module to authenticate against a DB
|
||||||
|
# plus libdb-5.3.so that is only used by this pam module
|
||||||
|
rm usr/lib/*/security/pam_userdb.so
|
||||||
|
rm usr/lib/*/libdb-5.3.so
|
||||||
|
|
||||||
|
# remove NSS support for nis, nisplus and hesiod
|
||||||
|
rm usr/lib/*/libnss_hesiod*
|
||||||
|
rm usr/lib/*/libnss_nis*
|
||||||
|
|
||||||
|
rm bin/tar
|
1
.gitlab-ci/cross-xfail-i386
Normal file
1
.gitlab-ci/cross-xfail-i386
Normal file
@@ -0,0 +1 @@
|
|||||||
|
u_format_test
|
@@ -1 +0,0 @@
|
|||||||
lp_test_arit
|
|
@@ -1,2 +0,0 @@
|
|||||||
lp_test_arit
|
|
||||||
lp_test_format
|
|
@@ -1,25 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
mount -t proc none /proc
|
|
||||||
mount -t sysfs none /sys
|
|
||||||
mount -t devtmpfs none /dev || echo possibly already mounted
|
|
||||||
mkdir -p /dev/pts
|
|
||||||
mount -t devpts devpts /dev/pts
|
|
||||||
mount -t tmpfs tmpfs /tmp
|
|
||||||
|
|
||||||
. /crosvm-env.sh
|
|
||||||
|
|
||||||
# / is ro
|
|
||||||
export PIGLIT_REPLAY_EXTRA_ARGS="$PIGLIT_REPLAY_EXTRA_ARGS --db-path /tmp/replayer-db"
|
|
||||||
|
|
||||||
if sh $CROSVM_TEST_SCRIPT; then
|
|
||||||
touch /results/success
|
|
||||||
fi
|
|
||||||
|
|
||||||
poweroff -d -n -f || true
|
|
||||||
|
|
||||||
sleep 10 # Just in case init would exit before the kernel shuts down the VM
|
|
||||||
|
|
||||||
exit 1
|
|
@@ -1,45 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
ln -sf $CI_PROJECT_DIR/install /install
|
|
||||||
|
|
||||||
export LD_LIBRARY_PATH=$CI_PROJECT_DIR/install/lib/
|
|
||||||
export EGL_PLATFORM=surfaceless
|
|
||||||
|
|
||||||
export -p > /crosvm-env.sh
|
|
||||||
export GALLIUM_DRIVER="$CROSVM_GALLIUM_DRIVER"
|
|
||||||
export LIBGL_ALWAYS_SOFTWARE="true"
|
|
||||||
|
|
||||||
CROSVM_KERNEL_ARGS="root=my_root rw rootfstype=virtiofs loglevel=3 init=$CI_PROJECT_DIR/install/crosvm-init.sh ip=192.168.30.2::192.168.30.1:255.255.255.0:crosvm:eth0"
|
|
||||||
|
|
||||||
# Temporary results dir because from the guest we cannot write to /
|
|
||||||
mkdir -p /results
|
|
||||||
mount -t tmpfs tmpfs /results
|
|
||||||
|
|
||||||
mkdir -p /piglit/.gitlab-ci/piglit
|
|
||||||
mount -t tmpfs tmpfs /piglit/.gitlab-ci/piglit
|
|
||||||
|
|
||||||
unset DISPLAY
|
|
||||||
unset XDG_RUNTIME_DIR
|
|
||||||
|
|
||||||
/usr/sbin/iptables-legacy -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
|
||||||
echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
||||||
|
|
||||||
# Crosvm wants this
|
|
||||||
syslogd > /dev/null
|
|
||||||
|
|
||||||
crosvm run \
|
|
||||||
--gpu gles=false,backend=3d,egl=true,surfaceless=true \
|
|
||||||
-m 4096 \
|
|
||||||
-c 4 \
|
|
||||||
--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" \
|
|
||||||
-p "$CROSVM_KERNEL_ARGS" \
|
|
||||||
/lava-files/bzImage
|
|
||||||
|
|
||||||
mkdir -p $CI_PROJECT_DIR/results
|
|
||||||
mv /results/* $CI_PROJECT_DIR/results/.
|
|
||||||
|
|
||||||
test -f $CI_PROJECT_DIR/results/success
|
|
@@ -1,10 +0,0 @@
|
|||||||
# Note: skips lists for CI are just a list of lines that, when
|
|
||||||
# non-zero-length and not starting with '#', will regex match to
|
|
||||||
# delete lines from the test list. Be careful.
|
|
||||||
|
|
||||||
# These are tremendously slow (pushing toward a minute), and aren't
|
|
||||||
# reliable to be run in parallel with other tests due to CPU-side timing.
|
|
||||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
|
||||||
|
|
||||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/4575
|
|
||||||
dEQP-VK.wsi.display.get_display_plane_capabilities
|
|
10
.gitlab-ci/deqp-default-skips.txt
Normal file
10
.gitlab-ci/deqp-default-skips.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Note: skips lists for CI are just a list of lines that, when
|
||||||
|
# non-zero-length and not starting with '#', will regex match to
|
||||||
|
# delete lines from the test list. Be careful.
|
||||||
|
|
||||||
|
# Skip the perf/stress tests to keep runtime manageable
|
||||||
|
dEQP-GLES[0-9]*.performance.*
|
||||||
|
dEQP-GLES[0-9]*.stress.*
|
||||||
|
|
||||||
|
# These are really slow on tiling architectures (including llvmpipe).
|
||||||
|
dEQP-GLES[0-9]*.functional.flush_finish.*
|
33
.gitlab-ci/deqp-freedreno-a307-fails.txt
Normal file
33
.gitlab-ci/deqp-freedreno-a307-fails.txt
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center
|
||||||
|
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner
|
||||||
|
dEQP-GLES2.functional.clipping.point.wide_point_clip
|
||||||
|
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center
|
||||||
|
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner
|
||||||
|
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_rbo_rgb565_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_tex2d_rgba_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_tex2d_rgb_stencil_index8
|
||||||
|
dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_l8_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgb888_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgba4444_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgba8888_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_l8_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_rgb888_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_rgba4444_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_rgba8888_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_l8_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgb888_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgba4444_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgba8888_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_l8_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_rgb888_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_rgba4444_npot
|
||||||
|
dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_rgba8888_npot
|
3
.gitlab-ci/deqp-freedreno-a630-fails.txt
Normal file
3
.gitlab-ci/deqp-freedreno-a630-fails.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||||
|
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_clear
|
||||||
|
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw
|
21
.gitlab-ci/deqp-freedreno-a630-skips.txt
Normal file
21
.gitlab-ci/deqp-freedreno-a630-skips.txt
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Note: skips lists for CI are just a list of lines that, when
|
||||||
|
# non-zero-length and not starting with '#', will regex match to
|
||||||
|
# delete lines from the test list. Be careful.
|
||||||
|
|
||||||
|
# Skip the perf/stress tests to keep runtime manageable
|
||||||
|
dEQP-GLES[0-9]*.performance.*
|
||||||
|
dEQP-GLES[0-9]*.stress.*
|
||||||
|
|
||||||
|
# These are really slow on tiling architectures (including llvmpipe).
|
||||||
|
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||||
|
|
||||||
|
# Unstable test results
|
||||||
|
#dEQP-GLES3.functional.fragment_out.random.*
|
||||||
|
dEQP-GLES3.functional.transform_feedback.*points.*
|
||||||
|
dEQP-GLES3.functional.transform_feedback.*lines.*
|
||||||
|
dEQP-GLES31.functional.primitive_bounding_box.*
|
||||||
|
#dEQP-GLES31.functional.layout_binding.ssbo.fragment_binding_array.*
|
||||||
|
|
||||||
|
# Intermittent timeout
|
||||||
|
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.23
|
||||||
|
|
203
.gitlab-ci/deqp-lima-fails.txt
Normal file
203
.gitlab-ci/deqp-lima-fails.txt
Normal file
@@ -0,0 +1,203 @@
|
|||||||
|
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center
|
||||||
|
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner
|
||||||
|
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_x_neg_y_pos_z_and_pos_x_pos_y_neg_z
|
||||||
|
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_x_pos_y_pos_z_and_pos_x_neg_y_neg_z
|
||||||
|
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_x_neg_y_pos_z_and_neg_x_pos_y_neg_z
|
||||||
|
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_x_pos_y_pos_z_and_neg_x_neg_y_neg_z
|
||||||
|
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.0
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.1
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.10
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.11
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.12
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.13
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.14
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.15
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.16
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.17
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.18
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.19
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.2
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.20
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.21
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.22
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.23
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.24
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.3
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.4
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.5
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.6
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.7
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.8
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.9
|
||||||
|
dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.stencil
|
||||||
|
dEQP-GLES2.functional.shaders.algorithm.hsl_to_rgb_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.array_arguments.global_in_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.array_arguments.local_in_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.datatypes.int_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.overloading.builtin_sin_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.overloading.builtin_step_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.overloading.user_func_arg_int_types_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.qualifiers.inout_highp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.qualifiers.inout_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.qualifiers.inout_lowp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.qualifiers.out_highp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.qualifiers.out_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.functions.qualifiers.out_lowp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_dynamic_loop_write_static_loop_read_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_dynamic_loop_write_static_read_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_dynamic_write_dynamic_loop_read_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.loops.do_while_constant_iterations.conditional_body_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.loops.do_while_dynamic_iterations.vector_counter_fragment
|
||||||
|
dEQP-GLES2.functional.shaders.loops.do_while_uniform_iterations.conditional_body_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.loops.do_while_uniform_iterations.nested_tricky_dataflow_2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.loops.for_dynamic_iterations.vector_counter_fragment
|
||||||
|
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.compound_statement_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.sequence_statement_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.loops.while_dynamic_iterations.nested_sequence_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.loops.while_dynamic_iterations.vector_counter_fragment
|
||||||
|
dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.nested_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec2_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec3_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec4_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec2_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec3_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec4_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec2_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec3_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec4_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec2_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec3_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec4_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec2_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec3_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec4_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec2_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec3_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec4_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec2_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec3_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec4_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec2_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec3_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec4_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec2_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec3_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec4_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_int_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec2_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec3_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec4_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.random.all_features.fragment.37
|
||||||
|
dEQP-GLES2.functional.shaders.random.exponential.fragment.11
|
||||||
|
dEQP-GLES2.functional.shaders.random.exponential.fragment.12
|
||||||
|
dEQP-GLES2.functional.shaders.random.exponential.fragment.14
|
||||||
|
dEQP-GLES2.functional.shaders.random.exponential.fragment.37
|
||||||
|
dEQP-GLES2.functional.shaders.random.exponential.fragment.5
|
||||||
|
dEQP-GLES2.functional.shaders.random.exponential.fragment.74
|
||||||
|
dEQP-GLES2.functional.shaders.random.texture.fragment.28
|
||||||
|
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.65
|
||||||
|
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2d_bias
|
||||||
|
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec4_bias
|
||||||
|
dEQP-GLES2.functional.shaders.texture_functions.fragment.texturecube_bias
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_linear
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_linear
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_nearest
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_linear
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_nearest
|
||||||
|
dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_rgb
|
||||||
|
dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_rgba
|
||||||
|
dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.cube_rgb
|
||||||
|
dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.cube_rgba
|
50
.gitlab-ci/deqp-lima-skips.txt
Normal file
50
.gitlab-ci/deqp-lima-skips.txt
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# Note: skips lists for CI are just a list of lines that, when
|
||||||
|
# non-zero-length and not starting with '#', will regex match to
|
||||||
|
# delete lines from the test list. Be careful.
|
||||||
|
|
||||||
|
# Skip the perf/stress tests to keep runtime manageable
|
||||||
|
dEQP-GLES[0-9]*.performance
|
||||||
|
dEQP-GLES[0-9]*.stress
|
||||||
|
|
||||||
|
# These are really slow on tiling architectures (including llvmpipe).
|
||||||
|
dEQP-GLES[0-9]*.functional.flush_finish
|
||||||
|
|
||||||
|
# Crashes
|
||||||
|
dEQP-GLES2.functional.shaders.invariance.highp.common_subexpression_1
|
||||||
|
dEQP-GLES2.functional.shaders.invariance.mediump.common_subexpression_1
|
||||||
|
dEQP-GLES2.functional.shaders.invariance.lowp.common_subexpression_1
|
||||||
|
|
||||||
|
# Flaky
|
||||||
|
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||||
|
dEQP-GLES2.functional.default_vertex_attrib.*
|
||||||
|
dEQP-GLES2.functional.fbo.completeness.size.distinct
|
||||||
|
dEQP-GLES2.functional.negative_api.shader.uniform_matrixfv_invalid_transpose
|
||||||
|
dEQP-GLES2.functional.negative_api.texture.generatemipmap_zero_level_array_compressed
|
||||||
|
dEQP-GLES2.functional.shaders.builtin_variable.frontfacing
|
||||||
|
dEQP-GLES2.functional.shaders.random.exponential.fragment.94
|
||||||
|
dEQP-GLES2.functional.shaders.random.all_features.fragment.55
|
||||||
|
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.1
|
||||||
|
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.69
|
||||||
|
|
||||||
|
# Driver bugs causing GPU errors
|
||||||
|
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.nested_sequence_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.conditional_body_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.conditional_continue_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.double_continue_vertex
|
||||||
|
|
||||||
|
# Hangs / OOM
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_static_read
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_dynamic_read
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_static_loop_read
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_dynamic_loop_read
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec3_dynamic_loop_write_dynamic_read_vertex
|
||||||
|
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_static_read_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_dynamic_read_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_static_loop_read_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_dynamic_loop_read_vertex
|
||||||
|
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_static_read_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_dynamic_read_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_static_loop_read_vertex
|
||||||
|
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_dynamic_loop_read_vertex
|
124
.gitlab-ci/deqp-llvmpipe-fails.txt
Normal file
124
.gitlab-ci/deqp-llvmpipe-fails.txt
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center
|
||||||
|
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner
|
||||||
|
dEQP-GLES2.functional.clipping.point.wide_point_clip
|
||||||
|
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center
|
||||||
|
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner
|
||||||
|
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z
|
||||||
|
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z
|
||||||
|
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4
|
||||||
|
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.depth.rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.polygon_offset.default_displacement_with_units
|
||||||
|
dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units
|
||||||
|
dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop_wide
|
||||||
|
dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip_wide
|
||||||
|
dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide
|
||||||
|
dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide
|
||||||
|
dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide
|
||||||
|
dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide
|
||||||
|
dEQP-GLES2.functional.rasterization.limits.points
|
||||||
|
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2d_bias
|
||||||
|
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec3_bias
|
||||||
|
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec4_bias
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_repeat_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_repeat_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_l8
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgb888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgba4444
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_clamp_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_mirror_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_mirror_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_repeat_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_repeat_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_clamp_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_mirror_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_mirror_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_etc1
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_l8
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgb888
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgba4444
|
||||||
|
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgba8888
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.affine.linear_linear_repeat
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_clamp
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_mirror
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_repeat
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_repeat
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_repeat_non_square
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_clamp
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_clamp_non_square
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_mirror
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_mirror_non_square
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_repeat
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_repeat_non_square
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.projected.linear_linear_repeat
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_clamp
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_mirror
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_repeat
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_linear
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_linear
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_nearest
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_linear
|
||||||
|
dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_nearest
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_repeat
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_clamp
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_mirror
|
||||||
|
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_repeat
|
31
.gitlab-ci/deqp-panfrost-t720-fails.txt
Normal file
31
.gitlab-ci/deqp-panfrost-t720-fails.txt
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16
|
14
.gitlab-ci/deqp-panfrost-t720-skips.txt
Normal file
14
.gitlab-ci/deqp-panfrost-t720-skips.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Note: skips lists for CI are just a list of lines that, when
|
||||||
|
# non-zero-length and not starting with '#', will regex match to
|
||||||
|
# delete lines from the test list. Be careful.
|
||||||
|
|
||||||
|
# Skip the perf/stress tests to keep runtime manageable
|
||||||
|
dEQP-GLES[0-9]*.performance.*
|
||||||
|
dEQP-GLES[0-9]*.stress.*
|
||||||
|
|
||||||
|
# These are really slow on tiling architectures (including llvmpipe).
|
||||||
|
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||||
|
|
||||||
|
# XXX: Why does this flake?
|
||||||
|
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||||
|
|
31
.gitlab-ci/deqp-panfrost-t760-fails.txt
Normal file
31
.gitlab-ci/deqp-panfrost-t760-fails.txt
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16
|
10
.gitlab-ci/deqp-panfrost-t760-skips.txt
Normal file
10
.gitlab-ci/deqp-panfrost-t760-skips.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Note: skips lists for CI are just a list of lines that, when
|
||||||
|
# non-zero-length and not starting with '#', will regex match to
|
||||||
|
# delete lines from the test list. Be careful.
|
||||||
|
|
||||||
|
# Skip the perf/stress tests to keep runtime manageable
|
||||||
|
dEQP-GLES[0-9]*.performance.*
|
||||||
|
dEQP-GLES[0-9]*.stress.*
|
||||||
|
|
||||||
|
# These are really slow on tiling architectures (including llvmpipe).
|
||||||
|
dEQP-GLES[0-9]*.functional.flush_finish.*
|
31
.gitlab-ci/deqp-panfrost-t820-fails.txt
Normal file
31
.gitlab-ci/deqp-panfrost-t820-fails.txt
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16
|
||||||
|
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16
|
13
.gitlab-ci/deqp-panfrost-t820-skips.txt
Normal file
13
.gitlab-ci/deqp-panfrost-t820-skips.txt
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Note: skips lists for CI are just a list of lines that, when
|
||||||
|
# non-zero-length and not starting with '#', will regex match to
|
||||||
|
# delete lines from the test list. Be careful.
|
||||||
|
|
||||||
|
# Skip the perf/stress tests to keep runtime manageable
|
||||||
|
dEQP-GLES[0-9]*.performance.*
|
||||||
|
dEQP-GLES[0-9]*.stress.*
|
||||||
|
|
||||||
|
# These are really slow on tiling architectures (including llvmpipe).
|
||||||
|
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||||
|
|
||||||
|
# XXX: Why does this flake?
|
||||||
|
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user