Compare commits
197 Commits
24.2
...
mesa-24.1.
Author | SHA1 | Date | |
---|---|---|---|
|
e1e4254491 | ||
|
02535969d9 | ||
|
eb553df193 | ||
|
7529fd7a4b | ||
|
76005d3762 | ||
|
f3e53f801c | ||
|
45393f8e9f | ||
|
3761ceab10 | ||
|
f0088c606e | ||
|
35c87d0ee9 | ||
|
3198caaab7 | ||
|
4757d2ccd9 | ||
|
9501a4375e | ||
|
838500cb5e | ||
|
8efa17cf76 | ||
|
d7c6acac89 | ||
|
e3edb6c3ec | ||
|
753b6920c7 | ||
|
d4c791ec63 | ||
|
b47ea93f86 | ||
|
7b96875784 | ||
|
3c79cc4371 | ||
|
a18dbb4a5d | ||
|
faac5b2d31 | ||
|
285aed315f | ||
|
7adccd14fa | ||
|
36b162f629 | ||
|
b2bce19cd4 | ||
|
b72c5aee1b | ||
|
e0789e1f06 | ||
|
02aa4bb803 | ||
|
3d4e09973c | ||
|
a0d2b531e0 | ||
|
c00fd82705 | ||
|
d0602e2dab | ||
|
d9857b2745 | ||
|
30a8e6b2f6 | ||
|
86e3e447a8 | ||
|
b36299c5a9 | ||
|
6f912e9829 | ||
|
23ba879b88 | ||
|
bf9cd27575 | ||
|
8013c8fe3e | ||
|
3e455f9d3a | ||
|
cbb030e829 | ||
|
7f095e142b | ||
|
d999eda0eb | ||
|
2351b02736 | ||
|
680ed1609f | ||
|
f2d36e3d6e | ||
|
981703aac9 | ||
|
e46605c109 | ||
|
90ad5fc6e2 | ||
|
9e27390d68 | ||
|
dc1dd72de5 | ||
|
1f2b11a564 | ||
|
b182fe0a60 | ||
|
bbdfab5c8c | ||
|
623c7df22c | ||
|
96fdc7faba | ||
|
f887e1fdf6 | ||
|
727e86c06d | ||
|
8307d829e0 | ||
|
11ff1834a6 | ||
|
73f3805da3 | ||
|
797b25e43d | ||
|
b7f177ceae | ||
|
395cd831b3 | ||
|
bed6fba7c8 | ||
|
1adce876ce | ||
|
f49045e281 | ||
|
dac5e319b0 | ||
|
ce203e13f7 | ||
|
f8d7ef05b3 | ||
|
5f5ebee70b | ||
|
1145007a43 | ||
|
4d53dba4fa | ||
|
175c92890d | ||
|
4bf6af791a | ||
|
87e5487d88 | ||
|
66b5cea130 | ||
|
aaa8b36237 | ||
|
426a615644 | ||
|
d7b877598f | ||
|
bdb59a3941 | ||
|
b937e65919 | ||
|
946a776387 | ||
|
07e97982df | ||
|
b050d6abcc | ||
|
ba0640296e | ||
|
07000d32d7 | ||
|
7e033ebcd5 | ||
|
42765877a9 | ||
|
725ad01c71 | ||
|
1b82d45d05 | ||
|
61ab6dd15f | ||
|
1b9927bc48 | ||
|
b397496ee8 | ||
|
35590d038f | ||
|
329a7a6b78 | ||
|
8c0d63bce2 | ||
|
ee40beb60d | ||
|
d2fbe79d37 | ||
|
fe050bd235 | ||
|
57a534364f | ||
|
de656a6afa | ||
|
f91463e830 | ||
|
daac0812be | ||
|
53c1539b0b | ||
|
4cb807647e | ||
|
8ec4314f5e | ||
|
25aa178802 | ||
|
0d6f86f7ca | ||
|
71f25dc28c | ||
|
abce42ced6 | ||
|
50971e459e | ||
|
8b6095c17e | ||
|
e8f360c32c | ||
|
f24ce4cd7c | ||
|
063edd4df1 | ||
|
965f8b10d5 | ||
|
1f917b8814 | ||
|
ddf6f67b07 | ||
|
2f97ea3a95 | ||
|
e568bbf410 | ||
|
f45a1d102d | ||
|
1255b12f3f | ||
|
927bbf50e1 | ||
|
0930b6927d | ||
|
c0d4d3e576 | ||
|
02e295cb5c | ||
|
27cf49205c | ||
|
ec0e288fa7 | ||
|
9eb0a4292f | ||
|
e0c70876dd | ||
|
b897d0bac1 | ||
|
e0899ef81a | ||
|
55ad51ff40 | ||
|
80d8da9d7d | ||
|
80af43b9be | ||
|
00b2aaf260 | ||
|
60bb6425a7 | ||
|
7252bb2d96 | ||
|
726c28f92f | ||
|
db1835d8ca | ||
|
f3ff3d86ef | ||
|
4e0125bdaa | ||
|
b52d5496d8 | ||
|
281ac5e61b | ||
|
0874a9f6fb | ||
|
7d91b15bc2 | ||
|
14868a48f7 | ||
|
5b00c6e704 | ||
|
56a8bde81d | ||
|
235d807e93 | ||
|
0eea740999 | ||
|
69ca6360f7 | ||
|
526eeb0b86 | ||
|
9fff8df5c3 | ||
|
f3c64c2ff6 | ||
|
3e37814956 | ||
|
d994133c8b | ||
|
d051c7f304 | ||
|
7ad091b02c | ||
|
c4e621471f | ||
|
f7a8e1a126 | ||
|
6b138e0e75 | ||
|
cf443b52c7 | ||
|
06995f634f | ||
|
afb24c6612 | ||
|
926715dcb8 | ||
|
dd48005fc6 | ||
|
cb75aa3dfe | ||
|
c8a6c7ff02 | ||
|
3315d83248 | ||
|
2bf927dcce | ||
|
065b7b4d37 | ||
|
1f04269566 | ||
|
9eb7ff49a4 | ||
|
ab4db3b681 | ||
|
0e3116b978 | ||
|
89c7f85d5d | ||
|
d80f150bbf | ||
|
7d8190bc7e | ||
|
9ff7c70589 | ||
|
0cbf577433 | ||
|
4f205bc37e | ||
|
30f5352649 | ||
|
15466d7d79 | ||
|
01f45e49d4 | ||
|
e08d22ae86 | ||
|
cc5da81e31 | ||
|
99627c617c | ||
|
6927823307 | ||
|
1d8901f345 | ||
|
418e19a6ff | ||
|
b0de5e98f0 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,3 @@
|
||||
.cache
|
||||
.vscode*
|
||||
*.pyc
|
||||
*.pyo
|
||||
|
@@ -48,7 +48,7 @@ workflow:
|
||||
- if: &is-direct-push $CI_PROJECT_NAMESPACE == "mesa" && $CI_PIPELINE_SOURCE == "push" && $GITLAB_USER_LOGIN != "marge-bot"
|
||||
variables:
|
||||
KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${KERNEL_TAG}
|
||||
JOB_PRIORITY: 70
|
||||
JOB_PRIORITY: 40
|
||||
VALVE_INFRA_VANGOGH_JOB_PRIORITY: priority:low
|
||||
# pre-merge or fork pipeline
|
||||
- if: $FORCE_KERNEL_TAG != null
|
||||
@@ -297,9 +297,9 @@ sanity:
|
||||
image_tags=(
|
||||
DEBIAN_BASE_TAG
|
||||
DEBIAN_BUILD_TAG
|
||||
DEBIAN_TEST_ANDROID_TAG
|
||||
DEBIAN_TEST_GL_TAG
|
||||
DEBIAN_TEST_VK_TAG
|
||||
DEBIAN_X86_64_TEST_ANDROID_TAG
|
||||
DEBIAN_X86_64_TEST_GL_TAG
|
||||
DEBIAN_X86_64_TEST_VK_TAG
|
||||
ALPINE_X86_64_BUILD_TAG
|
||||
ALPINE_X86_64_LAVA_SSH_TAG
|
||||
FEDORA_X86_64_BUILD_TAG
|
||||
|
@@ -5,25 +5,17 @@ target:
|
||||
id: '{{ ci_runner_id }}'
|
||||
|
||||
timeouts:
|
||||
|
||||
first_console_activity: # This limits the time it can take to receive the first console log
|
||||
minutes: {{ timeout_first_console_activity_minutes | default(0, true) }}
|
||||
seconds: {{ timeout_first_console_activity_seconds | default(0, true) }}
|
||||
retries: {{ timeout_first_console_activity_retries }}
|
||||
|
||||
minutes: {{ timeout_first_minutes }}
|
||||
retries: {{ timeout_first_retries }}
|
||||
console_activity: # Reset every time we receive a message from the logs
|
||||
minutes: {{ timeout_console_activity_minutes | default(0, true) }}
|
||||
seconds: {{ timeout_console_activity_seconds | default(0, true) }}
|
||||
retries: {{ timeout_console_activity_retries }}
|
||||
|
||||
minutes: {{ timeout_minutes }}
|
||||
retries: {{ timeout_retries }}
|
||||
boot_cycle:
|
||||
minutes: {{ timeout_boot_minutes | default(0, true) }}
|
||||
seconds: {{ timeout_boot_seconds | default(0, true) }}
|
||||
minutes: {{ timeout_boot_minutes }}
|
||||
retries: {{ timeout_boot_retries }}
|
||||
|
||||
overall: # Maximum time the job can take, not overrideable by the "continue" deployment
|
||||
minutes: {{ timeout_overall_minutes | default(0, true) }}
|
||||
seconds: {{ timeout_overall_seconds | default(0, true) }}
|
||||
minutes: {{ timeout_overall_minutes }}
|
||||
retries: 0
|
||||
# no retries possible here
|
||||
|
||||
@@ -39,38 +31,29 @@ console_patterns:
|
||||
job_success:
|
||||
regex: >-
|
||||
{{ job_success_regex }}
|
||||
{% if job_warn_regex %}
|
||||
job_warn:
|
||||
regex: >-
|
||||
{{ job_warn_regex }}
|
||||
{% endif %}
|
||||
|
||||
# Environment to deploy
|
||||
deployment:
|
||||
# Initial boot
|
||||
start:
|
||||
storage:
|
||||
http:
|
||||
- path: "/b2c-extra-args"
|
||||
data: >
|
||||
b2c.pipefail b2c.poweroff_delay={{ poweroff_delay }}
|
||||
b2c.minio="gateway,{{ '{{' }} minio_url }},{{ '{{' }} job_bucket_access_key }},{{ '{{' }} job_bucket_secret_key }}"
|
||||
b2c.volume="{{ '{{' }} job_bucket }}-results,mirror=gateway/{{ '{{' }} job_bucket }},pull_on=pipeline_start,push_on=changes,overwrite{% for excl in job_volume_exclusions %},exclude={{ excl }}{% endfor %},remove,expiration=pipeline_end,preserve"
|
||||
{% for volume in volumes %}
|
||||
b2c.volume={{ volume }}
|
||||
{% endfor %}
|
||||
b2c.service="--privileged --tls-verify=false --pid=host docker://{{ '{{' }} fdo_proxy_registry }}/gfx-ci/ci-tron/telegraf:latest" b2c.hostname=dut-{{ '{{' }} machine.full_name }}
|
||||
b2c.container="-v {{ '{{' }} job_bucket }}-results:{{ working_dir }} -w {{ working_dir }} {% for mount_volume in mount_volumes %} -v {{ mount_volume }}{% endfor %} --tls-verify=false docker://{{ local_container }} {{ container_cmd }}"
|
||||
kernel:
|
||||
url: '{{ kernel_url }}'
|
||||
|
||||
# NOTE: b2c.cache_device should not be here, but this works around
|
||||
# a limitation of b2c which will be removed in the next release
|
||||
cmdline: >
|
||||
SALAD.machine_id={{ '{{' }} machine_id }}
|
||||
console={{ '{{' }} local_tty_device }},115200
|
||||
b2c.cache_device=auto b2c.ntp_peer=10.42.0.1
|
||||
b2c.extra_args_url={{ '{{' }} job.http.url }}/b2c-extra-args
|
||||
console={{ '{{' }} local_tty_device }},115200 earlyprintk=vga,keep
|
||||
loglevel={{ log_level }} no_hash_pointers
|
||||
b2c.service="--privileged --tls-verify=false --pid=host docker://{{ '{{' }} fdo_proxy_registry }}/gfx-ci/ci-tron/telegraf:latest" b2c.hostname=dut-{{ '{{' }} machine.full_name }}
|
||||
b2c.container="-ti --tls-verify=false docker://{{ '{{' }} fdo_proxy_registry }}/gfx-ci/ci-tron/machine-registration:latest check"
|
||||
b2c.ntp_peer=10.42.0.1 b2c.pipefail b2c.cache_device=auto b2c.poweroff_delay={{ poweroff_delay }}
|
||||
b2c.minio="gateway,{{ '{{' }} minio_url }},{{ '{{' }} job_bucket_access_key }},{{ '{{' }} job_bucket_secret_key }}"
|
||||
b2c.volume="{{ '{{' }} job_bucket }}-results,mirror=gateway/{{ '{{' }} job_bucket }},pull_on=pipeline_start,push_on=changes,overwrite{% for excl in job_volume_exclusions %},exclude={{ excl }}{% endfor %},remove,expiration=pipeline_end,preserve"
|
||||
{% for volume in volumes %}
|
||||
b2c.volume={{ volume }}
|
||||
{% endfor %}
|
||||
b2c.container="-v {{ '{{' }} job_bucket }}-results:{{ working_dir }} -w {{ working_dir }} {% for mount_volume in mount_volumes %} -v {{ mount_volume }}{% endfor %} --tls-verify=false docker://{{ local_container }} {{ container_cmd }}"
|
||||
{% if kernel_cmdline_extras is defined %}
|
||||
{{ kernel_cmdline_extras }}
|
||||
{% endif %}
|
||||
|
@@ -10,7 +10,7 @@ if [ -z "$BM_POE_ADDRESS" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SNMP_KEY="SNMPv2-SMI::mib-2.105.1.1.1.3.1.$((${BM_POE_BASE:-0} + BM_POE_INTERFACE))"
|
||||
SNMP_KEY="SNMPv2-SMI::mib-2.105.1.1.1.3.1.$((48 + BM_POE_INTERFACE))"
|
||||
SNMP_OFF="i 2"
|
||||
|
||||
flock /var/run/poe.lock -c "snmpset -v2c -r 3 -t 30 -cmesaci $BM_POE_ADDRESS $SNMP_KEY $SNMP_OFF"
|
||||
|
@@ -10,7 +10,7 @@ if [ -z "$BM_POE_ADDRESS" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SNMP_KEY="SNMPv2-SMI::mib-2.105.1.1.1.3.1.$((${BM_POE_BASE:-0} + BM_POE_INTERFACE))"
|
||||
SNMP_KEY="SNMPv2-SMI::mib-2.105.1.1.1.3.1.$((48 + BM_POE_INTERFACE))"
|
||||
SNMP_ON="i 1"
|
||||
SNMP_OFF="i 2"
|
||||
|
||||
|
@@ -64,7 +64,7 @@ class PoERun:
|
||||
if not boot_detected:
|
||||
self.print_error(
|
||||
"Something wrong; couldn't detect the boot start up sequence")
|
||||
return 2
|
||||
return 1
|
||||
|
||||
self.logger.create_job_phase("test")
|
||||
for line in self.ser.lines(timeout=self.test_timeout, phase="test"):
|
||||
|
@@ -77,7 +77,7 @@ debian-testing:
|
||||
-D gallium-nine=true
|
||||
-D gallium-va=enabled
|
||||
-D gallium-rusticl=true
|
||||
GALLIUM_DRIVERS: "llvmpipe,softpipe,virgl,radeonsi,zink,crocus,iris,i915,r300,svga"
|
||||
GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,crocus,iris,i915,r300,svga"
|
||||
VULKAN_DRIVERS: "swrast,amd,intel,intel_hasvk,virtio,nouveau"
|
||||
BUILDTYPE: "debugoptimized"
|
||||
EXTRA_OPTION: >
|
||||
@@ -138,7 +138,7 @@ debian-testing-msan:
|
||||
# GLSL has some issues in sexpression reading.
|
||||
# gtest has issues in its test initialization.
|
||||
MESON_TEST_ARGS: "--suite glcpp --suite format"
|
||||
GALLIUM_DRIVERS: "freedreno,iris,nouveau,r300,r600,llvmpipe,softpipe,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus"
|
||||
GALLIUM_DRIVERS: "freedreno,iris,nouveau,kmsro,r300,r600,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus"
|
||||
VULKAN_DRIVERS: intel,amd,broadcom,virtio
|
||||
# Do a host build for intel-clc (msan complains about
|
||||
# uninitialized values in the LLVM libs)
|
||||
@@ -154,9 +154,7 @@ debian-testing-msan:
|
||||
-D intel-clc=enabled
|
||||
-D install-intel-clc=true
|
||||
|
||||
# Disabled because it is unacceptably slow and blocks too many MRs
|
||||
# Should be re-enabled once this problem has been fixed.
|
||||
.debian-build-testing:
|
||||
debian-build-testing:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
BUILDTYPE: debug
|
||||
@@ -174,9 +172,9 @@ debian-testing-msan:
|
||||
-D gallium-omx=bellagio
|
||||
-D gallium-va=enabled
|
||||
-D gallium-xa=enabled
|
||||
-D gallium-nine=false
|
||||
-D gallium-nine=true
|
||||
-D gallium-rusticl=false
|
||||
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,freedreno,llvmpipe,softpipe,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus"
|
||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus"
|
||||
VULKAN_DRIVERS: swrast
|
||||
EXTRA_OPTION: >
|
||||
-D spirv-to-dxil=true
|
||||
@@ -192,24 +190,24 @@ debian-testing-msan:
|
||||
.gitlab-ci/run-shellcheck.sh
|
||||
section_switch yamllint "yamllint"
|
||||
.gitlab-ci/run-yamllint.sh
|
||||
section_end yamllint
|
||||
section_switch meson "meson"
|
||||
.gitlab-ci/meson/build.sh
|
||||
.gitlab-ci/prepare-artifacts.sh
|
||||
timeout: 15m
|
||||
|
||||
# Disabled because it currently needs debian-build-testing
|
||||
.shader-db:
|
||||
shader-db:
|
||||
stage: code-validation
|
||||
extends:
|
||||
- .use-debian/x86_64_build
|
||||
- .container+build-rules
|
||||
needs:
|
||||
- .debian-build-testing
|
||||
- debian-build-testing
|
||||
variables:
|
||||
S3_ARTIFACT_NAME: debian-build-testing
|
||||
before_script:
|
||||
- !reference [.download_s3, before_script]
|
||||
script: |
|
||||
section_switch shader-db "shader-db"
|
||||
.gitlab-ci/run-shader-db.sh
|
||||
artifacts:
|
||||
paths:
|
||||
@@ -240,7 +238,7 @@ debian-release:
|
||||
-D gallium-nine=false
|
||||
-D gallium-rusticl=false
|
||||
-D llvm=enabled
|
||||
GALLIUM_DRIVERS: "i915,iris,nouveau,freedreno,r300,svga,llvmpipe,softpipe,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,crocus"
|
||||
GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,crocus"
|
||||
VULKAN_DRIVERS: "amd,imagination-experimental,microsoft-experimental"
|
||||
EXTRA_OPTION: >
|
||||
-D spirv-to-dxil=true
|
||||
@@ -273,7 +271,7 @@ alpine-build-testing:
|
||||
-D glvnd=disabled
|
||||
-D platforms=wayland
|
||||
LLVM_VERSION: "16"
|
||||
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,iris,lima,nouveau,panfrost,r300,r600,radeonsi,svga,llvmpipe,softpipe,tegra,v3d,vc4,virgl,zink"
|
||||
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink"
|
||||
GALLIUM_ST: >
|
||||
-D dri3=enabled
|
||||
-D gallium-extra-hud=true
|
||||
@@ -321,7 +319,7 @@ fedora-release:
|
||||
-D intel-rt=enabled
|
||||
-D imagination-srv=true
|
||||
-D teflon=true
|
||||
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,i915,iris,lima,nouveau,panfrost,r300,r600,radeonsi,svga,llvmpipe,softpipe,tegra,v3d,vc4,virgl,zink"
|
||||
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,i915,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink"
|
||||
GALLIUM_ST: >
|
||||
-D dri3=enabled
|
||||
-D gallium-extra-hud=true
|
||||
@@ -433,7 +431,7 @@ debian-android:
|
||||
- debian/arm64_build
|
||||
variables:
|
||||
VULKAN_DRIVERS: freedreno,broadcom
|
||||
GALLIUM_DRIVERS: "etnaviv,freedreno,lima,nouveau,panfrost,llvmpipe,softpipe,tegra,v3d,vc4,zink"
|
||||
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4,zink"
|
||||
BUILDTYPE: "debugoptimized"
|
||||
tags:
|
||||
- aarch64
|
||||
@@ -446,8 +444,6 @@ debian-arm32:
|
||||
CROSS: armhf
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
# remove llvmpipe from the .meson-arm list because here we have llvm=disabled
|
||||
GALLIUM_DRIVERS: "etnaviv,freedreno,lima,nouveau,panfrost,softpipe,tegra,v3d,vc4,zink"
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=disabled
|
||||
-D valgrind=disabled
|
||||
@@ -486,13 +482,12 @@ debian-arm64:
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=disabled
|
||||
-D valgrind=disabled
|
||||
-D imagination-srv=true
|
||||
-D perfetto=true
|
||||
-D freedreno-kmds=msm,virtio
|
||||
-D teflon=true
|
||||
GALLIUM_ST:
|
||||
-D gallium-rusticl=true
|
||||
S3_ARTIFACT_NAME: mesa-arm64-default-${BUILDTYPE}
|
||||
script:
|
||||
- .gitlab-ci/meson/build.sh
|
||||
@@ -505,6 +500,7 @@ debian-arm64-asan:
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=disabled
|
||||
-D b_sanitize=address
|
||||
-D valgrind=disabled
|
||||
-D tools=dlclose-skip
|
||||
@@ -575,7 +571,7 @@ debian-clang:
|
||||
-D shared-llvm=enabled
|
||||
-D opencl-spirv=true
|
||||
-D shared-glapi=enabled
|
||||
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,freedreno,llvmpipe,softpipe,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus,i915,asahi"
|
||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus,i915,asahi"
|
||||
VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio,swrast,panfrost,imagination-experimental,microsoft-experimental,nouveau
|
||||
EXTRA_OPTION:
|
||||
-D spirv-to-dxil=true
|
||||
@@ -670,7 +666,7 @@ debian-x86_32:
|
||||
BUILDTYPE: debug
|
||||
CROSS: i386
|
||||
VULKAN_DRIVERS: intel,amd,swrast,virtio
|
||||
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,llvmpipe,softpipe,virgl,zink,crocus,d3d12"
|
||||
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,swrast,virgl,zink,crocus,d3d12"
|
||||
LLVM_VERSION: 15
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
@@ -698,7 +694,7 @@ debian-s390x:
|
||||
- kvm
|
||||
variables:
|
||||
CROSS: s390x
|
||||
GALLIUM_DRIVERS: "llvmpipe,softpipe,zink"
|
||||
GALLIUM_DRIVERS: "swrast,zink"
|
||||
LLVM_VERSION: 15
|
||||
VULKAN_DRIVERS: "swrast"
|
||||
DRI_LOADERS:
|
||||
@@ -712,7 +708,7 @@ debian-ppc64el:
|
||||
variables:
|
||||
BUILDTYPE: debug
|
||||
CROSS: ppc64el
|
||||
GALLIUM_DRIVERS: "nouveau,radeonsi,llvmpipe,softpipe,virgl,zink"
|
||||
GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl,zink"
|
||||
VULKAN_DRIVERS: "amd,swrast"
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
|
@@ -84,7 +84,6 @@ VARS=(
|
||||
MESA_IMAGE_PATH
|
||||
MESA_IMAGE_TAG
|
||||
MESA_LOADER_DRIVER_OVERRIDE
|
||||
MESA_SPIRV_LOG_LEVEL
|
||||
MESA_TEMPLATES_COMMIT
|
||||
MESA_VK_ABORT_ON_DEVICE_LOSS
|
||||
MESA_VK_IGNORE_CONFORMANCE_WARNING
|
||||
@@ -118,19 +117,17 @@ VARS=(
|
||||
TU_DEBUG
|
||||
USE_ANGLE
|
||||
VIRGL_HOST_API
|
||||
VIRGL_RENDER_SERVER
|
||||
WAFFLE_PLATFORM
|
||||
VK_CPU
|
||||
VK_DRIVER
|
||||
# required by virglrender CI
|
||||
VK_DRIVER_FILES
|
||||
VKD3D_PROTON_RESULTS
|
||||
VKD3D_CONFIG
|
||||
VKD3D_TEST_EXCLUDE
|
||||
ZINK_DESCRIPTORS
|
||||
ZINK_DEBUG
|
||||
LVP_POISON_MEMORY
|
||||
|
||||
# Dead code within Mesa CI, but required by virglrender CI
|
||||
# (because they include our files in their CI)
|
||||
VK_DRIVER_FILES
|
||||
)
|
||||
|
||||
for var in "${VARS[@]}"; do
|
||||
|
@@ -158,9 +158,6 @@ if [ -x /capture-devcoredump.sh ]; then
|
||||
BACKGROUND_PIDS="$! $BACKGROUND_PIDS"
|
||||
fi
|
||||
|
||||
ARCH=$(uname -m)
|
||||
export VK_DRIVER_FILES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$ARCH.json"
|
||||
|
||||
# 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
|
||||
@@ -168,6 +165,7 @@ export VK_DRIVER_FILES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$ARCH.json"
|
||||
if [ -n "$HWCI_START_XORG" ]; then
|
||||
echo "touch /xorg-started; sleep 100000" > /xorg-script
|
||||
env \
|
||||
VK_DRIVER_FILES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$(uname -m).json" \
|
||||
xinit /bin/sh /xorg-script -- /usr/bin/Xorg -noreset -s 0 -dpms -logfile /Xorg.0.log &
|
||||
BACKGROUND_PIDS="$! $BACKGROUND_PIDS"
|
||||
|
||||
@@ -194,6 +192,7 @@ if [ -n "$HWCI_START_WESTON" ]; then
|
||||
mkdir -p /tmp/.X11-unix
|
||||
|
||||
env \
|
||||
VK_DRIVER_FILES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$(uname -m).json" \
|
||||
weston -Bheadless-backend.so --use-gl -Swayland-0 --xwayland --idle-time=0 &
|
||||
BACKGROUND_PIDS="$! $BACKGROUND_PIDS"
|
||||
|
||||
|
@@ -18,7 +18,7 @@ DEPS=(
|
||||
bash
|
||||
bison
|
||||
ccache
|
||||
"clang${LLVM_VERSION}-dev"
|
||||
clang16-dev
|
||||
cmake
|
||||
clang-dev
|
||||
coreutils
|
||||
@@ -29,13 +29,10 @@ DEPS=(
|
||||
git
|
||||
gettext
|
||||
glslang
|
||||
graphviz
|
||||
linux-headers
|
||||
"llvm${LLVM_VERSION}-static"
|
||||
"llvm${LLVM_VERSION}-dev"
|
||||
llvm16-static
|
||||
llvm16-dev
|
||||
meson
|
||||
mold
|
||||
musl-dev
|
||||
expat-dev
|
||||
elfutils-dev
|
||||
libdrm-dev
|
||||
@@ -44,13 +41,9 @@ DEPS=(
|
||||
libpciaccess-dev
|
||||
zlib-dev
|
||||
python3-dev
|
||||
py3-clang
|
||||
py3-cparser
|
||||
py3-mako
|
||||
py3-packaging
|
||||
py3-pip
|
||||
py3-ply
|
||||
py3-yaml
|
||||
vulkan-headers
|
||||
spirv-tools-dev
|
||||
util-macros
|
||||
@@ -60,8 +53,6 @@ DEPS=(
|
||||
|
||||
apk --no-cache add "${DEPS[@]}" "${EPHEMERAL[@]}"
|
||||
|
||||
pip3 install --break-system-packages sphinx===5.1.1 hawkmoth===0.16.0
|
||||
|
||||
. .gitlab-ci/container/build-llvm-spirv.sh
|
||||
|
||||
. .gitlab-ci/container/build-libclc.sh
|
||||
|
@@ -1,12 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# KERNEL_ROOTFS_TAG
|
||||
|
||||
set -ex
|
||||
|
||||
ANGLE_REV="1409a05a81e3ccb279142433a2b987bc330f555b"
|
||||
ANGLE_REV="0518a3ff4d4e7e5b2ce8203358f719613a31c118"
|
||||
|
||||
# DEPOT tools
|
||||
git clone --depth 1 https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
||||
|
@@ -3,8 +3,8 @@
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_TEST_GL_TAG
|
||||
# DEBIAN_TEST_VK_TAG
|
||||
# DEBIAN_X86_64_TEST_GL_TAG
|
||||
# DEBIAN_X86_64_TEST_VK_TAG
|
||||
# KERNEL_ROOTFS_TAG
|
||||
|
||||
set -ex
|
||||
|
@@ -1,20 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2086 # we want word splitting
|
||||
|
||||
BINDGEN_VER=0.65.1
|
||||
CBINDGEN_VER=0.26.0
|
||||
|
||||
# bindgen
|
||||
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
||||
bindgen-cli --version ${BINDGEN_VER} \
|
||||
--locked \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--root /usr/local
|
||||
|
||||
# cbindgen
|
||||
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
||||
cbindgen --version ${CBINDGEN_VER} \
|
||||
--locked \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--root /usr/local
|
||||
|
@@ -3,9 +3,9 @@
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_TEST_ANDROID_TAG
|
||||
# DEBIAN_TEST_GL_TAG
|
||||
# DEBIAN_TEST_VK_TAG
|
||||
# DEBIAN_X86_64_TEST_ANDROID_TAG
|
||||
# DEBIAN_X86_64_TEST_GL_TAG
|
||||
# DEBIAN_X86_64_TEST_VK_TAG
|
||||
# KERNEL_ROOTFS_TAG
|
||||
|
||||
set -ex
|
||||
|
@@ -3,9 +3,9 @@
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_TEST_ANDROID_TAG
|
||||
# DEBIAN_TEST_GL_TAG
|
||||
# DEBIAN_TEST_VK_TAG
|
||||
# DEBIAN_X86_64_TEST_ANDROID_TAG
|
||||
# DEBIAN_X86_64_TEST_GL_TAG
|
||||
# DEBIAN_X86_64_TEST_VK_TAG
|
||||
# KERNEL_ROOTFS_TAG
|
||||
|
||||
set -ex -o pipefail
|
||||
@@ -17,8 +17,8 @@ set -ex -o pipefail
|
||||
# - the GLES release produces `deqp-gles*` and `deqp-egl`
|
||||
|
||||
DEQP_VK_VERSION=1.3.8.2
|
||||
DEQP_GL_VERSION=4.6.4.1
|
||||
DEQP_GLES_VERSION=3.2.10.1
|
||||
DEQP_GL_VERSION=4.6.4.0
|
||||
DEQP_GLES_VERSION=3.2.10.0
|
||||
|
||||
# Patches to VulkanCTS may come from commits in their repo (listed in
|
||||
# cts_commits_to_backport) or patch files stored in our repo (in the patch
|
||||
@@ -33,9 +33,6 @@ vk_cts_commits_to_backport=(
|
||||
|
||||
# Remove "unused shader stages" tests
|
||||
7dac86c6bbd15dec91d7d9a98cd6dd57c11092a7
|
||||
|
||||
# Emit point size from "many indirect draws" test
|
||||
771e56d1c4d03e073ddb7f1200ad6d57e0a0c979
|
||||
)
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
@@ -67,10 +64,14 @@ fi
|
||||
# shellcheck disable=SC2034
|
||||
# GLES builds also EGL
|
||||
gles_cts_commits_to_backport=(
|
||||
# Implement support for the EGL_EXT_config_select_group extension
|
||||
88ba9ac270db5be600b1ecacbc6d9db0c55d5be4
|
||||
)
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
gles_cts_patch_files=(
|
||||
# Correct detection mechanism for EGL_EXT_config_select_group extension
|
||||
build-deqp-egl_Correct-EGL_EXT_config_select_group-extension-query.patch
|
||||
)
|
||||
|
||||
if [ "${DEQP_TARGET}" = 'android' ]; then
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_TEST_VK_TAG
|
||||
# DEBIAN_X86_64_TEST_VK_TAG
|
||||
# KERNEL_ROOTFS_TAG
|
||||
|
||||
set -ex
|
||||
|
@@ -1,11 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
# Script used for Android and Fedora builds (Debian builds get their libdrm version
|
||||
# from https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo - see PKG_REPO_REV)
|
||||
# Script used for Android and Fedora builds
|
||||
# shellcheck disable=SC2086 # we want word splitting
|
||||
|
||||
set -ex
|
||||
|
||||
export LIBDRM_VERSION=libdrm-2.4.122
|
||||
export LIBDRM_VERSION=libdrm-2.4.119
|
||||
|
||||
curl -L -O --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
https://dri.freedesktop.org/libdrm/"$LIBDRM_VERSION".tar.xz
|
||||
|
@@ -4,13 +4,12 @@ set -ex
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# ALPINE_X86_64_BUILD_TAG
|
||||
# DEBIAN_BASE_TAG
|
||||
# DEBIAN_BUILD_TAG
|
||||
# FEDORA_X86_64_BUILD_TAG
|
||||
# KERNEL_ROOTFS_TAG
|
||||
|
||||
MOLD_VERSION="2.32.0"
|
||||
MOLD_VERSION="2.4.1"
|
||||
|
||||
git clone -b v"$MOLD_VERSION" --single-branch --depth 1 https://github.com/rui314/mold.git
|
||||
pushd mold
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_TEST_GL_TAG
|
||||
# DEBIAN_X86_64_TEST_GL_TAG
|
||||
|
||||
set -ex -o pipefail
|
||||
|
||||
|
@@ -4,11 +4,11 @@ set -ex
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_TEST_GL_TAG
|
||||
# DEBIAN_TEST_VK_TAG
|
||||
# DEBIAN_X86_64_TEST_GL_TAG
|
||||
# DEBIAN_X86_64_TEST_VK_TAG
|
||||
# KERNEL_ROOTFS_TAG
|
||||
|
||||
REV="582f5490a124c27c26d3a452fee03a8c85fa9a5c"
|
||||
REV="f7ece74a107a2f99b2f494d978c84f8d51faa703"
|
||||
|
||||
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
|
||||
pushd /piglit
|
||||
|
@@ -2,11 +2,11 @@
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_TEST_VK_TAG
|
||||
# DEBIAN_X86_64_TEST_VK_TAG
|
||||
# KERNEL_ROOTFS_TAG
|
||||
set -ex
|
||||
|
||||
VKD3D_PROTON_COMMIT="3d46c082906c77544385d10801e4c0184f0385d9"
|
||||
VKD3D_PROTON_COMMIT="c3b385606a93baed42482d822805e0d9c2f3f603"
|
||||
|
||||
VKD3D_PROTON_DST_DIR="/vkd3d-proton-tests"
|
||||
VKD3D_PROTON_SRC_DIR="/vkd3d-proton-src"
|
||||
|
@@ -2,12 +2,12 @@
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_TEST_GL_TAG
|
||||
# KERNEL_ROOTFS_TAG
|
||||
# DEBIAN_X86_64_TEST_GL_TAG
|
||||
# KERNEL_ROOTFS_TAG:
|
||||
|
||||
set -ex
|
||||
|
||||
VALIDATION_TAG="v1.3.289"
|
||||
VALIDATION_TAG="v1.3.281"
|
||||
|
||||
git clone -b "$VALIDATION_TAG" --single-branch --depth 1 https://github.com/KhronosGroup/Vulkan-ValidationLayers.git
|
||||
pushd Vulkan-ValidationLayers
|
||||
|
@@ -6,9 +6,9 @@ set -ex
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_BUILD_TAG
|
||||
# DEBIAN_TEST_ANDROID_TAG
|
||||
# DEBIAN_TEST_GL_TAG
|
||||
# DEBIAN_TEST_VK_TAG
|
||||
# DEBIAN_X86_64_TEST_ANDROID_TAG
|
||||
# DEBIAN_X86_64_TEST_GL_TAG
|
||||
# DEBIAN_X86_64_TEST_VK_TAG
|
||||
# FEDORA_X86_64_BUILD_TAG
|
||||
# KERNEL_ROOTFS_TAG
|
||||
|
||||
|
@@ -22,7 +22,7 @@ cpp = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}${sdk_v
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
strip = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip'
|
||||
pkg-config = ['/usr/bin/pkgconf']
|
||||
pkgconfig = ['/usr/bin/pkgconf']
|
||||
|
||||
[host_machine]
|
||||
system = 'android'
|
||||
|
5
.gitlab-ci/container/debian/arm32_test.sh
Normal file
5
.gitlab-ci/container/debian/arm32_test.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
arch=armhf . .gitlab-ci/container/debian/arm_test.sh
|
@@ -26,7 +26,6 @@ DEPS=(
|
||||
ccache
|
||||
cmake
|
||||
curl
|
||||
"clang-${LLVM_VERSION}"
|
||||
fastboot
|
||||
flatbuffers-compiler
|
||||
flex
|
||||
@@ -34,15 +33,11 @@ DEPS=(
|
||||
git
|
||||
glslang-tools
|
||||
kmod
|
||||
"libclang-${LLVM_VERSION}-dev"
|
||||
"libclang-cpp${LLVM_VERSION}-dev"
|
||||
"libclang-common-${LLVM_VERSION}-dev"
|
||||
libasan8
|
||||
libdrm-dev
|
||||
libelf-dev
|
||||
libexpat1-dev
|
||||
libflatbuffers-dev
|
||||
"libllvm${LLVM_VERSION}"
|
||||
libvulkan-dev
|
||||
libx11-dev
|
||||
libx11-xcb-dev
|
||||
@@ -91,16 +86,6 @@ arch=armhf
|
||||
|
||||
. .gitlab-ci/container/build-wayland.sh
|
||||
|
||||
. .gitlab-ci/container/build-llvm-spirv.sh
|
||||
|
||||
. .gitlab-ci/container/build-libclc.sh
|
||||
|
||||
. .gitlab-ci/container/install-meson.sh
|
||||
|
||||
. .gitlab-ci/container/build-rust.sh
|
||||
|
||||
. .gitlab-ci/container/build-bindgen.sh
|
||||
|
||||
apt-get purge -y "${EPHEMERAL[@]}"
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
||||
|
@@ -1,4 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
DEBIAN_ARCH=arm64 \
|
||||
. .gitlab-ci/container/debian/test-base.sh
|
@@ -1,3 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
. .gitlab-ci/container/debian/test-gl.sh
|
@@ -1,3 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
. .gitlab-ci/container/debian/test-vk.sh
|
5
.gitlab-ci/container/debian/arm64_test.sh
Normal file
5
.gitlab-ci/container/debian/arm64_test.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
arch=arm64 . .gitlab-ci/container/debian/arm_test.sh
|
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
arch=armhf . .gitlab-ci/container/debian/baremetal_arm_test.sh
|
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
arch=arm64 . .gitlab-ci/container/debian/baremetal_arm_test.sh
|
@@ -1,160 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2086 # we want word splitting
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_BASE_TAG
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get install -y ca-certificates gnupg2 software-properties-common
|
||||
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/*
|
||||
|
||||
echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list
|
||||
|
||||
export LLVM_VERSION="${LLVM_VERSION:=15}"
|
||||
|
||||
# Ephemeral packages (installed for this script and removed again at the end)
|
||||
EPHEMERAL=(
|
||||
autoconf
|
||||
automake
|
||||
bc
|
||||
bison
|
||||
bzip2
|
||||
ccache
|
||||
cmake
|
||||
"clang-${LLVM_VERSION}"
|
||||
dpkg-dev
|
||||
flex
|
||||
glslang-tools
|
||||
g++
|
||||
libasound2-dev
|
||||
libcap-dev
|
||||
"libclang-cpp${LLVM_VERSION}-dev"
|
||||
libdrm-dev
|
||||
libegl-dev
|
||||
libelf-dev
|
||||
libepoxy-dev
|
||||
libgbm-dev
|
||||
libpciaccess-dev
|
||||
libssl-dev
|
||||
libvulkan-dev
|
||||
libwayland-dev
|
||||
libx11-xcb-dev
|
||||
libxext-dev
|
||||
"llvm-${LLVM_VERSION}-dev"
|
||||
make
|
||||
meson
|
||||
openssh-server
|
||||
patch
|
||||
pkgconf
|
||||
protobuf-compiler
|
||||
python3-dev
|
||||
python3-pip
|
||||
python3-setuptools
|
||||
python3-wheel
|
||||
spirv-tools
|
||||
wayland-protocols
|
||||
xz-utils
|
||||
)
|
||||
|
||||
DEPS=(
|
||||
apt-utils
|
||||
curl
|
||||
git
|
||||
git-lfs
|
||||
inetutils-syslogd
|
||||
iptables
|
||||
jq
|
||||
libasan8
|
||||
libdrm2
|
||||
libexpat1
|
||||
"libllvm${LLVM_VERSION}"
|
||||
liblz4-1
|
||||
libpng16-16
|
||||
libpython3.11
|
||||
libvulkan1
|
||||
libwayland-client0
|
||||
libwayland-server0
|
||||
libxcb-ewmh2
|
||||
libxcb-randr0
|
||||
libxcb-xfixes0
|
||||
libxkbcommon0
|
||||
libxrandr2
|
||||
libxrender1
|
||||
python3-mako
|
||||
python3-numpy
|
||||
python3-packaging
|
||||
python3-pil
|
||||
python3-requests
|
||||
python3-six
|
||||
python3-yaml
|
||||
socat
|
||||
vulkan-tools
|
||||
waffle-utils
|
||||
xauth
|
||||
xvfb
|
||||
zlib1g
|
||||
zstd
|
||||
)
|
||||
|
||||
apt-get update
|
||||
apt-get dist-upgrade -y
|
||||
|
||||
apt-get install --purge -y \
|
||||
sysvinit-core libelogind0
|
||||
|
||||
apt-get install -y --no-remove "${DEPS[@]}"
|
||||
|
||||
apt-get install -y --no-install-recommends "${EPHEMERAL[@]}"
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
############### Download prebuilt kernel
|
||||
|
||||
if [ "$DEBIAN_ARCH" = amd64 ]; then
|
||||
export KERNEL_IMAGE_NAME=bzImage
|
||||
|
||||
mkdir -p /lava-files/
|
||||
. .gitlab-ci/container/download-prebuilt-kernel.sh
|
||||
fi
|
||||
|
||||
# Needed for ci-fairy, this revision is able to upload files to MinIO
|
||||
# and doesn't depend on git
|
||||
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2
|
||||
|
||||
# Needed for manipulation with traces yaml files.
|
||||
pip3 install --break-system-packages yq
|
||||
|
||||
. .gitlab-ci/container/build-mold.sh
|
||||
|
||||
############### Build LLVM-SPIRV translator
|
||||
|
||||
. .gitlab-ci/container/build-llvm-spirv.sh
|
||||
|
||||
############### Build libclc
|
||||
|
||||
. .gitlab-ci/container/build-libclc.sh
|
||||
|
||||
############### Build Wayland
|
||||
|
||||
. .gitlab-ci/container/build-wayland.sh
|
||||
|
||||
############### Build Crosvm
|
||||
|
||||
. .gitlab-ci/container/build-rust.sh
|
||||
. .gitlab-ci/container/build-crosvm.sh
|
||||
|
||||
############### Build dEQP runner
|
||||
. .gitlab-ci/container/build-deqp-runner.sh
|
||||
|
||||
|
||||
apt-get purge -y "${EPHEMERAL[@]}"
|
||||
|
||||
rm -rf /root/.rustup
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
@@ -1,124 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2086 # we want word splitting
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
export LLVM_VERSION="${LLVM_VERSION:=15}"
|
||||
|
||||
apt-get install -y libelogind0 # this interfere with systemd deps, install separately
|
||||
|
||||
# Ephemeral packages (installed for this script and removed again at the end)
|
||||
EPHEMERAL=(
|
||||
bzip2
|
||||
ccache
|
||||
"clang-${LLVM_VERSION}"
|
||||
cmake
|
||||
dpkg-dev
|
||||
g++
|
||||
glslang-tools
|
||||
libasound2-dev
|
||||
libcap-dev
|
||||
"libclang-cpp${LLVM_VERSION}-dev"
|
||||
libdrm-dev
|
||||
libgles2-mesa-dev
|
||||
libgtest-dev
|
||||
libpciaccess-dev
|
||||
libpng-dev
|
||||
libudev-dev
|
||||
libvulkan-dev
|
||||
libwaffle-dev
|
||||
libwayland-dev
|
||||
libx11-xcb-dev
|
||||
libxcb-dri2-0-dev
|
||||
libxcb-dri3-dev
|
||||
libxcb-present-dev
|
||||
libxfixes-dev
|
||||
libxkbcommon-dev
|
||||
libxrandr-dev
|
||||
libxrender-dev
|
||||
"llvm-${LLVM_VERSION}-dev"
|
||||
make
|
||||
meson
|
||||
ocl-icd-opencl-dev
|
||||
patch
|
||||
pkgconf
|
||||
python3-distutils
|
||||
xz-utils
|
||||
)
|
||||
|
||||
DEPS=(
|
||||
clinfo
|
||||
iptables
|
||||
kmod
|
||||
"libclang-common-${LLVM_VERSION}-dev"
|
||||
"libclang-cpp${LLVM_VERSION}"
|
||||
libcap2
|
||||
libegl1
|
||||
libepoxy0
|
||||
libfdt1
|
||||
libxcb-shm0
|
||||
ocl-icd-libopencl1
|
||||
python3-lxml
|
||||
python3-renderdoc
|
||||
python3-simplejson
|
||||
spirv-tools
|
||||
sysvinit-core
|
||||
weston
|
||||
xwayland
|
||||
)
|
||||
|
||||
apt-get update
|
||||
|
||||
apt-get install -y --no-remove "${DEPS[@]}" "${EPHEMERAL[@]}" \
|
||||
$EXTRA_LOCAL_PACKAGES
|
||||
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
############### Build piglit
|
||||
|
||||
PIGLIT_OPTS="-DPIGLIT_USE_WAFFLE=ON
|
||||
-DPIGLIT_USE_GBM=ON
|
||||
-DPIGLIT_USE_WAYLAND=ON
|
||||
-DPIGLIT_USE_X11=ON
|
||||
-DPIGLIT_BUILD_GLX_TESTS=ON
|
||||
-DPIGLIT_BUILD_EGL_TESTS=ON
|
||||
-DPIGLIT_BUILD_WGL_TESTS=OFF
|
||||
-DPIGLIT_BUILD_GL_TESTS=ON
|
||||
-DPIGLIT_BUILD_GLES1_TESTS=ON
|
||||
-DPIGLIT_BUILD_GLES2_TESTS=ON
|
||||
-DPIGLIT_BUILD_GLES3_TESTS=ON
|
||||
-DPIGLIT_BUILD_CL_TESTS=ON
|
||||
-DPIGLIT_BUILD_VK_TESTS=ON
|
||||
-DPIGLIT_BUILD_DMA_BUF_TESTS=ON" \
|
||||
. .gitlab-ci/container/build-piglit.sh
|
||||
|
||||
############### Build dEQP GL
|
||||
|
||||
DEQP_API=GL \
|
||||
DEQP_TARGET=surfaceless \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
DEQP_API=GLES \
|
||||
DEQP_TARGET=surfaceless \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
############### Build apitrace
|
||||
|
||||
. .gitlab-ci/container/build-apitrace.sh
|
||||
|
||||
############### Build validation layer for zink
|
||||
|
||||
. .gitlab-ci/container/build-vulkan-validation.sh
|
||||
|
||||
############### Build nine tests
|
||||
|
||||
. .gitlab-ci/container/build-ninetests.sh
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
apt-get purge -y "${EPHEMERAL[@]}"
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
@@ -1,145 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# The relative paths in this file only become valid at runtime.
|
||||
# shellcheck disable=SC1091
|
||||
# shellcheck disable=SC2086 # we want word splitting
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get install -y libelogind0 # this interfere with systemd deps, install separately
|
||||
|
||||
# Ephemeral packages (installed for this script and removed again at the end)
|
||||
EPHEMERAL=(
|
||||
ccache
|
||||
cmake
|
||||
dpkg-dev
|
||||
g++
|
||||
glslang-tools
|
||||
libexpat1-dev
|
||||
gnupg2
|
||||
libdrm-dev
|
||||
libgbm-dev
|
||||
libgles2-mesa-dev
|
||||
liblz4-dev
|
||||
libpciaccess-dev
|
||||
libudev-dev
|
||||
libvulkan-dev
|
||||
libwaffle-dev
|
||||
libx11-xcb-dev
|
||||
libxcb-dri2-0-dev
|
||||
libxcb-ewmh-dev
|
||||
libxcb-keysyms1-dev
|
||||
libxkbcommon-dev
|
||||
libxrandr-dev
|
||||
libxrender-dev
|
||||
libzstd-dev
|
||||
meson
|
||||
p7zip
|
||||
patch
|
||||
pkgconf
|
||||
python3-dev
|
||||
python3-distutils
|
||||
python3-pip
|
||||
python3-setuptools
|
||||
python3-wheel
|
||||
software-properties-common
|
||||
wine64-tools
|
||||
xz-utils
|
||||
)
|
||||
|
||||
DEPS=(
|
||||
curl
|
||||
libepoxy0
|
||||
libxcb-shm0
|
||||
pciutils
|
||||
python3-lxml
|
||||
python3-simplejson
|
||||
sysvinit-core
|
||||
weston
|
||||
xwayland
|
||||
wine
|
||||
wine64
|
||||
xinit
|
||||
xserver-xorg-video-amdgpu
|
||||
xserver-xorg-video-ati
|
||||
)
|
||||
|
||||
apt-get update
|
||||
|
||||
apt-get install -y --no-remove --no-install-recommends \
|
||||
"${DEPS[@]}" "${EPHEMERAL[@]}"
|
||||
|
||||
############### Install DXVK
|
||||
|
||||
. .gitlab-ci/container/setup-wine.sh "/dxvk-wine64"
|
||||
. .gitlab-ci/container/install-wine-dxvk.sh
|
||||
|
||||
############### Install apitrace binaries for wine
|
||||
|
||||
. .gitlab-ci/container/install-wine-apitrace.sh
|
||||
# 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 replayer
|
||||
# We don't run any _piglit_ Vulkan tests in the containers.
|
||||
PIGLIT_OPTS="-DPIGLIT_USE_WAFFLE=ON
|
||||
-DPIGLIT_USE_GBM=OFF
|
||||
-DPIGLIT_USE_WAYLAND=OFF
|
||||
-DPIGLIT_USE_X11=OFF
|
||||
-DPIGLIT_BUILD_GLX_TESTS=OFF
|
||||
-DPIGLIT_BUILD_EGL_TESTS=OFF
|
||||
-DPIGLIT_BUILD_WGL_TESTS=OFF
|
||||
-DPIGLIT_BUILD_GL_TESTS=OFF
|
||||
-DPIGLIT_BUILD_GLES1_TESTS=OFF
|
||||
-DPIGLIT_BUILD_GLES2_TESTS=OFF
|
||||
-DPIGLIT_BUILD_GLES3_TESTS=OFF
|
||||
-DPIGLIT_BUILD_CL_TESTS=OFF
|
||||
-DPIGLIT_BUILD_VK_TESTS=OFF
|
||||
-DPIGLIT_BUILD_DMA_BUF_TESTS=OFF" \
|
||||
PIGLIT_BUILD_TARGETS="piglit_replayer" \
|
||||
. .gitlab-ci/container/build-piglit.sh
|
||||
|
||||
############### Build Fossilize
|
||||
|
||||
. .gitlab-ci/container/build-fossilize.sh
|
||||
|
||||
############### Build dEQP VK
|
||||
|
||||
DEQP_API=VK \
|
||||
DEQP_TARGET=default \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
############### Build apitrace
|
||||
|
||||
. .gitlab-ci/container/build-apitrace.sh
|
||||
|
||||
############### Build gfxreconstruct
|
||||
|
||||
. .gitlab-ci/container/build-gfxreconstruct.sh
|
||||
|
||||
############### Build VKD3D-Proton
|
||||
|
||||
. .gitlab-ci/container/setup-wine.sh "/vkd3d-proton-wine64"
|
||||
|
||||
. .gitlab-ci/container/build-vkd3d-proton.sh
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
apt-get purge -y "${EPHEMERAL[@]}"
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
@@ -28,7 +28,6 @@ DEPS=(
|
||||
"clang-${LLVM_VERSION}"
|
||||
"clang-format-${LLVM_VERSION}"
|
||||
dpkg-cross
|
||||
dpkg-dev
|
||||
findutils
|
||||
flex
|
||||
flatbuffers-compiler
|
||||
@@ -74,7 +73,6 @@ DEPS=(
|
||||
python3-pycparser
|
||||
python3-requests
|
||||
python3-setuptools
|
||||
python3-yaml
|
||||
qemu-user
|
||||
valgrind
|
||||
x11proto-dri2-dev
|
||||
@@ -97,7 +95,8 @@ apt-get install -y --no-remove "${DEPS[@]}" "${EPHEMERAL[@]}" \
|
||||
# Needed for ci-fairy, this revision is able to upload files to S3
|
||||
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2
|
||||
|
||||
. .gitlab-ci/container/install-meson.sh
|
||||
# We need at least 1.3.1 for rusticl
|
||||
pip3 install --break-system-packages 'meson==1.3.1'
|
||||
|
||||
. .gitlab-ci/container/build-rust.sh
|
||||
|
||||
|
@@ -81,10 +81,22 @@ rm -rf $XORGMACROS_VERSION
|
||||
|
||||
. .gitlab-ci/container/build-directx-headers.sh
|
||||
|
||||
. .gitlab-ci/container/build-bindgen.sh
|
||||
|
||||
python3 -m pip install --break-system-packages -r .gitlab-ci/lava/requirements.txt
|
||||
|
||||
# install bindgen
|
||||
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
||||
bindgen-cli --version 0.62.0 \
|
||||
--locked \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--root /usr/local
|
||||
|
||||
# install cbindgen
|
||||
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
||||
cbindgen --version 0.26.0 \
|
||||
--locked \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--root /usr/local
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
apt-get purge -y "${EPHEMERAL[@]}"
|
||||
|
@@ -1,4 +1,160 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2086 # we want word splitting
|
||||
|
||||
DEBIAN_ARCH=amd64 \
|
||||
. .gitlab-ci/container/debian/test-base.sh
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_BASE_TAG
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get install -y ca-certificates gnupg2 software-properties-common
|
||||
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/*
|
||||
|
||||
echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list
|
||||
|
||||
export LLVM_VERSION="${LLVM_VERSION:=15}"
|
||||
|
||||
# Ephemeral packages (installed for this script and removed again at the end)
|
||||
EPHEMERAL=(
|
||||
autoconf
|
||||
automake
|
||||
bc
|
||||
bison
|
||||
bzip2
|
||||
ccache
|
||||
cmake
|
||||
"clang-${LLVM_VERSION}"
|
||||
flex
|
||||
glslang-tools
|
||||
g++
|
||||
libasound2-dev
|
||||
libcap-dev
|
||||
"libclang-cpp${LLVM_VERSION}-dev"
|
||||
libdrm-dev
|
||||
libegl-dev
|
||||
libelf-dev
|
||||
libepoxy-dev
|
||||
libgbm-dev
|
||||
libpciaccess-dev
|
||||
libssl-dev
|
||||
libvulkan-dev
|
||||
libwayland-dev
|
||||
libx11-xcb-dev
|
||||
libxext-dev
|
||||
"llvm-${LLVM_VERSION}-dev"
|
||||
make
|
||||
meson
|
||||
openssh-server
|
||||
patch
|
||||
pkgconf
|
||||
protobuf-compiler
|
||||
python3-dev
|
||||
python3-pip
|
||||
python3-setuptools
|
||||
python3-wheel
|
||||
spirv-tools
|
||||
wayland-protocols
|
||||
xz-utils
|
||||
)
|
||||
|
||||
DEPS=(
|
||||
apt-utils
|
||||
curl
|
||||
git
|
||||
git-lfs
|
||||
inetutils-syslogd
|
||||
iptables
|
||||
jq
|
||||
libasan8
|
||||
libdrm2
|
||||
libexpat1
|
||||
"libllvm${LLVM_VERSION}"
|
||||
liblz4-1
|
||||
libpng16-16
|
||||
libpython3.11
|
||||
libvulkan1
|
||||
libwayland-client0
|
||||
libwayland-server0
|
||||
libxcb-ewmh2
|
||||
libxcb-randr0
|
||||
libxcb-xfixes0
|
||||
libxkbcommon0
|
||||
libxrandr2
|
||||
libxrender1
|
||||
python3-mako
|
||||
python3-numpy
|
||||
python3-packaging
|
||||
python3-pil
|
||||
python3-requests
|
||||
python3-six
|
||||
python3-yaml
|
||||
socat
|
||||
vulkan-tools
|
||||
waffle-utils
|
||||
xauth
|
||||
xvfb
|
||||
zlib1g
|
||||
zstd
|
||||
)
|
||||
|
||||
apt-get update
|
||||
apt-get dist-upgrade -y
|
||||
|
||||
apt-get install --purge -y \
|
||||
sysvinit-core libelogind0
|
||||
|
||||
apt-get install -y --no-remove "${DEPS[@]}"
|
||||
|
||||
apt-get install -y --no-install-recommends "${EPHEMERAL[@]}"
|
||||
|
||||
. .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
|
||||
|
||||
# Needed for ci-fairy, this revision is able to upload files to MinIO
|
||||
# and doesn't depend on git
|
||||
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2
|
||||
|
||||
# Needed for manipulation with traces yaml files.
|
||||
pip3 install --break-system-packages yq
|
||||
|
||||
. .gitlab-ci/container/build-mold.sh
|
||||
|
||||
############### Build LLVM-SPIRV translator
|
||||
|
||||
. .gitlab-ci/container/build-llvm-spirv.sh
|
||||
|
||||
############### Build libclc
|
||||
|
||||
. .gitlab-ci/container/build-libclc.sh
|
||||
|
||||
############### Build Wayland
|
||||
|
||||
. .gitlab-ci/container/build-wayland.sh
|
||||
|
||||
############### Build Crosvm
|
||||
|
||||
. .gitlab-ci/container/build-rust.sh
|
||||
. .gitlab-ci/container/build-crosvm.sh
|
||||
|
||||
############### Build dEQP runner
|
||||
. .gitlab-ci/container/build-deqp-runner.sh
|
||||
|
||||
|
||||
apt-get purge -y "${EPHEMERAL[@]}"
|
||||
|
||||
rm -rf /root/.rustup
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
||||
|
@@ -1,3 +1,109 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2086 # we want word splitting
|
||||
|
||||
. .gitlab-ci/container/debian/test-gl.sh
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
export LLVM_VERSION="${LLVM_VERSION:=15}"
|
||||
|
||||
apt-get install -y libelogind0 # this interfere with systemd deps, install separately
|
||||
|
||||
# Ephemeral packages (installed for this script and removed again at the end)
|
||||
EPHEMERAL=(
|
||||
bzip2
|
||||
ccache
|
||||
"clang-${LLVM_VERSION}"
|
||||
cmake
|
||||
g++
|
||||
glslang-tools
|
||||
libasound2-dev
|
||||
libcap-dev
|
||||
"libclang-cpp${LLVM_VERSION}-dev"
|
||||
libdrm-dev
|
||||
libgles2-mesa-dev
|
||||
libgtest-dev
|
||||
libpciaccess-dev
|
||||
libpng-dev
|
||||
libudev-dev
|
||||
libvulkan-dev
|
||||
libwaffle-dev
|
||||
libwayland-dev
|
||||
libx11-xcb-dev
|
||||
libxcb-dri2-0-dev
|
||||
libxcb-dri3-dev
|
||||
libxcb-present-dev
|
||||
libxfixes-dev
|
||||
libxkbcommon-dev
|
||||
libxrandr-dev
|
||||
libxrender-dev
|
||||
"llvm-${LLVM_VERSION}-dev"
|
||||
make
|
||||
meson
|
||||
ocl-icd-opencl-dev
|
||||
patch
|
||||
pkgconf
|
||||
python3-distutils
|
||||
xz-utils
|
||||
)
|
||||
|
||||
DEPS=(
|
||||
clinfo
|
||||
iptables
|
||||
kmod
|
||||
"libclang-common-${LLVM_VERSION}-dev"
|
||||
"libclang-cpp${LLVM_VERSION}"
|
||||
libcap2
|
||||
libegl1
|
||||
libepoxy0
|
||||
libfdt1
|
||||
libxcb-shm0
|
||||
ocl-icd-libopencl1
|
||||
python3-lxml
|
||||
python3-renderdoc
|
||||
python3-simplejson
|
||||
spirv-tools
|
||||
sysvinit-core
|
||||
weston
|
||||
xwayland
|
||||
)
|
||||
|
||||
apt-get update
|
||||
|
||||
apt-get install -y --no-remove "${DEPS[@]}" "${EPHEMERAL[@]}" \
|
||||
$EXTRA_LOCAL_PACKAGES
|
||||
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
############### Build piglit
|
||||
|
||||
PIGLIT_OPTS="-DPIGLIT_BUILD_GLX_TESTS=ON -DPIGLIT_BUILD_CL_TESTS=ON -DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
|
||||
|
||||
############### Build dEQP GL
|
||||
|
||||
DEQP_API=GL \
|
||||
DEQP_TARGET=surfaceless \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
DEQP_API=GLES \
|
||||
DEQP_TARGET=surfaceless \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
############### Build apitrace
|
||||
|
||||
. .gitlab-ci/container/build-apitrace.sh
|
||||
|
||||
############### Build validation layer for zink
|
||||
|
||||
. .gitlab-ci/container/build-vulkan-validation.sh
|
||||
|
||||
############### Build nine tests
|
||||
|
||||
. .gitlab-ci/container/build-ninetests.sh
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
apt-get purge -y "${EPHEMERAL[@]}"
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
||||
|
@@ -1,3 +1,129 @@
|
||||
#!/usr/bin/env bash
|
||||
# The relative paths in this file only become valid at runtime.
|
||||
# shellcheck disable=SC1091
|
||||
# shellcheck disable=SC2086 # we want word splitting
|
||||
|
||||
. .gitlab-ci/container/debian/test-vk.sh
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get install -y libelogind0 # this interfere with systemd deps, install separately
|
||||
|
||||
# Ephemeral packages (installed for this script and removed again at the end)
|
||||
EPHEMERAL=(
|
||||
ccache
|
||||
cmake
|
||||
g++
|
||||
glslang-tools
|
||||
libexpat1-dev
|
||||
gnupg2
|
||||
libdrm-dev
|
||||
libgbm-dev
|
||||
libgles2-mesa-dev
|
||||
liblz4-dev
|
||||
libpciaccess-dev
|
||||
libudev-dev
|
||||
libvulkan-dev
|
||||
libwaffle-dev
|
||||
libx11-xcb-dev
|
||||
libxcb-dri2-0-dev
|
||||
libxcb-ewmh-dev
|
||||
libxcb-keysyms1-dev
|
||||
libxkbcommon-dev
|
||||
libxrandr-dev
|
||||
libxrender-dev
|
||||
libzstd-dev
|
||||
meson
|
||||
p7zip
|
||||
patch
|
||||
pkgconf
|
||||
python3-dev
|
||||
python3-distutils
|
||||
python3-pip
|
||||
python3-setuptools
|
||||
python3-wheel
|
||||
software-properties-common
|
||||
wine64-tools
|
||||
xz-utils
|
||||
)
|
||||
|
||||
DEPS=(
|
||||
curl
|
||||
libepoxy0
|
||||
libxcb-shm0
|
||||
pciutils
|
||||
python3-lxml
|
||||
python3-simplejson
|
||||
sysvinit-core
|
||||
weston
|
||||
xwayland
|
||||
wine
|
||||
wine64
|
||||
xinit
|
||||
xserver-xorg-video-amdgpu
|
||||
xserver-xorg-video-ati
|
||||
)
|
||||
|
||||
apt-get update
|
||||
|
||||
apt-get install -y --no-remove --no-install-recommends \
|
||||
"${DEPS[@]}" "${EPHEMERAL[@]}"
|
||||
|
||||
############### Install DXVK
|
||||
|
||||
. .gitlab-ci/container/setup-wine.sh "/dxvk-wine64"
|
||||
. .gitlab-ci/container/install-wine-dxvk.sh
|
||||
|
||||
############### Install apitrace binaries for wine
|
||||
|
||||
. .gitlab-ci/container/install-wine-apitrace.sh
|
||||
# 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 replayer
|
||||
|
||||
PIGLIT_BUILD_TARGETS="piglit_replayer" . .gitlab-ci/container/build-piglit.sh
|
||||
|
||||
############### Build Fossilize
|
||||
|
||||
. .gitlab-ci/container/build-fossilize.sh
|
||||
|
||||
############### Build dEQP VK
|
||||
|
||||
DEQP_API=VK \
|
||||
DEQP_TARGET=default \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
############### Build apitrace
|
||||
|
||||
. .gitlab-ci/container/build-apitrace.sh
|
||||
|
||||
############### Build gfxreconstruct
|
||||
|
||||
. .gitlab-ci/container/build-gfxreconstruct.sh
|
||||
|
||||
############### Build VKD3D-Proton
|
||||
|
||||
. .gitlab-ci/container/setup-wine.sh "/vkd3d-proton-wine64"
|
||||
|
||||
. .gitlab-ci/container/build-vkd3d-proton.sh
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
apt-get purge -y "${EPHEMERAL[@]}"
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
||||
|
@@ -78,7 +78,6 @@ DEPS=(
|
||||
python3-mako
|
||||
python3-ply
|
||||
python3-pycparser
|
||||
python3-yaml
|
||||
rust-packaging
|
||||
vulkan-headers
|
||||
spirv-tools-devel
|
||||
@@ -102,7 +101,8 @@ 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/install-meson.sh
|
||||
# We need at least 1.3.1 for rusticl
|
||||
pip install meson==1.3.1
|
||||
|
||||
. .gitlab-ci/container/build-mold.sh
|
||||
|
||||
|
@@ -40,16 +40,10 @@
|
||||
# repository's container registry, so that the image from the main
|
||||
# repository's registry will be used there as well.
|
||||
|
||||
.debian-container-version:
|
||||
.debian-container:
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: bookworm-slim
|
||||
|
||||
.debian-container:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .container
|
||||
- .debian-container-version
|
||||
|
||||
.container:
|
||||
stage: container
|
||||
extends:
|
||||
@@ -69,6 +63,8 @@
|
||||
# Debian based x86_64 build image base
|
||||
debian/x86_64_build-base:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .container
|
||||
- .debian-container
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_64_build-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
||||
@@ -80,7 +76,7 @@ debian/x86_64_build-base:
|
||||
.use-debian/x86_64_build-base:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .debian-container-version
|
||||
- .debian-container
|
||||
- .use-base-image
|
||||
variables:
|
||||
MESA_BASE_IMAGE: ${DEBIAN_X86_64_BUILD_BASE_IMAGE}
|
||||
@@ -182,15 +178,14 @@ debian/android_build:
|
||||
|
||||
# Debian based x86_64 test image base
|
||||
debian/x86_64_test-base:
|
||||
extends:
|
||||
- .debian-container
|
||||
extends: debian/x86_64_build-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_64_test-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${KERNEL_TAG}"
|
||||
|
||||
.use-debian/x86_64_test-base:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .debian-container-version
|
||||
- .debian-container
|
||||
- .use-base-image
|
||||
variables:
|
||||
MESA_BASE_IMAGE: ${DEBIAN_X86_64_TEST_BASE_IMAGE}
|
||||
@@ -198,33 +193,11 @@ debian/x86_64_test-base:
|
||||
needs:
|
||||
- debian/x86_64_test-base
|
||||
|
||||
# Debian based aarch64 test image base
|
||||
debian/arm64_test-base:
|
||||
tags:
|
||||
- aarch64
|
||||
extends:
|
||||
- .debian-container
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-arm64_test-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
||||
|
||||
.use-debian/arm64_test-base:
|
||||
tags:
|
||||
- aarch64
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .debian-container-version
|
||||
- .use-base-image
|
||||
variables:
|
||||
MESA_BASE_IMAGE: ${DEBIAN_ARM64_TEST_BASE_IMAGE}
|
||||
MESA_BASE_TAG: *debian-arm64_test-base
|
||||
needs:
|
||||
- debian/arm64_test-base
|
||||
|
||||
# Debian based x86_64 test image for GL
|
||||
debian/x86_64_test-gl:
|
||||
extends: .use-debian/x86_64_test-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_64_test-gl ${DEBIAN_TEST_GL_TAG}
|
||||
MESA_IMAGE_TAG: &debian-x86_64_test-gl ${DEBIAN_X86_64_TEST_GL_TAG}
|
||||
|
||||
.use-debian/x86_64_test-gl:
|
||||
extends:
|
||||
@@ -240,7 +213,7 @@ debian/x86_64_test-gl:
|
||||
debian/x86_64_test-vk:
|
||||
extends: .use-debian/x86_64_test-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_64_test-vk ${DEBIAN_TEST_VK_TAG}
|
||||
MESA_IMAGE_TAG: &debian-x86_64_test-vk ${DEBIAN_X86_64_TEST_VK_TAG}
|
||||
|
||||
.use-debian/x86_64_test-vk:
|
||||
extends:
|
||||
@@ -256,7 +229,7 @@ debian/x86_64_test-vk:
|
||||
.debian/x86_64_test-android:
|
||||
extends: .use-debian/x86_64_test-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_64_test-android ${DEBIAN_TEST_ANDROID_TAG}
|
||||
MESA_IMAGE_TAG: &debian-x86_64_test-android ${DEBIAN_X86_64_TEST_ANDROID_TAG}
|
||||
ANDROID_NDK: android-ndk-r25b
|
||||
|
||||
.use-debian/x86_64_test-android:
|
||||
@@ -269,52 +242,12 @@ debian/x86_64_test-vk:
|
||||
needs:
|
||||
- debian/x86_64_test-android
|
||||
|
||||
# Debian based aarch64 test image for GL
|
||||
debian/arm64_test-gl:
|
||||
tags:
|
||||
- aarch64
|
||||
extends: .use-debian/arm64_test-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-arm64_test-gl ${DEBIAN_TEST_GL_TAG}
|
||||
|
||||
.use-debian/arm64_test-gl:
|
||||
tags:
|
||||
- aarch64
|
||||
extends:
|
||||
- .set-image-base-tag
|
||||
variables:
|
||||
MESA_BASE_TAG: *debian-arm64_test-base
|
||||
MESA_IMAGE_PATH: ${DEBIAN_ARM64_TEST_IMAGE_GL_PATH}
|
||||
MESA_IMAGE_TAG: *debian-arm64_test-gl
|
||||
needs:
|
||||
- debian/arm64_test-gl
|
||||
|
||||
# Debian based aarch64 test image for VK
|
||||
debian/arm64_test-vk:
|
||||
tags:
|
||||
- aarch64
|
||||
extends: .use-debian/arm64_test-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-arm64_test-vk ${DEBIAN_TEST_VK_TAG}
|
||||
|
||||
.use-debian/arm64_test-vk:
|
||||
tags:
|
||||
- aarch64
|
||||
extends:
|
||||
- .set-image-base-tag
|
||||
variables:
|
||||
MESA_BASE_TAG: *debian-arm64_test-base
|
||||
MESA_IMAGE_PATH: ${DEBIAN_ARM64_TEST_IMAGE_VK_PATH}
|
||||
MESA_IMAGE_TAG: *debian-arm64_test-vk
|
||||
needs:
|
||||
- debian/arm64_test-vk
|
||||
|
||||
# Debian based ARM build image
|
||||
debian/arm64_build:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .container
|
||||
- .debian-container-version
|
||||
- .debian-container
|
||||
tags:
|
||||
- aarch64
|
||||
variables:
|
||||
@@ -346,14 +279,6 @@ alpine/x86_64_build:
|
||||
- .alpine/x86_64_build-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &alpine-x86_64_build ${ALPINE_X86_64_BUILD_TAG}
|
||||
rules:
|
||||
# Note: the next three lines must remain in that order, so that the rules
|
||||
# in `linkcheck-docs` catch nightly pipelines before the rules in `pages`
|
||||
# exclude them.
|
||||
- !reference [linkcheck-docs, rules]
|
||||
- !reference [pages, rules]
|
||||
- !reference [test-docs, rules]
|
||||
- !reference [.container, rules]
|
||||
|
||||
.use-alpine/x86_64_build:
|
||||
extends:
|
||||
@@ -393,9 +318,8 @@ fedora/x86_64_build:
|
||||
.kernel+rootfs:
|
||||
extends:
|
||||
- .container+build-rules
|
||||
- .debian-container-version
|
||||
- .debian-container
|
||||
stage: container
|
||||
timeout: 90m
|
||||
variables:
|
||||
GIT_STRATEGY: fetch
|
||||
MESA_ROOTFS_TAG: &kernel-rootfs ${KERNEL_ROOTFS_TAG}
|
||||
@@ -439,11 +363,11 @@ kernel+rootfs_arm32:
|
||||
MESA_ROOTFS_TAG: *kernel-rootfs
|
||||
|
||||
# x86_64 image with ARM64 & ARM32 kernel & rootfs for baremetal testing
|
||||
.debian/baremetal_arm_test:
|
||||
.debian/arm_test:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .container
|
||||
- .debian-container-version
|
||||
- .debian-container
|
||||
# Don't want the .container rules
|
||||
- .container+build-rules
|
||||
variables:
|
||||
@@ -453,45 +377,45 @@ kernel+rootfs_arm32:
|
||||
MESA_ARTIFACTS_TAG: *debian-arm64_build
|
||||
MESA_ROOTFS_TAG: *kernel-rootfs
|
||||
|
||||
debian/baremetal_arm32_test:
|
||||
debian/arm32_test:
|
||||
extends:
|
||||
- .debian/baremetal_arm_test
|
||||
- .debian/arm_test
|
||||
needs:
|
||||
- kernel+rootfs_arm32
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-arm32_test "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
||||
|
||||
debian/baremetal_arm64_test:
|
||||
debian/arm64_test:
|
||||
extends:
|
||||
- .debian/baremetal_arm_test
|
||||
- .debian/arm_test
|
||||
needs:
|
||||
- kernel+rootfs_arm64
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-arm64_test "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
||||
|
||||
.use-debian/baremetal_arm_test:
|
||||
.use-debian/arm_test:
|
||||
variables:
|
||||
MESA_ROOTFS_TAG: *kernel-rootfs
|
||||
|
||||
.use-debian/baremetal_arm32_test:
|
||||
.use-debian/arm32_test:
|
||||
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
|
||||
extends:
|
||||
- .use-debian/baremetal_arm_test
|
||||
- .use-debian/arm_test
|
||||
variables:
|
||||
MESA_IMAGE_PATH: "debian/baremetal_arm32_test"
|
||||
MESA_IMAGE_PATH: "debian/arm32_test"
|
||||
MESA_IMAGE_TAG: *debian-arm32_test
|
||||
needs:
|
||||
- debian/baremetal_arm_test
|
||||
- debian/arm_test
|
||||
|
||||
.use-debian/baremetal_arm64_test:
|
||||
.use-debian/arm64_test:
|
||||
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
|
||||
extends:
|
||||
- .use-debian/baremetal_arm_test
|
||||
- .use-debian/arm_test
|
||||
variables:
|
||||
MESA_IMAGE_PATH: "debian/baremetal_arm64_test"
|
||||
MESA_IMAGE_PATH: "debian/arm64_test"
|
||||
MESA_IMAGE_TAG: *debian-arm64_test
|
||||
needs:
|
||||
- debian/baremetal_arm_test
|
||||
- debian/arm_test
|
||||
|
||||
# Native Windows docker builds
|
||||
#
|
||||
|
@@ -1,11 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_BUILD_TAG
|
||||
# FEDORA_X86_64_BUILD_TAG
|
||||
|
||||
rm -f /usr/lib/python3.*/EXTERNALLY-MANAGED
|
||||
|
||||
# We need at least 1.4.0 for rusticl
|
||||
pip3 install 'meson==1.4.0'
|
@@ -31,8 +31,6 @@ check_minio "${CI_PROJECT_PATH}"
|
||||
. .gitlab-ci/container/build-rust.sh
|
||||
|
||||
if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
|
||||
BUILD_CL="ON"
|
||||
BUILD_VK="ON"
|
||||
GCC_ARCH="aarch64-linux-gnu"
|
||||
KERNEL_ARCH="arm64"
|
||||
SKQP_ARCH="arm64"
|
||||
@@ -54,8 +52,6 @@ if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
|
||||
KERNEL_IMAGE_NAME="Image"
|
||||
|
||||
elif [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
||||
BUILD_CL="OFF"
|
||||
BUILD_VK="OFF"
|
||||
GCC_ARCH="arm-linux-gnueabihf"
|
||||
KERNEL_ARCH="arm"
|
||||
SKQP_ARCH="arm"
|
||||
@@ -80,8 +76,6 @@ elif [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
||||
libxkbcommon-dev:armhf
|
||||
)
|
||||
else
|
||||
BUILD_CL="ON"
|
||||
BUILD_VK="ON"
|
||||
GCC_ARCH="x86_64-linux-gnu"
|
||||
KERNEL_ARCH="x86_64"
|
||||
SKQP_ARCH="x64"
|
||||
@@ -89,7 +83,7 @@ else
|
||||
DEVICE_TREES=""
|
||||
KERNEL_IMAGE_NAME="bzImage"
|
||||
CONTAINER_ARCH_PACKAGES=(
|
||||
libasound2-dev libcap-dev libfdt-dev libva-dev p7zip wine
|
||||
libasound2-dev libcap-dev libfdt-dev libva-dev wayland-protocols p7zip wine
|
||||
)
|
||||
fi
|
||||
|
||||
@@ -150,15 +144,9 @@ CONTAINER_EPHEMERAL=(
|
||||
python3-serial
|
||||
python3-venv
|
||||
unzip
|
||||
wayland-protocols
|
||||
zstd
|
||||
)
|
||||
|
||||
[ "$BUILD_CL" == "ON" ] && CONTAINER_EPHEMERAL+=(
|
||||
ocl-icd-opencl-dev
|
||||
)
|
||||
|
||||
|
||||
echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list
|
||||
|
||||
apt-get update
|
||||
@@ -202,6 +190,7 @@ PKG_DEP=(
|
||||
# arch dependent rootfs packages
|
||||
[ "$DEBIAN_ARCH" = "arm64" ] && PKG_ARCH=(
|
||||
libgl1 libglu1-mesa
|
||||
libvulkan-dev
|
||||
firmware-linux-nonfree firmware-qcom-media
|
||||
libfontconfig1
|
||||
)
|
||||
@@ -214,6 +203,7 @@ PKG_DEP=(
|
||||
spirv-tools
|
||||
libelf1 libfdt1 "libllvm${LLVM_VERSION}"
|
||||
libva2 libva-drm2
|
||||
libvulkan-dev
|
||||
socat
|
||||
sysvinit-core
|
||||
wine
|
||||
@@ -222,16 +212,6 @@ PKG_DEP=(
|
||||
firmware-misc-nonfree
|
||||
)
|
||||
|
||||
[ "$BUILD_CL" == "ON" ] && PKG_ARCH+=(
|
||||
clinfo
|
||||
"libclang-cpp${LLVM_VERSION}"
|
||||
"libclang-common-${LLVM_VERSION}-dev"
|
||||
ocl-icd-libopencl1
|
||||
)
|
||||
[ "$BUILD_VK" == "ON" ] && PKG_ARCH+=(
|
||||
libvulkan-dev
|
||||
)
|
||||
|
||||
mmdebstrap \
|
||||
--variant=apt \
|
||||
--arch="${DEBIAN_ARCH}" \
|
||||
@@ -264,17 +244,6 @@ fi
|
||||
STRIP_CMD="${GCC_ARCH}-strip"
|
||||
mkdir -p $ROOTFS/usr/lib/$GCC_ARCH
|
||||
|
||||
############### Build libclc
|
||||
|
||||
if [ "$BUILD_CL" = "ON" ]; then
|
||||
rm -rf /usr/lib/clc/*
|
||||
. .gitlab-ci/container/build-libclc.sh
|
||||
mkdir -p $ROOTFS/usr/{share,lib}/clc
|
||||
mv /usr/share/clc/spirv*-mesa3d-.spv $ROOTFS/usr/share/clc/
|
||||
ln -s /usr/share/clc/spirv64-mesa3d-.spv $ROOTFS/usr/lib/clc/
|
||||
ln -s /usr/share/clc/spirv-mesa3d-.spv $ROOTFS/usr/lib/clc/
|
||||
fi
|
||||
|
||||
############### Build Vulkan validation layer (for zink)
|
||||
if [ "$DEBIAN_ARCH" = "amd64" ]; then
|
||||
. .gitlab-ci/container/build-vulkan-validation.sh
|
||||
@@ -311,7 +280,7 @@ DEQP_API=GLES \
|
||||
DEQP_TARGET=surfaceless \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
[ "$BUILD_VK" == "ON" ] && DEQP_API=VK \
|
||||
DEQP_API=VK \
|
||||
DEQP_TARGET=default \
|
||||
. .gitlab-ci/container/build-deqp.sh
|
||||
|
||||
@@ -326,21 +295,7 @@ if [[ "$DEBIAN_ARCH" = "arm64" ]] \
|
||||
fi
|
||||
|
||||
############### Build piglit
|
||||
PIGLIT_OPTS="-DPIGLIT_USE_WAFFLE=ON
|
||||
-DPIGLIT_USE_GBM=ON
|
||||
-DPIGLIT_USE_WAYLAND=ON
|
||||
-DPIGLIT_USE_X11=ON
|
||||
-DPIGLIT_BUILD_GLX_TESTS=ON
|
||||
-DPIGLIT_BUILD_EGL_TESTS=ON
|
||||
-DPIGLIT_BUILD_WGL_TESTS=OFF
|
||||
-DPIGLIT_BUILD_GL_TESTS=ON
|
||||
-DPIGLIT_BUILD_GLES1_TESTS=ON
|
||||
-DPIGLIT_BUILD_GLES2_TESTS=ON
|
||||
-DPIGLIT_BUILD_GLES3_TESTS=ON
|
||||
-DPIGLIT_BUILD_CL_TESTS=$BUILD_CL
|
||||
-DPIGLIT_BUILD_VK_TESTS=$BUILD_VK
|
||||
-DPIGLIT_BUILD_DMA_BUF_TESTS=ON" \
|
||||
. .gitlab-ci/container/build-piglit.sh
|
||||
PIGLIT_OPTS="-DPIGLIT_BUILD_DMA_BUF_TESTS=ON -DPIGLIT_BUILD_GLX_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
|
||||
mv /piglit $ROOTFS/.
|
||||
|
||||
############### Build libva tests
|
||||
@@ -372,8 +327,8 @@ if [[ -e ".gitlab-ci/local/build-rootfs.sh" ]]; then
|
||||
fi
|
||||
|
||||
|
||||
############### Download prebuilt kernel
|
||||
. .gitlab-ci/container/download-prebuilt-kernel.sh
|
||||
############### Build kernel
|
||||
. .gitlab-ci/container/build-kernel.sh
|
||||
|
||||
############### Delete rust, since the tests won't be compiling anything.
|
||||
rm -rf /root/.cargo
|
||||
|
@@ -0,0 +1,45 @@
|
||||
From cab41ed387c66a5e7f3454c547fc9ea53587ec1e Mon Sep 17 00:00:00 2001
|
||||
From: David Heidelberg <david.heidelberg@collabora.com>
|
||||
Date: Thu, 9 May 2024 14:08:59 -0700
|
||||
Subject: [PATCH] Correct EGL_EXT_config_select_group extension query
|
||||
|
||||
EGL_EXT_config_select_group is a display extension,
|
||||
not a client extension.
|
||||
|
||||
Affects:
|
||||
dEQP-EGL.functional.choose_config.simple.selection_and_sort.*
|
||||
|
||||
Ref: https://github.com/KhronosGroup/EGL-Registry/pull/199
|
||||
|
||||
Fixes: 88ba9ac270db ("Implement support for the EGL_EXT_config_select_group extension")
|
||||
|
||||
Change-Id: I38956511bdcb8e99d585ea9b99aeab53da0457e2
|
||||
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
|
||||
---
|
||||
framework/egl/egluConfigInfo.cpp | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/framework/egl/egluConfigInfo.cpp b/framework/egl/egluConfigInfo.cpp
|
||||
index 88c30fd65..10936055a 100644
|
||||
--- a/framework/egl/egluConfigInfo.cpp
|
||||
+++ b/framework/egl/egluConfigInfo.cpp
|
||||
@@ -129,7 +129,6 @@ void queryCoreConfigInfo (const Library& egl, EGLDisplay display, EGLConfig conf
|
||||
void queryExtConfigInfo (const eglw::Library& egl, eglw::EGLDisplay display, eglw::EGLConfig config, ConfigInfo* dst)
|
||||
{
|
||||
const std::vector<std::string> extensions = getDisplayExtensions(egl, display);
|
||||
- const std::vector<std::string> clientExtensions = getClientExtensions(egl);
|
||||
|
||||
if (de::contains(extensions.begin(), extensions.end(), "EGL_EXT_yuv_surface"))
|
||||
{
|
||||
@@ -159,7 +158,7 @@ void queryExtConfigInfo (const eglw::Library& egl, eglw::EGLDisplay display, egl
|
||||
else
|
||||
dst->colorComponentType = EGL_COLOR_COMPONENT_TYPE_FIXED_EXT;
|
||||
|
||||
- if (de::contains(clientExtensions.begin(), clientExtensions.end(), "EGL_EXT_config_select_group"))
|
||||
+ if (hasExtension(egl, display, "EGL_EXT_config_select_group"))
|
||||
{
|
||||
egl.getConfigAttrib(display, config, EGL_CONFIG_SELECT_GROUP_EXT, (EGLint*)&dst->groupId);
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
@@ -98,7 +98,7 @@ LIBGL_ALWAYS_SOFTWARE=${CROSVM_LIBGL_ALWAYS_SOFTWARE} \
|
||||
GALLIUM_DRIVER=${CROSVM_GALLIUM_DRIVER} \
|
||||
VK_DRIVER_FILES=$CI_PROJECT_DIR/install/share/vulkan/icd.d/${CROSVM_VK_DRIVER}_icd.x86_64.json \
|
||||
crosvm --no-syslog run \
|
||||
--gpu "${CROSVM_GPU_ARGS}" --gpu-render-server "path=${VIRGL_RENDER_SERVER:-/usr/local/libexec/virgl_render_server}" \
|
||||
--gpu "${CROSVM_GPU_ARGS}" --gpu-render-server "path=/usr/local/libexec/virgl_render_server" \
|
||||
-m "${CROSVM_MEMORY:-4096}" -c "${CROSVM_CPU:-2}" --disable-sandbox \
|
||||
--shared-dir /:my_root:type=fs:writeback=true:timeout=60:cache=always \
|
||||
--net "host-ip=192.168.30.1,netmask=255.255.255.0,mac=AA:BB:CC:00:00:12" \
|
||||
|
@@ -18,8 +18,7 @@ INSTALL=$(realpath -s "$PWD"/install)
|
||||
# Set up the driver environment.
|
||||
export LD_LIBRARY_PATH="$INSTALL"/lib/:$LD_LIBRARY_PATH
|
||||
export EGL_PLATFORM=surfaceless
|
||||
ARCH=$(uname -m)
|
||||
export VK_DRIVER_FILES="$PWD"/install/share/vulkan/icd.d/"$VK_DRIVER"_icd."$ARCH".json
|
||||
export VK_DRIVER_FILES="$PWD"/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.${VK_CPU:-$(uname -m)}.json
|
||||
export OCL_ICD_VENDORS="$PWD"/install/etc/OpenCL/vendors/
|
||||
|
||||
if [ -n "$USE_ANGLE" ]; then
|
||||
|
@@ -13,37 +13,34 @@
|
||||
|
||||
variables:
|
||||
DEBIAN_X86_64_BUILD_BASE_IMAGE: "debian/x86_64_build-base"
|
||||
DEBIAN_BASE_TAG: "20240717-pyyaml-3"
|
||||
DEBIAN_BASE_TAG: "20240412-pycparser"
|
||||
|
||||
DEBIAN_X86_64_BUILD_IMAGE_PATH: "debian/x86_64_build"
|
||||
DEBIAN_BUILD_TAG: "20240717-pyyaml-3"
|
||||
DEBIAN_BUILD_TAG: "20240408-cbindgen"
|
||||
|
||||
DEBIAN_X86_64_TEST_BASE_IMAGE: "debian/x86_64_test-base"
|
||||
DEBIAN_ARM64_TEST_BASE_IMAGE: "debian/arm64_test-base"
|
||||
|
||||
DEBIAN_X86_64_TEST_IMAGE_GL_PATH: "debian/x86_64_test-gl"
|
||||
DEBIAN_ARM64_TEST_IMAGE_GL_PATH: "debian/arm64_test-gl"
|
||||
DEBIAN_X86_64_TEST_IMAGE_VK_PATH: "debian/x86_64_test-vk"
|
||||
DEBIAN_ARM64_TEST_IMAGE_VK_PATH: "debian/arm64_test-vk"
|
||||
DEBIAN_X86_64_TEST_ANDROID_IMAGE_PATH: "debian/x86_64_test-android"
|
||||
|
||||
DEBIAN_TEST_ANDROID_TAG: "20240423-deqp"
|
||||
DEBIAN_TEST_GL_TAG: "20240713-piglit-58"
|
||||
DEBIAN_TEST_VK_TAG: "20240713-piglit-58"
|
||||
KERNEL_ROOTFS_TAG: "20240713-piglit-58"
|
||||
DEBIAN_X86_64_TEST_ANDROID_TAG: "20240423-deqp"
|
||||
DEBIAN_X86_64_TEST_GL_TAG: "20240514-egltrans241"
|
||||
DEBIAN_X86_64_TEST_VK_TAG: "20240423-deqp"
|
||||
KERNEL_ROOTFS_TAG: "20240507-kernel241"
|
||||
|
||||
ALPINE_X86_64_BUILD_TAG: "20240717-pyyaml"
|
||||
ALPINE_X86_64_BUILD_TAG: "20240412-pycparser"
|
||||
ALPINE_X86_64_LAVA_SSH_TAG: "20240401-wlproto"
|
||||
FEDORA_X86_64_BUILD_TAG: "20240717-pyyaml"
|
||||
FEDORA_X86_64_BUILD_TAG: "20240412-pycparser"
|
||||
KERNEL_TAG: "v6.6.21-mesa-f8ea"
|
||||
KERNEL_REPO: "gfx-ci/linux"
|
||||
PKG_REPO_REV: "bca9635d"
|
||||
PKG_REPO_REV: "3cc12a2a"
|
||||
|
||||
WINDOWS_X64_MSVC_PATH: "windows/x86_64_msvc"
|
||||
WINDOWS_X64_MSVC_TAG: "20240717-pyyaml-3"
|
||||
WINDOWS_X64_MSVC_TAG: "20231222-msvc"
|
||||
|
||||
WINDOWS_X64_BUILD_PATH: "windows/x86_64_build"
|
||||
WINDOWS_X64_BUILD_TAG: "20240717-pyyaml-3"
|
||||
WINDOWS_X64_BUILD_TAG: "20240405-vainfo-ci-1"
|
||||
|
||||
WINDOWS_X64_TEST_PATH: "windows/x86_64_test"
|
||||
WINDOWS_X64_TEST_TAG: "20240717-pyyaml-3"
|
||||
WINDOWS_X64_TEST_TAG: "20240405-vainfo-ci-1"
|
||||
|
@@ -49,7 +49,6 @@ PYTHONPATH=artifacts/ artifacts/lava/lava_job_submitter.py \
|
||||
--first-stage-init artifacts/ci-common/init-stage1.sh \
|
||||
--ci-project-dir "${CI_PROJECT_DIR}" \
|
||||
--device-type "${DEVICE_TYPE}" \
|
||||
--farm "${FARM}" \
|
||||
--dtb-filename "${DTB}" \
|
||||
--jwt-file "${S3_JWT_FILE}" \
|
||||
--kernel-image-name "${KERNEL_IMAGE_NAME}" \
|
||||
|
@@ -388,7 +388,6 @@ class LAVAJobSubmitter(PathResolver):
|
||||
boot_method: str
|
||||
ci_project_dir: str
|
||||
device_type: str
|
||||
farm: str
|
||||
job_timeout_min: int # The job timeout in minutes
|
||||
build_url: str = None
|
||||
dtb_filename: str = None
|
||||
@@ -517,7 +516,6 @@ class StructuredLoggerWrapper:
|
||||
def _init_logger(self):
|
||||
STRUCTURAL_LOG["fixed_tags"] = self.__submitter.lava_tags
|
||||
STRUCTURAL_LOG["dut_job_type"] = self.__submitter.device_type
|
||||
STRUCTURAL_LOG["farm"] = self.__submitter.farm
|
||||
STRUCTURAL_LOG["job_combined_fail_reason"] = None
|
||||
STRUCTURAL_LOG["job_combined_status"] = "not_submitted"
|
||||
STRUCTURAL_LOG["dut_attempt_counter"] = 0
|
||||
|
@@ -23,10 +23,3 @@ KNOWN_ISSUE_R8152_PATTERNS: tuple[str, ...] = (
|
||||
# This is considered noise, since LAVA produces this log after receiving a package of feedback
|
||||
# messages.
|
||||
LOG_DEBUG_FEEDBACK_NOISE = "Listened to connection for namespace 'dut' done"
|
||||
|
||||
A6XX_GPU_RECOVERY_WATCH_PERIOD_MIN = 3
|
||||
A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT = 30
|
||||
A6XX_GPU_RECOVERY_FAILURE_MESSAGE = (
|
||||
"cx gdsc didn't collapse",
|
||||
"Timeout waiting for GMU OOB",
|
||||
)
|
||||
|
@@ -34,10 +34,6 @@ class LAVAJobDefinition:
|
||||
|
||||
def __init__(self, job_submitter: "LAVAJobSubmitter") -> None:
|
||||
self.job_submitter: "LAVAJobSubmitter" = job_submitter
|
||||
# NFS args provided by LAVA
|
||||
self.lava_nfs_args: str = "root=/dev/nfs rw nfsroot=$NFS_SERVER_IP:$NFS_ROOTFS,tcp,hard,v3 ip=dhcp"
|
||||
# extra_nfsroot_args appends to cmdline
|
||||
self.extra_nfsroot_args: str = " init=/init rootwait usbcore.quirks=0bda:8153:k"
|
||||
|
||||
def has_ssh_support(self) -> bool:
|
||||
if FORCE_UART:
|
||||
@@ -61,11 +57,11 @@ class LAVAJobDefinition:
|
||||
actions for the LAVA job submission.
|
||||
"""
|
||||
args = self.job_submitter
|
||||
values = self.generate_metadata()
|
||||
nfsrootfs = {
|
||||
"url": f"{args.rootfs_url_prefix}/lava-rootfs.tar.zst",
|
||||
"compression": "zstd",
|
||||
}
|
||||
values = self.generate_metadata()
|
||||
|
||||
init_stage1_steps = self.init_stage1_steps()
|
||||
artifact_download_steps = self.artifact_download_steps()
|
||||
@@ -126,7 +122,7 @@ class LAVAJobDefinition:
|
||||
"device_type": self.job_submitter.device_type,
|
||||
"visibility": {"group": [self.job_submitter.visibility_group]},
|
||||
"priority": JOB_PRIORITY,
|
||||
"context": {"extra_nfsroot_args": self.extra_nfsroot_args},
|
||||
"context": {"extra_nfsroot_args": " init=/init rootwait usbcore.quirks=0bda:8153:k"},
|
||||
"timeouts": {
|
||||
"job": {"minutes": self.job_submitter.job_timeout_min},
|
||||
"actions": {
|
||||
|
@@ -1,9 +1,8 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
from datetime import datetime, timedelta
|
||||
from dataclasses import dataclass, field
|
||||
from typing import TYPE_CHECKING, Any, Optional, Sequence
|
||||
from typing import TYPE_CHECKING, Any, Sequence
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from lava.utils import LogFollower
|
||||
@@ -14,9 +13,6 @@ from lava.utils.constants import (
|
||||
KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER,
|
||||
LOG_DEBUG_FEEDBACK_NOISE,
|
||||
KNOWN_ISSUE_R8152_PATTERNS,
|
||||
A6XX_GPU_RECOVERY_WATCH_PERIOD_MIN,
|
||||
A6XX_GPU_RECOVERY_FAILURE_MESSAGE,
|
||||
A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT,
|
||||
)
|
||||
from lava.utils.log_section import LogSectionType
|
||||
|
||||
@@ -33,8 +29,6 @@ class LAVALogHints:
|
||||
log_follower: LogFollower
|
||||
r8152_issue_consecutive_counter: int = field(default=0, init=False)
|
||||
reboot_counter: int = field(default=0, init=False)
|
||||
a6xx_gpu_recovery_fail_counter: int = field(default=0, init=False)
|
||||
a6xx_gpu_first_fail_time: Optional[datetime] = field(default=None, init=False)
|
||||
|
||||
def raise_known_issue(self, message) -> None:
|
||||
raise MesaCIKnownIssueException(
|
||||
@@ -50,7 +44,6 @@ class LAVALogHints:
|
||||
continue
|
||||
self.detect_r8152_issue(line)
|
||||
self.detect_forced_reboot(line)
|
||||
self.detect_a6xx_gpu_recovery_failure(line)
|
||||
|
||||
def detect_r8152_issue(self, line):
|
||||
if self.log_follower.phase in (
|
||||
@@ -84,23 +77,3 @@ class LAVALogHints:
|
||||
self.raise_known_issue(
|
||||
"Forced reboot detected during test phase, failing the job..."
|
||||
)
|
||||
|
||||
# If the a6xx gpu repeatedly fails to recover over a short period of time,
|
||||
# then successful recovery is unlikely so cancel the job preemptively.
|
||||
def detect_a6xx_gpu_recovery_failure(self, line: dict[str, Any]) -> None:
|
||||
if search_known_issue_patterns(A6XX_GPU_RECOVERY_FAILURE_MESSAGE, line["msg"]):
|
||||
time_of_failure = datetime.fromisoformat(line["dt"])
|
||||
self.a6xx_gpu_recovery_fail_counter += 1
|
||||
|
||||
if self.a6xx_gpu_first_fail_time is None:
|
||||
self.a6xx_gpu_first_fail_time = time_of_failure
|
||||
|
||||
if self.a6xx_gpu_recovery_fail_counter == A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT:
|
||||
time_since_first_fail = time_of_failure - self.a6xx_gpu_first_fail_time
|
||||
if time_since_first_fail <= timedelta(minutes=A6XX_GPU_RECOVERY_WATCH_PERIOD_MIN):
|
||||
self.raise_known_issue(
|
||||
"Repeated GPU recovery failure detected: cancelling the job"
|
||||
)
|
||||
else:
|
||||
self.a6xx_gpu_first_fail_time = None
|
||||
self.a6xx_gpu_recovery_fail_counter = 0
|
||||
|
@@ -18,7 +18,6 @@ def fastboot_deploy_actions(
|
||||
job_definition: "LAVAJobDefinition", nfsrootfs
|
||||
) -> tuple[dict[str, Any], ...]:
|
||||
args = job_definition.job_submitter
|
||||
cmdline = f"{job_definition.lava_nfs_args}{job_definition.extra_nfsroot_args}"
|
||||
fastboot_deploy_nfs = {
|
||||
"timeout": {"minutes": 10},
|
||||
"to": "nfs",
|
||||
@@ -40,7 +39,7 @@ def fastboot_deploy_actions(
|
||||
"steps": [
|
||||
f"cat Image.gz {args.dtb_filename}.dtb > Image.gz+dtb",
|
||||
"mkbootimg --kernel Image.gz+dtb"
|
||||
+ f' --cmdline "{cmdline}"'
|
||||
+ ' --cmdline "root=/dev/nfs rw nfsroot=$NFS_SERVER_IP:$NFS_ROOTFS,tcp,hard rootwait ip=dhcp init=/init"'
|
||||
+ " --pagesize 4096 --base 0x80000000 -o boot.img",
|
||||
],
|
||||
}
|
||||
|
@@ -104,7 +104,7 @@ rm -rf _build
|
||||
meson setup _build \
|
||||
--native-file=native.file \
|
||||
--wrap-mode=nofallback \
|
||||
--force-fallback-for perfetto,syn,paste,pest,pest_derive,pest_generator,pest_meta,roxmltree,indexmap \
|
||||
--force-fallback-for perfetto,syn,paste \
|
||||
${CROSS+--cross "$CROSS_FILE"} \
|
||||
-D prefix=$PWD/install \
|
||||
-D libdir=lib \
|
||||
|
@@ -13,8 +13,7 @@ INSTALL="$PWD/install"
|
||||
# Set up the driver environment.
|
||||
export LD_LIBRARY_PATH="$INSTALL/lib/"
|
||||
export EGL_PLATFORM=surfaceless
|
||||
ARCH=$(uname -m)
|
||||
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.$ARCH.json"
|
||||
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.${VK_CPU:-$(uname -m)}.json"
|
||||
|
||||
RESULTS=$PWD/${PIGLIT_RESULTS_DIR:-results}
|
||||
mkdir -p $RESULTS
|
||||
|
@@ -54,8 +54,7 @@ if [ -n "${VK_DRIVER}" ]; then
|
||||
export DXVK_LOG="$RESULTS/dxvk"
|
||||
[ -d "$DXVK_LOG" ] || mkdir -pv "$DXVK_LOG"
|
||||
export DXVK_STATE_CACHE=0
|
||||
ARCH=$(uname -m)
|
||||
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.$ARCH.json"
|
||||
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.${VK_CPU:-$(uname -m)}.json"
|
||||
fi
|
||||
|
||||
# Sanity check to ensure that our environment is sufficient to make our tests
|
||||
@@ -118,7 +117,8 @@ else
|
||||
mkdir -p /tmp/.X11-unix
|
||||
|
||||
env \
|
||||
weston -Bheadless-backend.so --use-gl -Swayland-0 --xwayland --idle-time=0 &
|
||||
VK_DRIVER_FILES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$(uname -m).json" \
|
||||
weston -Bheadless-backend.so --use-gl -Swayland-0 --xwayland --idle-time=0 &
|
||||
|
||||
while [ ! -S "$WESTON_X11_SOCK" ]; do sleep 1; done
|
||||
}
|
||||
|
@@ -19,14 +19,14 @@ for driver in freedreno intel lima v3d vc4; do
|
||||
done
|
||||
|
||||
# Run shader-db over a number of supported chipsets for nouveau
|
||||
for chipset in 40 a3 c0 e4 f0 134 162; do
|
||||
section_start shader-db-nouveau-${chipset} "Running shader-db for nouveau - ${chipset}"
|
||||
env LD_PRELOAD="$LIBDIR/libnouveau_noop_drm_shim.so" \
|
||||
NOUVEAU_CHIPSET=${chipset} \
|
||||
./run -j"${FDO_CI_CONCURRENT:-4}" ./shaders \
|
||||
> "$ARTIFACTSDIR/nouveau-${chipset}-shader-db.txt"
|
||||
section_end shader-db-nouveau-${chipset}
|
||||
done
|
||||
#for chipset in 40 a3 c0 e4 f0 134 162; do
|
||||
# section_start shader-db-nouveau-${chipset} "Running shader-db for nouveau - ${chipset}"
|
||||
# env LD_PRELOAD="$LIBDIR/libnouveau_noop_drm_shim.so" \
|
||||
# NOUVEAU_CHIPSET=${chipset} \
|
||||
# ./run -j"${FDO_CI_CONCURRENT:-4}" ./shaders \
|
||||
# > "$ARTIFACTSDIR/nouveau-${chipset}-shader-db.txt"
|
||||
# section_end shader-db-nouveau-${chipset}
|
||||
#done
|
||||
|
||||
# Run shader-db for r300 (RV370 and RV515)
|
||||
for chipset in 0x5460 0x7140; do
|
||||
|
@@ -6,11 +6,6 @@
|
||||
rules:
|
||||
- if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
|
||||
when: on_success
|
||||
|
||||
# Override of the `default: retry:` settings, which automatically retries jobs
|
||||
# if one of the tests result didn't match its expectation; this override
|
||||
# disables that, but keeps the auto-retry for infrastructure failures.
|
||||
.no-auto-retry:
|
||||
retry:
|
||||
max: 1
|
||||
# Don't retry on script_failure, job_execution_timeout, runner_unsupported,
|
||||
@@ -40,7 +35,7 @@
|
||||
.restricted-rules:
|
||||
rules:
|
||||
# If the triggerer has access to the restricted traces and if it is pre-merge
|
||||
- if: '($GITLAB_USER_LOGIN !~ "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu|okias|gallo|kwg|llanderwelin|zmike|vigneshraman)$/") &&
|
||||
- if: '($GITLAB_USER_LOGIN !~ "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu|okias|gallo|kwg|majanes|llanderwelin|zmike|vigneshraman)$/") &&
|
||||
($GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH)'
|
||||
when: never
|
||||
|
||||
@@ -72,7 +67,7 @@
|
||||
|
||||
# Same core dependencies for doing manual runs.
|
||||
.core-manual-rules:
|
||||
extends: .no-auto-retry
|
||||
retry: !reference [.scheduled_pipeline-rules, retry]
|
||||
rules:
|
||||
# We only want manual jobs to show up when it's not marge's pre-merge CI
|
||||
# run, otherwise she'll wait until her timeout. The exception is
|
||||
@@ -130,7 +125,7 @@
|
||||
extends:
|
||||
- .piglit-performance-base
|
||||
needs:
|
||||
- debian/baremetal_arm64_test
|
||||
- debian/arm64_test
|
||||
- debian-arm64-release
|
||||
|
||||
.piglit-performance:x86_64:
|
||||
@@ -179,7 +174,7 @@
|
||||
- !reference [.gallium-core-rules, rules]
|
||||
|
||||
.gl-manual-rules:
|
||||
extends: .no-auto-retry
|
||||
retry: !reference [.scheduled_pipeline-rules, retry]
|
||||
rules:
|
||||
- !reference [.core-manual-rules, rules]
|
||||
- changes:
|
||||
@@ -198,7 +193,7 @@
|
||||
when: on_success
|
||||
|
||||
.vulkan-manual-rules:
|
||||
extends: .no-auto-retry
|
||||
retry: !reference [.scheduled_pipeline-rules, retry]
|
||||
rules:
|
||||
- !reference [.core-manual-rules, rules]
|
||||
- changes:
|
||||
|
@@ -123,11 +123,31 @@ python-test:
|
||||
paths:
|
||||
- results/
|
||||
|
||||
.b2c-vkd3d-proton-test:
|
||||
.vkd3d-proton-test:
|
||||
artifacts:
|
||||
when: on_failure
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
paths:
|
||||
- results/vkd3d-proton.log
|
||||
script:
|
||||
- ./install/vkd3d-proton/run.sh
|
||||
|
||||
.piglit-test:
|
||||
artifacts:
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
paths:
|
||||
- results
|
||||
reports:
|
||||
junit: results/junit.xml
|
||||
variables:
|
||||
HWCI_TEST_SCRIPT: ./install/vkd3d-proton/run.sh
|
||||
PIGLIT_NO_WINDOW: 1
|
||||
HWCI_TEST_SCRIPT: "/install/piglit/piglit-runner.sh"
|
||||
script:
|
||||
- install/piglit/piglit-runner.sh
|
||||
|
||||
.piglit-traces-test:
|
||||
extends:
|
||||
- .piglit-test
|
||||
artifacts:
|
||||
when: on_failure
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
@@ -138,11 +158,9 @@ python-test:
|
||||
exclude:
|
||||
- results/*.shader_cache
|
||||
variables:
|
||||
PIGLIT_REPLAY_EXTRA_ARGS: --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_bucket=${S3_TRACIE_PUBLIC_BUCKET} --jwt-file=${S3_JWT_FILE}
|
||||
# until we overcome Infrastructure issues, give traces extra 5 min before timeout
|
||||
DEVICE_HANGING_TIMEOUT_SEC: 600
|
||||
PIGLIT_REPLAY_EXTRA_ARGS: --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_bucket=${S3_TRACIE_PUBLIC_BUCKET} --jwt-file=${S3_JWT_FILE}
|
||||
PIGLIT_NO_WINDOW: 1
|
||||
HWCI_TEST_SCRIPT: "/install/piglit/piglit-runner.sh"
|
||||
script:
|
||||
- section_start variables "Variables passed through:"
|
||||
- install/common/generate-env.sh
|
||||
@@ -205,12 +223,12 @@ python-test:
|
||||
.baremetal-test-arm32:
|
||||
extends:
|
||||
- .baremetal-test
|
||||
- .use-debian/baremetal_arm32_test
|
||||
- .use-debian/arm32_test
|
||||
variables:
|
||||
DEBIAN_ARCH: armhf
|
||||
S3_ARTIFACT_NAME: mesa-arm32-default-debugoptimized
|
||||
needs:
|
||||
- debian/baremetal_arm32_test
|
||||
- debian/arm32_test
|
||||
- job: debian-arm32
|
||||
artifacts: false
|
||||
- !reference [.required-for-hardware-jobs, needs]
|
||||
@@ -219,12 +237,12 @@ python-test:
|
||||
.baremetal-test-arm64:
|
||||
extends:
|
||||
- .baremetal-test
|
||||
- .use-debian/baremetal_arm64_test
|
||||
- .use-debian/arm64_test
|
||||
variables:
|
||||
DEBIAN_ARCH: arm64
|
||||
S3_ARTIFACT_NAME: mesa-arm64-default-debugoptimized
|
||||
needs:
|
||||
- debian/baremetal_arm64_test
|
||||
- debian/arm64_test
|
||||
- job: debian-arm64
|
||||
artifacts: false
|
||||
- !reference [.required-for-hardware-jobs, needs]
|
||||
@@ -233,12 +251,12 @@ python-test:
|
||||
.baremetal-arm32-asan-test:
|
||||
extends:
|
||||
- .baremetal-test
|
||||
- .use-debian/baremetal_arm32_test
|
||||
- .use-debian/arm32_test
|
||||
variables:
|
||||
DEQP_RUNNER_OPTIONS: "--env LD_PRELOAD=libasan.so.8:/install/lib/libdlclose-skip.so"
|
||||
S3_ARTIFACT_NAME: mesa-arm32-asan-debugoptimized
|
||||
needs:
|
||||
- debian/baremetal_arm32_test
|
||||
- debian/arm32_test
|
||||
- job: debian-arm32-asan
|
||||
artifacts: false
|
||||
- !reference [.required-for-hardware-jobs, needs]
|
||||
@@ -246,12 +264,12 @@ python-test:
|
||||
.baremetal-arm64-asan-test:
|
||||
extends:
|
||||
- .baremetal-test
|
||||
- .use-debian/baremetal_arm64_test
|
||||
- .use-debian/arm64_test
|
||||
variables:
|
||||
DEQP_RUNNER_OPTIONS: "--env LD_PRELOAD=libasan.so.8:/install/lib/libdlclose-skip.so"
|
||||
S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized
|
||||
needs:
|
||||
- debian/baremetal_arm64_test
|
||||
- debian/arm64_test
|
||||
- job: debian-arm64-asan
|
||||
artifacts: false
|
||||
- !reference [.required-for-hardware-jobs, needs]
|
||||
@@ -275,24 +293,28 @@ python-test:
|
||||
# built as part of the CI in the boot2container project.
|
||||
image: registry.freedesktop.org/gfx-ci/ci-tron/mesa-trigger:2024-01-05.1
|
||||
timeout: 1h 40m
|
||||
rules:
|
||||
- if: $FORCE_KERNEL_TAG != null
|
||||
when: never
|
||||
variables:
|
||||
# No need by default to pull the whole repo
|
||||
GIT_STRATEGY: none
|
||||
# boot2container initrd configuration parameters.
|
||||
B2C_KERNEL_URL: 'https://gitlab.freedesktop.org/gfx-ci/ci-tron/-/package_files/519/download' # Linux 6.1
|
||||
B2C_INITRAMFS_URL: 'https://gitlab.freedesktop.org/mupuf/boot2container/-/releases/v0.9.10/downloads/initramfs.linux_amd64.cpio.xz'
|
||||
B2C_JOB_SUCCESS_REGEX: 'hwci: mesa: pass\r$'
|
||||
B2C_JOB_SUCCESS_REGEX: '\[.*\]: Execution is over, pipeline status: 0\r$'
|
||||
B2C_JOB_WARN_REGEX: '\*ERROR\* ring .* timeout'
|
||||
B2C_LOG_LEVEL: 6
|
||||
B2C_POWEROFF_DELAY: 15
|
||||
B2C_SESSION_END_REGEX: '^.*It''s now safe to turn off your computer\r$'
|
||||
B2C_SESSION_REBOOT_REGEX: ''
|
||||
B2C_TIMEOUT_BOOT_MINUTES: 45
|
||||
B2C_TIMEOUT_BOOT_RETRIES: 0
|
||||
B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_MINUTES: 2
|
||||
B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_RETRIES: 3
|
||||
B2C_TIMEOUT_CONSOLE_ACTIVITY_MINUTES: 5
|
||||
B2C_TIMEOUT_FIRST_MINUTES: 2
|
||||
B2C_TIMEOUT_FIRST_RETRIES: 3
|
||||
B2C_TIMEOUT_MINUTES: 5
|
||||
B2C_TIMEOUT_OVERALL_MINUTES: 90
|
||||
B2C_TIMEOUT_CONSOLE_ACTIVITY_RETRIES: 0
|
||||
B2C_TIMEOUT_RETRIES: 0
|
||||
B2C_JOB_VOLUME_EXCLUSIONS: "*.shader_cache,install/*,*/install/*,*/vkd3d-proton.cache*,vkd3d-proton.cache*,*.qpa"
|
||||
|
||||
# As noted in the top description, we make a distinction between the
|
||||
@@ -402,21 +424,3 @@ python-test:
|
||||
- debian/x86_64_test-gl
|
||||
- debian-testing
|
||||
- !reference [.required-for-hardware-jobs, needs]
|
||||
|
||||
.b2c-arm64-test-vk:
|
||||
extends:
|
||||
- .use-debian/arm64_test-vk
|
||||
- .b2c-test
|
||||
needs:
|
||||
- debian/arm64_test-vk
|
||||
- debian-arm64
|
||||
- !reference [.required-for-hardware-jobs, needs]
|
||||
|
||||
.b2c-arm64-test-gl:
|
||||
extends:
|
||||
- .use-debian/arm64_test-gl
|
||||
- .b2c-test
|
||||
needs:
|
||||
- debian/arm64_test-gl
|
||||
- debian-arm64
|
||||
- !reference [.required-for-hardware-jobs, needs]
|
||||
|
@@ -16,13 +16,7 @@ from lava.utils import (
|
||||
fix_lava_gitlab_section_log,
|
||||
hide_sensitive_data,
|
||||
)
|
||||
from lava.utils.constants import (
|
||||
KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER,
|
||||
A6XX_GPU_RECOVERY_WATCH_PERIOD_MIN,
|
||||
A6XX_GPU_RECOVERY_FAILURE_MESSAGE,
|
||||
A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT,
|
||||
)
|
||||
from lava.utils.lava_log_hints import LAVALogHints
|
||||
from lava.utils.constants import KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER
|
||||
|
||||
from ..lava.helpers import (
|
||||
create_lava_yaml_msg,
|
||||
@@ -396,44 +390,3 @@ def test_detect_failure(messages, expectation):
|
||||
lf = LogFollower(starting_section=boot_section)
|
||||
with expectation:
|
||||
lf.feed(messages)
|
||||
|
||||
def test_detect_a6xx_gpu_recovery_failure(frozen_time):
|
||||
log_follower = LogFollower()
|
||||
lava_log_hints = LAVALogHints(log_follower=log_follower)
|
||||
failure_message = {
|
||||
"dt": datetime.now().isoformat(),
|
||||
"msg": A6XX_GPU_RECOVERY_FAILURE_MESSAGE[0],
|
||||
"lvl": "feedback",
|
||||
}
|
||||
with pytest.raises(MesaCIKnownIssueException):
|
||||
for _ in range(A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT):
|
||||
lava_log_hints.detect_a6xx_gpu_recovery_failure(failure_message)
|
||||
# Simulate the passage of time within the watch period
|
||||
frozen_time.tick(1)
|
||||
failure_message["dt"] = datetime.now().isoformat()
|
||||
|
||||
def test_detect_a6xx_gpu_recovery_success(frozen_time):
|
||||
log_follower = LogFollower()
|
||||
lava_log_hints = LAVALogHints(log_follower=log_follower)
|
||||
failure_message = {
|
||||
"dt": datetime.now().isoformat(),
|
||||
"msg": A6XX_GPU_RECOVERY_FAILURE_MESSAGE[0],
|
||||
"lvl": "feedback",
|
||||
}
|
||||
# Simulate sending a tolerable number of failure messages
|
||||
for _ in range(A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT - 1):
|
||||
lava_log_hints.detect_a6xx_gpu_recovery_failure(failure_message)
|
||||
frozen_time.tick(1)
|
||||
failure_message["dt"] = datetime.now().isoformat()
|
||||
|
||||
# Simulate the passage of time outside of the watch period
|
||||
frozen_time.tick(60 * A6XX_GPU_RECOVERY_WATCH_PERIOD_MIN + 1)
|
||||
failure_message = {
|
||||
"dt": datetime.now().isoformat(),
|
||||
"msg": A6XX_GPU_RECOVERY_FAILURE_MESSAGE[1],
|
||||
"lvl": "feedback",
|
||||
}
|
||||
with does_not_raise():
|
||||
lava_log_hints.detect_a6xx_gpu_recovery_failure(failure_message)
|
||||
assert lava_log_hints.a6xx_gpu_first_fail_time is None, "a6xx_gpu_first_fail_time is not None"
|
||||
assert lava_log_hints.a6xx_gpu_recovery_fail_counter == 0, "a6xx_gpu_recovery_fail_counter is not 0"
|
||||
|
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2035 # FIXME glob
|
||||
|
||||
set -ex
|
||||
|
||||
@@ -10,9 +11,6 @@ INSTALL=$(realpath -s "$PWD"/install)
|
||||
|
||||
RESULTS=$(realpath -s "$PWD"/results)
|
||||
|
||||
# Make sure the results folder exists
|
||||
mkdir -p "$RESULTS"
|
||||
|
||||
# Set up the driver environment.
|
||||
# Modifiying here directly LD_LIBRARY_PATH may cause problems when
|
||||
# using a command wrapper. Hence, we will just set it when running the
|
||||
@@ -20,54 +18,71 @@ mkdir -p "$RESULTS"
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL/lib/:/vkd3d-proton-tests/x64/"
|
||||
|
||||
|
||||
# Sanity check to ensure that our environment is sufficient to make our tests
|
||||
# run against the Mesa built by CI, rather than any installed distro version.
|
||||
MESA_VERSION=$(sed 's/\./\\./g' "$INSTALL/VERSION")
|
||||
|
||||
# Set the Vulkan driver to use.
|
||||
ARCH=$(uname -m)
|
||||
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.$ARCH.json"
|
||||
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.x86_64.json"
|
||||
|
||||
# Set environment for Wine.
|
||||
export WINEDEBUG="-all"
|
||||
export WINEPREFIX="/vkd3d-proton-wine64"
|
||||
export WINEESYNC=1
|
||||
|
||||
# Sanity check to ensure that our environment is sufficient to make our tests
|
||||
# run against the Mesa built by CI, rather than any installed distro version.
|
||||
MESA_VERSION=$(cat "$INSTALL/VERSION")
|
||||
if ! vulkaninfo | grep driverInfo | tee /tmp/version.txt | grep -F "Mesa $MESA_VERSION"; then
|
||||
# wrapper to supress +x to avoid spamming the log
|
||||
quiet() {
|
||||
set +x
|
||||
"$@"
|
||||
set -x
|
||||
}
|
||||
|
||||
set +e
|
||||
if ! vulkaninfo | tee /tmp/version.txt | grep "\"Mesa $MESA_VERSION\(\s\|$\)\"";
|
||||
then
|
||||
printf "%s\n" "Found $(cat /tmp/version.txt), expected $MESA_VERSION"
|
||||
exit 1
|
||||
fi
|
||||
set -e
|
||||
|
||||
if [ -d "$RESULTS" ]; then
|
||||
cd "$RESULTS" && rm -rf ..?* .[!.]* * && cd -
|
||||
else
|
||||
mkdir "$RESULTS"
|
||||
fi
|
||||
|
||||
printf "%s\n" "Running vkd3d-proton testsuite..."
|
||||
quiet printf "%s\n" "Running vkd3d-proton testsuite..."
|
||||
|
||||
if ! /vkd3d-proton-tests/x64/bin/d3d12 > "$RESULTS/vkd3d-proton-log.txt"; then
|
||||
set +e
|
||||
if ! /vkd3d-proton-tests/x64/bin/d3d12 > "$RESULTS/vkd3d-proton.log";
|
||||
then
|
||||
# Check if the executable finished (ie. no segfault).
|
||||
if ! grep "tests executed" "$RESULTS/vkd3d-proton-log.txt" > /dev/null; then
|
||||
error "Failed, see ${ARTIFACTS_BASE_URL}/results/vkd3d-proton-log.txt"
|
||||
if ! grep "tests executed" "$RESULTS/vkd3d-proton.log" > /dev/null; then
|
||||
error printf "%s\n" "Failed, see vkd3d-proton.log!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Collect all the failures
|
||||
VKD3D_PROTON_RESULTS="${VKD3D_PROTON_RESULTS:-vkd3d-proton-results}"
|
||||
RESULTSFILE="$RESULTS/$VKD3D_PROTON_RESULTS.txt"
|
||||
mkdir -p .gitlab-ci/vkd3d-proton
|
||||
if ! grep "Test failed" "$RESULTS"/vkd3d-proton-log.txt > "$RESULTSFILE"; then
|
||||
error "Failed to get the list of failing tests, see ${ARTIFACTS_BASE_URL}/results/vkd3d-proton-log.txt"
|
||||
exit 1
|
||||
fi
|
||||
grep "Test failed" "$RESULTS"/vkd3d-proton.log > "$RESULTSFILE"
|
||||
|
||||
# Gather the list expected failures
|
||||
if [ -f "$INSTALL/$VKD3D_PROTON_RESULTS-vkd3d.txt" ]; then
|
||||
cp "$INSTALL/$VKD3D_PROTON_RESULTS-vkd3d.txt" \
|
||||
if [ -f "$INSTALL/$VKD3D_PROTON_RESULTS.txt" ]; then
|
||||
cp "$INSTALL/$VKD3D_PROTON_RESULTS.txt" \
|
||||
".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline"
|
||||
else
|
||||
printf "%s\n" "$VKD3D_PROTON_RESULTS-vkd3d.txt not found, assuming a \"no failures\" baseline."
|
||||
touch ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline"
|
||||
fi
|
||||
|
||||
# Make sure that the failures found in this run match the current expectation
|
||||
if ! diff --color=always -u ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" "$RESULTSFILE"; then
|
||||
error "Changes found, see ${ARTIFACTS_BASE_URL}/results/vkd3d-proton-log.txt"
|
||||
if ! diff -q ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" "$RESULTSFILE"; then
|
||||
error printf "%s\n" "Changes found, see vkd3d-proton.log!"
|
||||
quiet diff --color=always -u ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" "$RESULTSFILE"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
printf "%s\n" "vkd3d-proton execution: SUCCESS"
|
||||
|
||||
exit 0
|
||||
|
@@ -96,7 +96,6 @@ cmake ../llvm `
|
||||
-DLLVM_ENABLE_DIA_SDK=OFF `
|
||||
-DCLANG_BUILD_TOOLS=ON `
|
||||
-DLLVM_SPIRV_INCLUDE_TESTS=OFF `
|
||||
-DLLVM_ENABLE_ZLIB=OFF `
|
||||
-Wno-dev && `
|
||||
ninja -j32 install
|
||||
$buildstatus = $?
|
||||
|
@@ -68,7 +68,7 @@ Get-Date
|
||||
python -m pip install --upgrade pip --progress-bar off
|
||||
Write-Host "Installing python packages at:"
|
||||
Get-Date
|
||||
pip3 install packaging meson mako "numpy < 2.0" pyyaml --progress-bar off
|
||||
pip3 install packaging meson mako numpy --progress-bar off
|
||||
if (!$?) {
|
||||
Write-Host "Failed to install dependencies from pip"
|
||||
Exit 1
|
||||
|
@@ -30,7 +30,7 @@ For rendering errors, attach screenshots of the problem and (if possible) of how
|
||||
|
||||
- Backtrace (for crashes)
|
||||
- Output of `dmesg`
|
||||
- Hang reports: Follow the steps described [here](https://docs.mesa3d.org/drivers/amd/hang-debugging.html#radv-debug-hang) and attach the files created in `$HOME/radv_dumps_*/`.
|
||||
- Hang reports: Run with `RADV_DEBUG=hang` and attach the files created in `$HOME/radv_dumps_*/`
|
||||
|
||||
### Steps to reproduce
|
||||
|
||||
|
26
.mailmap
26
.mailmap
@@ -84,8 +84,6 @@ Ben Widawsky <benjamin.widawsky@intel.com> Ben Widawsky <ben@bwidawsk.net>
|
||||
|
||||
Blair Sadewitz <blair.sadewitz@gmail.com> Blair Sadewitz <blair.sadewitz.gmail.com>
|
||||
|
||||
Bob Beckett <bob.beckett@collabora.com>
|
||||
|
||||
Boris Brezillon <boris.brezillon@collabora.com> <boris.brezillon@free-electrons.com>
|
||||
|
||||
Boris Peterbarg <reist@users.sourceforge.net> reist <reist>
|
||||
@@ -159,8 +157,6 @@ Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Christop
|
||||
Christopher Li <chrisl@vmware.com> Chris Li <chrisl@vmware.com>
|
||||
Christopher Li <chrisl@vmware.com> Qicheng Christopher Li <chrisl@vmware.com>
|
||||
|
||||
Christopher Michael <cmichael@igalia.com> <devilhorns@comcast.net>
|
||||
|
||||
Claudio Ciccani <klan@directfb.org> <klan@users.sf.net>
|
||||
Claudio Ciccani <klan@directfb.org> <klan@users.sourceforge.net>
|
||||
|
||||
@@ -172,7 +168,7 @@ Colin McDonald <cjmmail10-bz@yahoo.co.uk> <cjmcdonald@qinetiq.com>
|
||||
Connor Abbott <cwabbott0@gmail.com> <connor.w.abbott@intel.com>
|
||||
Connor Abbott <cwabbott0@gmail.com> <connor.abbott@intel.com>
|
||||
|
||||
Constantine Shablia <constantine.shablya@collabora.com>
|
||||
Konstantin Kharlamov <Hi-Angel@yandex.ru>
|
||||
|
||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomed...@gmail.com>
|
||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomedude@gmail.com>
|
||||
@@ -196,7 +192,6 @@ David Miller <davem@davemloft.net> davem69 <davem69>
|
||||
|
||||
David Heidelberg <david@ixit.cz> David Heidelberger <david.heidelberger@ixit.cz>
|
||||
David Heidelberg <david@ixit.cz> <d.okias@gmail.com>
|
||||
David Heidelberg <david@ixit.cz> <david.heidelberg@collabora.com>
|
||||
|
||||
David Reveman <reveman@chromium.org> <c99drn@cs.umu.se>
|
||||
|
||||
@@ -236,7 +231,7 @@ Eric Engestrom <eric@igalia.com> <eric@engestrom.ch>
|
||||
Eric Engestrom <eric@igalia.com> <eric.engestrom@imgtec.com>
|
||||
Eric Engestrom <eric@igalia.com> <eric.engestrom@intel.com>
|
||||
|
||||
Erik Faye-Lund <erik.faye-lund@collabora.com> <kusmabite@gmail.com>
|
||||
Erik Faye-Lund <kusmabite@gmail.com> <erik.faye-lund@collabora.com>
|
||||
|
||||
Eugeni Dodonov <eugeni.dodonov@intel.com> <eugeni@mandriva.com>
|
||||
|
||||
@@ -251,12 +246,9 @@ Frank Binns <frank.binns@imgtec.com> <francisbinns@gmail.com>
|
||||
|
||||
Frank Henigman <fjhenigman@google.com> <fjhenigman@chromium.org>
|
||||
|
||||
Freya Gentz <zegentzy@protonmail.com>
|
||||
|
||||
George Sapountzis <gsapountzis@gmail.com> George Sapountzis <gsap7@yahoo.gr>
|
||||
|
||||
Gert Wollny <gert.wollny@collabora.com> <gw.fossdev@gmail.com>
|
||||
Gert Wollny <gert.wollny@collabora.com> <gert.wollny@collabora.co.uk>
|
||||
|
||||
Gurchetan Singh <gurchetansingh@chromium.org>
|
||||
|
||||
@@ -378,9 +370,6 @@ Karl Schultz <karl.w.schultz@gmail.com> <k.w.schultz@comcast.net>
|
||||
Karl Schultz <karl.w.schultz@gmail.com> <Karl.W.Schultz@gmail.com>
|
||||
Karl Schultz <karl.w.schultz@gmail.com> <kschultz@freedesktop.org>
|
||||
|
||||
Karmjit Mahil <karmjit.mahil@igalia.com>
|
||||
Karmjit Mahil <karmjit.mahil@igalia.com> <karmjit.mahil@imgtec.com>
|
||||
|
||||
Karol Herbst <kherbst@redhat.com> <git@karolherbst.de>
|
||||
Karol Herbst <kherbst@redhat.com> <karolherbst@gmail.com>
|
||||
Karol Herbst <kherbst@redhat.com> <nouveau@karolherbst.de>
|
||||
@@ -395,8 +384,6 @@ Keith Whitwell <keithw@vmware.com> keithw <keithw@keithw-laptop.(none)>
|
||||
|
||||
Kevin Rogovin <kevin.rogovin@intel.com> <kevin.rogovin@gmail.com>
|
||||
|
||||
Konstantin Kharlamov <Hi-Angel@yandex.ru>
|
||||
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@redhat.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@hinata.boston.redhat.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@sasori.boston.redhat.com>
|
||||
@@ -586,16 +573,9 @@ Robert Hooker <sarvatt@ubuntu.com> <robert.hooker@canonical.com>
|
||||
|
||||
Rodrigo Vivi <rodrigo.vivi@intel.com> <rodrigo.vivi@gmail.com>
|
||||
|
||||
Rohan Garg <rohan.garg@intel.com> <rohan.garg@collabora.com>
|
||||
Rohan Garg <rohan.garg@intel.com> <rohan@garg.io>
|
||||
|
||||
Roland Scheidegger <sroland@vmware.com> <rscheidegger@gmx.ch>
|
||||
Roland Scheidegger <sroland@vmware.com> <sroland@tungstengraphics.com>
|
||||
|
||||
Roman Stratiienko <r.stratiienko@gmail.com> <roman.stratiienko@globallogic.com>
|
||||
Roman Stratiienko <r.stratiienko@gmail.com> <roman.o.stratiienko@globallogic.com>
|
||||
Roman Stratiienko <r.stratiienko@gmail.com> <roman.stratiienko@nure.ua>
|
||||
|
||||
Roy Spliet <rspliet@eclipso.eu> <r.spliet@student.tudelft.nl>
|
||||
|
||||
Rune Petersen <rune@megahurts.dk> Rune Peterson <rune@megahurts.dk>
|
||||
@@ -672,7 +652,7 @@ Tom Stellard <thomas.stellard@amd.com> <tstellar@redhat.com>
|
||||
|
||||
Tomasz Figa <tfiga@chromium.org> <tomasz.figa@gmail.com>
|
||||
|
||||
Tomeu Vizoso <tomeu@tomeuvizoso.net> <tomeu.vizoso@collabora.com>
|
||||
Tomeu Vizoso <tomeu.vizoso@collabora.com> <tomeu@tomeuvizoso.net>
|
||||
|
||||
Topi Pohjolainen <topi.pohjolainen@intel.com> <topi.pohjolainen@gmail.com>
|
||||
|
||||
|
@@ -22,7 +22,6 @@ issues:
|
||||
'dzn': 'dozen'
|
||||
'egl': 'EGL'
|
||||
'etnaviv': 'etnaviv'
|
||||
'etnaviv/nn': ['etnaviv', 'teflon']
|
||||
'freedreno': 'freedreno'
|
||||
'freedreno/ir3': ['freedreno', 'ir3']
|
||||
'gallium': 'gallium'
|
||||
@@ -41,48 +40,47 @@ issues:
|
||||
'iris': 'iris'
|
||||
'isl': 'ISL'
|
||||
'lima': 'lima'
|
||||
'lima/ppir': 'lima'
|
||||
'lima/ppir' : 'lima'
|
||||
'llvmpipe': 'llvmpipe'
|
||||
'mesa': 'mesa'
|
||||
'meson': 'meson'
|
||||
'mesa' : 'mesa'
|
||||
'meson' : 'meson'
|
||||
'microsoft/compiler': 'd3d12'
|
||||
'nak': 'NAK'
|
||||
'nine': 'nine'
|
||||
'nak' : 'NAK'
|
||||
'nine' : 'nine'
|
||||
'nir': 'NIR'
|
||||
'nir2dxil': 'd3d12'
|
||||
'nouveau': 'nouveau'
|
||||
'nv30': ['nouveau', 'nv30']
|
||||
'nv50': ['nouveau', 'nv50']
|
||||
'nv50/ir': 'nouveau'
|
||||
'nvc0': ['nouveau', 'nvc0']
|
||||
'nvk': 'NVK'
|
||||
'panfrost': 'panfrost'
|
||||
'pan/midgard': 'panfrost'
|
||||
'pvr': 'powervr'
|
||||
'r100': 'r100'
|
||||
'r200': 'r200'
|
||||
'r300': 'r300'
|
||||
'r600': 'r600'
|
||||
'radeonsi': 'radeonsi'
|
||||
'nouveau' : 'nouveau'
|
||||
'nv30' : ['nouveau', 'nv30']
|
||||
'nv50' : ['nouveau', 'nv50']
|
||||
'nv50/ir' : 'nouveau'
|
||||
'nvc0' : ['nouveau', 'nvc0']
|
||||
'nvk' : 'NVK'
|
||||
'panfrost' : 'panfrost'
|
||||
'pan/midgard' : 'panfrost'
|
||||
'pvr' : 'powervr'
|
||||
'r100' : 'r100'
|
||||
'r200' : 'r200'
|
||||
'r300' : 'r300'
|
||||
'r600' : 'r600'
|
||||
'radeonsi' : 'radeonsi'
|
||||
'radv': 'RADV'
|
||||
'radv/aco': ['RADV', 'ACO']
|
||||
'rusticl': 'Rusticl'
|
||||
'softpipe': 'softpipe'
|
||||
'spirv': 'SPIR-V'
|
||||
'swr': 'swr'
|
||||
'swrast': 'swrast'
|
||||
'teflon': 'teflon'
|
||||
'tegra': 'tegra'
|
||||
'tgsi': 'TGSI'
|
||||
'softpipe' : 'softpipe'
|
||||
'spirv' : 'SPIR-V'
|
||||
'swr' : 'swr'
|
||||
'swrast' : 'swrast'
|
||||
'tegra' : 'tegra'
|
||||
'tgsi' : 'TGSI'
|
||||
'turnip': 'turnip'
|
||||
'util': 'util'
|
||||
'util' : 'util'
|
||||
'v3d': 'v3d'
|
||||
'vaapi': 'VA-API'
|
||||
'vc4': 'vc4'
|
||||
'vdpau': 'VDPAU'
|
||||
'vieux': 'vieux'
|
||||
'virgl': 'virgl'
|
||||
'vmwgfx': 'vmwgfx'
|
||||
'vaapi' : 'VA-API'
|
||||
'vc4' : 'vc4'
|
||||
'vdpau' : 'VDPAU'
|
||||
'vieux' : 'vieux'
|
||||
'virgl' : 'virgl'
|
||||
'vmwgfx' : 'vmwgfx'
|
||||
'zink': 'zink'
|
||||
|
||||
titles: &titles
|
||||
@@ -91,20 +89,20 @@ issues:
|
||||
'coverity': 'coverity'
|
||||
'deqp': 'deqp'
|
||||
'feature request': 'feature request'
|
||||
'haiku': 'haiku'
|
||||
'haiku' : 'haiku'
|
||||
'regression': 'regression'
|
||||
|
||||
'i915_dri.so': 'i915'
|
||||
'i965_dri.so': 'i965'
|
||||
'iris_dri.so': 'iris'
|
||||
'nouveau_dri.so': 'nouveau'
|
||||
'nouveau_vieux_dri.so': 'vieux'
|
||||
'r200_dri.so': 'r200'
|
||||
'r300_dri.so': 'r300'
|
||||
'r600_dri.so': 'r600'
|
||||
'radeonsi_dri.so': 'radeonsi'
|
||||
'swrast_dri.so': 'swrast'
|
||||
'vmwgfx_dri.so': 'vmwgfx'
|
||||
'i915_dri.so' : 'i915'
|
||||
'i965_dri.so' : 'i965'
|
||||
'iris_dri.so' : 'iris'
|
||||
'nouveau_dri.so' : 'nouveau'
|
||||
'nouveau_vieux_dri.so' : 'vieux'
|
||||
'r200_dri.so' : 'r200'
|
||||
'r300_dri.so' : 'r300'
|
||||
'r600_dri.so' : 'r600'
|
||||
'radeonsi_dri.so' : 'radeonsi'
|
||||
'swrast_dri.so' : 'swrast'
|
||||
'vmwgfx_dri.so' : 'vmwgfx'
|
||||
|
||||
merge_requests:
|
||||
topics:
|
||||
@@ -113,189 +111,172 @@ merge_requests:
|
||||
*titles
|
||||
|
||||
paths:
|
||||
'^.gitlab/issue_templates/': ['docs']
|
||||
'^.gitlab-ci': ['CI']
|
||||
'^.*/gitlab-ci(-inc)?.yml': ['CI']
|
||||
'^.*/ci/deqp-.*\.toml': ['CI']
|
||||
'^.*/ci/.*-(fails|flakes|skips)\.txt': ['CI-Expectations']
|
||||
'^.*/ci/(restricted-)?traces-.*\.yml': ['CI-Expectations', 'trace']
|
||||
'^.*/ci/.*-validation-settings\.txt': ['CI-Expectations']
|
||||
'^.*/ci/.*-vkd3d\.txt': ['CI-Expectations']
|
||||
'^.gitlab-ci/windows/': ['Windows']
|
||||
'^bin/__init__.py$': ['maintainer-scripts']
|
||||
'^bin/gen_release_notes': ['maintainer-scripts']
|
||||
'^bin/git_sha1_gen.py$': ['meson', 'android']
|
||||
'^bin/install_megadrivers.py$': ['meson']
|
||||
'^bin/meson-cmd-extract.py$': ['meson']
|
||||
'^bin/meson.build$': ['meson']
|
||||
'^bin/pick-ui': ['maintainer-scripts']
|
||||
'^bin/pick/': ['maintainer-scripts']
|
||||
'^bin/post_version': ['maintainer-scripts']
|
||||
'^bin/symbols-check.py$': ['meson']
|
||||
'^docs/': ['docs']
|
||||
'^include/drm-uapi/i915_drm.h': ['intel']
|
||||
'^include/drm-uapi/xe_drm.h': ['intel']
|
||||
'^include/vulkan/': ['vulkan']
|
||||
'^meson_options.txt': ['meson']
|
||||
'^README.rst': ['docs']
|
||||
'^src/amd/addrlib/': ['AMD common']
|
||||
'^src/amd/common/': ['AMD common']
|
||||
'^src/amd/compiler/': ['ACO']
|
||||
'^src/amd/llvm/': ['AMD common']
|
||||
'^src/amd/registers/': ['AMD common']
|
||||
'^src/amd/vulkan/': ['RADV']
|
||||
'^src/asahi/': ['asahi']
|
||||
'^src/broadcom/drm-shim/v3d': ['v3d']
|
||||
'^src/broadcom/vulkan/': ['v3dv']
|
||||
'^src/compiler/clc': ['OpenCL']
|
||||
'^src/compiler/glsl': ['GLSL']
|
||||
'^src/compiler/nir': ['NIR']
|
||||
'^src/compiler/spirv/': ['SPIR-V']
|
||||
'^src/egl/': ['EGL']
|
||||
'^src/egl/drivers/wgl/': ['wgl']
|
||||
'^src/etnaviv/': ['etnaviv']
|
||||
'^src/freedreno/afuc/': ['freedreno']
|
||||
'^src/freedreno/common/': ['freedreno']
|
||||
'^src/freedreno/computerator/': ['freedreno']
|
||||
'^src/freedreno/decode/': ['freedreno']
|
||||
'^src/freedreno/drm-shim/': ['freedreno']
|
||||
'^src/freedreno/drm/': ['freedreno']
|
||||
'^src/freedreno/ds/': ['freedreno']
|
||||
'^src/freedreno/fdl/': ['freedreno']
|
||||
'^src/freedreno/ir2/': ['freedreno']
|
||||
'^src/freedreno/ir3/': ['ir3']
|
||||
'^src/freedreno/isa/': ['freedreno']
|
||||
'^src/freedreno/perfcntrs/': ['freedreno']
|
||||
'^src/freedreno/registers/': ['freedreno']
|
||||
'^src/freedreno/rnn/': ['freedreno']
|
||||
'^src/freedreno/vulkan/': ['turnip']
|
||||
'^src/gallium/auxiliary/': ['gallium']
|
||||
'^src/gallium/auxiliary/nir/': ['NIR']
|
||||
'^src/gallium/auxiliary/nir/.*tgsi.*': ['TGSI']
|
||||
'^src/gallium/auxiliary/tgsi/': ['TGSI']
|
||||
'^src/gallium/docs/': ['gallium']
|
||||
'^src/gallium/drivers/asahi/': ['asahi']
|
||||
'^src/gallium/drivers/crocus/': ['crocus']
|
||||
'^src/gallium/drivers/d3d12/': ['d3d12']
|
||||
'^src/gallium/drivers/etnaviv/': ['etnaviv']
|
||||
'^src/gallium/drivers/etnaviv/etnaviv_ml_.*': ['teflon']
|
||||
'^src/gallium/drivers/freedreno/': ['freedreno']
|
||||
'^src/gallium/drivers/grate/': ['tegra']
|
||||
'^src/gallium/drivers/i915/': ['i915g']
|
||||
'^src/gallium/drivers/iris/': ['iris']
|
||||
'^src/gallium/drivers/lima/': ['lima']
|
||||
'^src/gallium/drivers/llvmpipe/': ['llvmpipe']
|
||||
'^src/gallium/drivers/nouveau/': ['nouveau']
|
||||
'^src/gallium/drivers/nouveau/nv30': ['nv30']
|
||||
'^src/gallium/drivers/nouveau/nv50': ['nv50']
|
||||
'^src/gallium/drivers/nouveau/nvc0': ['nvc0']
|
||||
'^src/gallium/drivers/panfrost/': ['panfrost']
|
||||
'^src/gallium/drivers/r300/': ['r300']
|
||||
'^src/gallium/drivers/r600/': ['r600']
|
||||
'^src/gallium/drivers/radeonsi': ['radeonsi']
|
||||
'^src/gallium/drivers/softpipe': ['softpipe']
|
||||
'^src/gallium/drivers/svga/': ['svga']
|
||||
'^src/gallium/drivers/swr/': ['swr']
|
||||
'^src/gallium/drivers/tegra/': ['tegra']
|
||||
'^src/gallium/drivers/v3d/': ['v3d']
|
||||
'^src/gallium/drivers/vc4/': ['vc4']
|
||||
'^src/gallium/drivers/virgl/': ['virgl']
|
||||
'^src/gallium/drivers/zink/': ['zink']
|
||||
'^src/gallium/frontends/clover/': ['clover']
|
||||
'^src/gallium/frontends/dri/': ['gallium']
|
||||
'^src/gallium/frontends/glx/': ['GLX']
|
||||
'^src/gallium/frontends/hgl/': ['haiku']
|
||||
'^src/gallium/frontends/lavapipe/': ['lavapipe']
|
||||
'^src/gallium/frontends/nine/': ['nine']
|
||||
'^src/gallium/frontends/omx/': ['omx']
|
||||
'^src/gallium/frontends/osmesa/': ['osmesa']
|
||||
'^src/gallium/frontends/rusticl/': ['Rusticl']
|
||||
'^src/gallium/frontends/teflon/': ['teflon']
|
||||
'^src/gallium/frontends/va/': ['VA-API']
|
||||
'^src/gallium/frontends/vdpau/': ['VDPAU']
|
||||
'^src/gallium/frontends/wgl/': ['wgl']
|
||||
# '^src/gallium/frontends/xa/': ['']
|
||||
'^src/gallium/include/': ['gallium']
|
||||
'^src/gallium/targets/': ['gallium']
|
||||
'^src/gallium/targets/opencl/': ['clover']
|
||||
'^src/gallium/targets/osmesa/': ['osmesa']
|
||||
'^src/gallium/targets/rusticl/': ['Rusticl']
|
||||
'^src/gallium/tests/': ['gallium']
|
||||
'^src/gallium/tools/': ['gallium']
|
||||
# '^src/gallium/winsys/amdgpu/': ['']
|
||||
'^src/gallium/winsys/crocus/': ['crocus']
|
||||
'^src/gallium/winsys/d3d12/': ['d3d12']
|
||||
'^src/gallium/winsys/etnaviv/': ['etnaviv']
|
||||
'^src/gallium/winsys/freedreno/': ['freedreno']
|
||||
'^src/gallium/winsys/grate/': ['tegra']
|
||||
'^src/gallium/winsys/i915/': ['i915g']
|
||||
'^src/gallium/winsys/iris/': ['iris']
|
||||
# '^src/gallium/winsys/kmsro/': ['']
|
||||
'^src/gallium/winsys/lima/': ['lima']
|
||||
'^src/gallium/winsys/nouveau/': ['nouveau']
|
||||
'^src/gallium/winsys/panfrost/': ['panfrost']
|
||||
# '^src/gallium/winsys/radeon/': ['radeon']
|
||||
'^src/gallium/winsys/svga/': ['svga']
|
||||
# '^src/gallium/winsys/sw/': ['']
|
||||
'^src/gallium/winsys/sw/gdi/': ['wgl']
|
||||
'^src/gallium/winsys/tegra/': ['tegra']
|
||||
'^src/gallium/winsys/v3d/': ['v3d']
|
||||
'^src/gallium/winsys/vc4/': ['vc4']
|
||||
'^src/gallium/winsys/virgl/': ['virgl']
|
||||
'^src/gbm/': ['gbm']
|
||||
'^src/glx/': ['GLX']
|
||||
'^src/imagination/': ['powervr']
|
||||
'^src/intel/blorp/': ['blorp']
|
||||
'^src/intel/common/': ['intel']
|
||||
'^src/intel/compiler/': ['intel-compiler']
|
||||
'^src/intel/compiler/brw': ['intel-brw']
|
||||
'^src/intel/compiler/elk': ['intel-elk']
|
||||
'^src/intel/dev/': ['intel']
|
||||
'^src/intel/ds/': ['intel']
|
||||
'^src/intel/genxml/': ['intel']
|
||||
'^src/intel/isl/': ['ISL']
|
||||
'^src/intel/nullhw-layer/': ['intel']
|
||||
'^src/intel/perf/': ['intel']
|
||||
'^src/intel/tools/': ['intel-tools']
|
||||
'^src/intel/vulkan/': ['ANV']
|
||||
'^src/intel/vulkan_hasvk/': ['hasvk']
|
||||
'^src/loader/': ['loader']
|
||||
'^src/mapi/': ['mapi']
|
||||
'^src/mesa/drivers/dri/i915/': ['i915']
|
||||
'^src/mesa/drivers/dri/i965/': ['i965']
|
||||
'^src/mesa/drivers/dri/nouveau/': ['vieux']
|
||||
'^src/mesa/drivers/dri/r200/': ['r200']
|
||||
'^src/mesa/drivers/dri/radeon/': ['radeon']
|
||||
'^src/mesa/drivers/dri/swrast/': ['swrast']
|
||||
'^src/mesa/drivers/osmesa': ['osmesa']
|
||||
'^src/mesa/main/': ['mesa']
|
||||
'^src/mesa/state_tracker/.*glsl.*': ['GLSL']
|
||||
'^src/mesa/state_tracker/.*tgsi.*': ['TGSI']
|
||||
'^src/mesa/state_tracker/.*nir.*': ['NIR']
|
||||
'^src/microsoft/clc/': ['d3d12']
|
||||
'^src/microsoft/compiler/': ['d3d12']
|
||||
'^src/microsoft/spirv_to_dxil/': ['dozen']
|
||||
'^src/microsoft/vulkan/': ['dozen']
|
||||
'^src/nouveau/codegen/': ['nouveau']
|
||||
'^src/nouveau/compiler/': ['NAK']
|
||||
'^src/nouveau/drm-shim/': ['nouveau']
|
||||
'^src/nouveau/drm/': ['nouveau']
|
||||
'^src/nouveau/headers/': ['NVK']
|
||||
'^src/nouveau/mme/': ['NVK']
|
||||
'^src/nouveau/nil/': ['NVK']
|
||||
'^src/nouveau/vulkan/': ['NVK']
|
||||
'^src/nouveau/winsys/': ['NVK']
|
||||
'^src/panfrost/': ['panfrost']
|
||||
'^src/virtio/vulkan/': ['venus']
|
||||
'^src/virtio/venus-protocol/': ['venus']
|
||||
'^src/virtio/ci/': ['venus']
|
||||
'^src/util/': ['util']
|
||||
'^src/util/00-mesa-defaults.conf': ['drirc']
|
||||
'^src/vulkan/': ['vulkan']
|
||||
'^src/vulkan/wsi/': ['wsi']
|
||||
'^VERSION$': ['maintainer-scripts']
|
||||
'^.gitlab/issue_templates/' : ['docs']
|
||||
'^.gitlab-ci' : ['CI']
|
||||
'^.*/gitlab-ci(-inc)?.yml' : ['CI']
|
||||
'^.*/ci/deqp-.*\.toml' : ['CI']
|
||||
'^.*/ci/.*-(fails|flakes|skips)\.txt' : ['CI']
|
||||
'^.*/ci/(restricted-)?traces-.*\.yml' : ['CI']
|
||||
'^.*/ci/.*-validation-settings\.txt' : ['CI']
|
||||
'^.gitlab-ci/windows/' : ['Windows']
|
||||
'^bin/__init__.py$' : ['maintainer-scripts']
|
||||
'^bin/gen_release_notes' : ['maintainer-scripts']
|
||||
'^bin/git_sha1_gen.py$' : ['meson', 'android']
|
||||
'^bin/install_megadrivers.py$' : ['meson']
|
||||
'^bin/meson-cmd-extract.py$' : ['meson']
|
||||
'^bin/meson.build$' : ['meson']
|
||||
'^bin/pick-ui' : ['maintainer-scripts']
|
||||
'^bin/pick/' : ['maintainer-scripts']
|
||||
'^bin/post_version' : ['maintainer-scripts']
|
||||
'^bin/symbols-check.py$' : ['meson']
|
||||
'^docs/' : ['docs']
|
||||
'^include/drm-uapi/i915_drm.h' : ['intel']
|
||||
'^include/drm-uapi/xe_drm.h' : ['intel']
|
||||
'^include/vulkan/' : ['vulkan']
|
||||
'^meson_options.txt' : ['meson']
|
||||
'^README.rst' : ['docs']
|
||||
'^src/amd/addrlib/' : ['AMD common']
|
||||
'^src/amd/common/' : ['AMD common']
|
||||
'^src/amd/compiler/' : ['ACO']
|
||||
'^src/amd/llvm/' : ['AMD common']
|
||||
'^src/amd/registers/' : ['AMD common']
|
||||
'^src/amd/vulkan/' : ['RADV']
|
||||
'^src/asahi/' : ['asahi']
|
||||
'^src/broadcom/drm-shim/v3d' : ['v3d']
|
||||
'^src/broadcom/vulkan/' : ['v3dv']
|
||||
'^src/compiler/clc' : ['OpenCL']
|
||||
'^src/compiler/glsl' : ['GLSL']
|
||||
'^src/compiler/nir' : ['NIR']
|
||||
'^src/compiler/spirv/' : ['SPIR-V']
|
||||
'^src/egl/' : ['EGL']
|
||||
'^src/egl/drivers/wgl/' : ['wgl']
|
||||
'^src/etnaviv/' : ['etnaviv']
|
||||
'^src/freedreno/' : ['freedreno']
|
||||
'^src/freedreno/ir3/' : ['ir3']
|
||||
'^src/freedreno/vulkan/' : ['turnip']
|
||||
'^src/gallium/auxiliary/' : ['gallium']
|
||||
'^src/gallium/auxiliary/nir/' : ['NIR']
|
||||
'^src/gallium/auxiliary/nir/.*tgsi.*' : ['TGSI']
|
||||
'^src/gallium/auxiliary/tgsi/' : ['TGSI']
|
||||
'^src/gallium/docs/' : ['gallium']
|
||||
'^src/gallium/drivers/asahi/' : ['asahi']
|
||||
'^src/gallium/drivers/crocus/' : ['crocus']
|
||||
'^src/gallium/drivers/d3d12/' : ['d3d12']
|
||||
'^src/gallium/drivers/etnaviv/' : ['etnaviv']
|
||||
'^src/gallium/drivers/freedreno/' : ['freedreno']
|
||||
'^src/gallium/drivers/grate/' : ['tegra']
|
||||
'^src/gallium/drivers/i915/' : ['i915g']
|
||||
'^src/gallium/drivers/iris/' : ['iris']
|
||||
'^src/gallium/drivers/lima/' : ['lima']
|
||||
'^src/gallium/drivers/llvmpipe/' : ['llvmpipe']
|
||||
'^src/gallium/drivers/nouveau/' : ['nouveau']
|
||||
'^src/gallium/drivers/nouveau/nv30' : ['nv30']
|
||||
'^src/gallium/drivers/nouveau/nv50' : ['nv50']
|
||||
'^src/gallium/drivers/nouveau/nvc0' : ['nvc0']
|
||||
'^src/gallium/drivers/panfrost/' : ['panfrost']
|
||||
'^src/gallium/drivers/r300/' : ['r300']
|
||||
'^src/gallium/drivers/r600/' : ['r600']
|
||||
'^src/gallium/drivers/radeonsi' : ['radeonsi']
|
||||
'^src/gallium/drivers/softpipe' : ['softpipe']
|
||||
'^src/gallium/drivers/svga/' : ['svga']
|
||||
'^src/gallium/drivers/swr/' : ['swr']
|
||||
'^src/gallium/drivers/tegra/' : ['tegra']
|
||||
'^src/gallium/drivers/v3d/' : ['v3d']
|
||||
'^src/gallium/drivers/vc4/' : ['vc4']
|
||||
'^src/gallium/drivers/virgl/' : ['virgl']
|
||||
'^src/gallium/drivers/zink/' : ['zink']
|
||||
'^src/gallium/frontends/clover/' : ['clover']
|
||||
'^src/gallium/frontends/dri/' : ['gallium']
|
||||
'^src/gallium/frontends/glx/' : ['GLX']
|
||||
'^src/gallium/frontends/hgl/' : ['haiku']
|
||||
'^src/gallium/frontends/lavapipe/' : ['lavapipe']
|
||||
'^src/gallium/frontends/nine/' : ['nine']
|
||||
'^src/gallium/frontends/omx/' : ['omx']
|
||||
'^src/gallium/frontends/osmesa/' : ['osmesa']
|
||||
'^src/gallium/frontends/rusticl/' : ['Rusticl']
|
||||
'^src/gallium/frontends/va/' : ['VA-API']
|
||||
'^src/gallium/frontends/vdpau/' : ['VDPAU']
|
||||
'^src/gallium/frontends/wgl/' : ['wgl']
|
||||
# '^src/gallium/frontends/xa/' : ['']
|
||||
'^src/gallium/include/' : ['gallium']
|
||||
'^src/gallium/targets/' : ['gallium']
|
||||
'^src/gallium/targets/opencl/' : ['clover']
|
||||
'^src/gallium/targets/osmesa/' : ['osmesa']
|
||||
'^src/gallium/targets/rusticl/' : ['Rusticl']
|
||||
'^src/gallium/tests/' : ['gallium']
|
||||
'^src/gallium/tools/' : ['gallium']
|
||||
# '^src/gallium/winsys/amdgpu/' : ['']
|
||||
'^src/gallium/winsys/crocus/' : ['crocus']
|
||||
'^src/gallium/winsys/d3d12/' : ['d3d12']
|
||||
'^src/gallium/winsys/etnaviv/' : ['etnaviv']
|
||||
'^src/gallium/winsys/freedreno/' : ['freedreno']
|
||||
'^src/gallium/winsys/grate/' : ['tegra']
|
||||
'^src/gallium/winsys/i915/' : ['i915g']
|
||||
'^src/gallium/winsys/iris/' : ['iris']
|
||||
# '^src/gallium/winsys/kmsro/' : ['']
|
||||
'^src/gallium/winsys/lima/' : ['lima']
|
||||
'^src/gallium/winsys/nouveau/' : ['nouveau']
|
||||
'^src/gallium/winsys/panfrost/' : ['panfrost']
|
||||
# '^src/gallium/winsys/radeon/' : ['radeon']
|
||||
'^src/gallium/winsys/svga/' : ['svga']
|
||||
# '^src/gallium/winsys/sw/' : ['']
|
||||
'^src/gallium/winsys/sw/gdi/' : ['wgl']
|
||||
'^src/gallium/winsys/tegra/' : ['tegra']
|
||||
'^src/gallium/winsys/v3d/' : ['v3d']
|
||||
'^src/gallium/winsys/vc4/' : ['vc4']
|
||||
'^src/gallium/winsys/virgl/' : ['virgl']
|
||||
'^src/gbm/' : ['gbm']
|
||||
'^src/glx/' : ['GLX']
|
||||
'^src/imagination/' : ['powervr']
|
||||
'^src/intel/blorp/' : ['blorp']
|
||||
'^src/intel/common/' : ['intel']
|
||||
'^src/intel/compiler/' : ['intel-compiler']
|
||||
'^src/intel/compiler/brw' : ['intel-brw']
|
||||
'^src/intel/compiler/elk' : ['intel-elk']
|
||||
'^src/intel/dev/' : ['intel']
|
||||
'^src/intel/ds/' : ['intel']
|
||||
'^src/intel/genxml/' : ['intel']
|
||||
'^src/intel/isl/' : ['ISL']
|
||||
'^src/intel/nullhw-layer/' : ['intel']
|
||||
'^src/intel/perf/' : ['intel']
|
||||
'^src/intel/tools/' : ['intel-tools']
|
||||
'^src/intel/vulkan/' : ['ANV']
|
||||
'^src/intel/vulkan_hasvk/' : ['hasvk']
|
||||
'^src/loader/' : ['loader']
|
||||
'^src/mapi/' : ['mapi']
|
||||
'^src/mesa/drivers/dri/i915/' : ['i915']
|
||||
'^src/mesa/drivers/dri/i965/' : ['i965']
|
||||
'^src/mesa/drivers/dri/nouveau/' : ['vieux']
|
||||
'^src/mesa/drivers/dri/r200/' : ['r200']
|
||||
'^src/mesa/drivers/dri/radeon/' : ['radeon']
|
||||
'^src/mesa/drivers/dri/swrast/' : ['swrast']
|
||||
'^src/mesa/drivers/osmesa' : ['osmesa']
|
||||
'^src/mesa/main/' : ['mesa']
|
||||
'^src/mesa/state_tracker/.*glsl.*' : ['GLSL']
|
||||
'^src/mesa/state_tracker/.*tgsi.*' : ['TGSI']
|
||||
'^src/mesa/state_tracker/.*nir.*' : ['NIR']
|
||||
'^src/microsoft/clc/' : ['d3d12']
|
||||
'^src/microsoft/compiler/' : ['d3d12']
|
||||
'^src/microsoft/spirv_to_dxil/' : ['dozen']
|
||||
'^src/microsoft/vulkan/' : ['dozen']
|
||||
'^src/nouveau/codegen/' : ['nouveau']
|
||||
'^src/nouveau/compiler/' : ['NAK']
|
||||
'^src/nouveau/drm-shim/' : ['nouveau']
|
||||
'^src/nouveau/mme/' : ['NVK']
|
||||
'^src/nouveau/nil/' : ['NVK']
|
||||
'^src/nouveau/nvidia-headers/' : ['NVK']
|
||||
'^src/nouveau/vulkan/' : ['NVK']
|
||||
'^src/nouveau/winsys/' : ['NVK']
|
||||
'^src/panfrost/' : ['panfrost']
|
||||
'^src/virtio/vulkan/' : ['venus']
|
||||
'^src/virtio/venus-protocol/' : ['venus']
|
||||
'^src/virtio/ci/' : ['venus']
|
||||
'^src/util/' : ['util']
|
||||
'^src/util/00-mesa-defaults.conf' : ['drirc']
|
||||
'^src/vulkan/' : ['vulkan']
|
||||
'^VERSION$' : ['maintainer-scripts']
|
||||
|
||||
'Android': ['android']
|
||||
'EGL': ['EGL']
|
||||
'meson.build': ['meson']
|
||||
'wayland': ['wayland']
|
||||
'Android' : ['android']
|
||||
'EGL' : ['EGL']
|
||||
'meson.build' : ['meson']
|
||||
'wayland' : ['wayland']
|
||||
|
68228
.pick_status.json
68228
.pick_status.json
File diff suppressed because it is too large
Load Diff
@@ -13,8 +13,8 @@ Build & install
|
||||
---------------
|
||||
|
||||
You can find more information in our documentation (`docs/install.rst
|
||||
<https://docs.mesa3d.org/install.html>`_), but the recommended way is to use
|
||||
Meson (`docs/meson.rst <https://docs.mesa3d.org/meson.html>`_):
|
||||
<https://mesa3d.org/install.html>`_), but the recommended way is to use
|
||||
Meson (`docs/meson.rst <https://mesa3d.org/meson.html>`_):
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
@@ -46,7 +46,7 @@ Bug reports
|
||||
-----------
|
||||
|
||||
If you think something isn't working properly, please file a bug report
|
||||
(`docs/bugs.rst <https://docs.mesa3d.org/bugs.html>`_).
|
||||
(`docs/bugs.rst <https://mesa3d.org/bugs.html>`_).
|
||||
|
||||
|
||||
Contributing
|
||||
@@ -54,6 +54,6 @@ Contributing
|
||||
|
||||
Contributions are welcome, and step-by-step instructions can be found in our
|
||||
documentation (`docs/submittingpatches.rst
|
||||
<https://docs.mesa3d.org/submittingpatches.html>`_).
|
||||
<https://mesa3d.org/submittingpatches.html>`_).
|
||||
|
||||
Note that Mesa uses gitlab for patches submission, review and discussions.
|
||||
|
@@ -27,12 +27,6 @@ LOCAL_PATH := $(call my-dir)
|
||||
MESA3D_TOP := $(dir $(LOCAL_PATH))
|
||||
|
||||
LIBDRM_VERSION = $(shell cat external/libdrm/meson.build | grep -o "\<version\>\s*:\s*'\w*\.\w*\.\w*'" | grep -o "\w*\.\w*\.\w*" | head -1)
|
||||
LLVM_VERSION_MAJOR = $(shell \
|
||||
if [ -f external/llvm-project/cmake/Modules/LLVMVersion.cmake ]; then \
|
||||
grep 'set.LLVM_VERSION_MAJOR ' external/llvm-project/cmake/Modules/LLVMVersion.cmake | grep -o '[0-9]\+'; \
|
||||
else \
|
||||
grep 'set.LLVM_VERSION_MAJOR ' external/llvm-project/llvm/CMakeLists.txt | grep -o '[0-9]\+'; \
|
||||
fi)
|
||||
|
||||
MESA_VK_LIB_SUFFIX_amd := radeon
|
||||
MESA_VK_LIB_SUFFIX_intel := intel
|
||||
@@ -92,8 +86,8 @@ MESON_GEN_PKGCONFIGS += DirectX-Headers
|
||||
endif
|
||||
|
||||
ifneq ($(MESON_GEN_LLVM_STUB),)
|
||||
MESON_LLVM_VERSION := $(LLVM_VERSION_MAJOR).0.0
|
||||
LOCAL_SHARED_LIBRARIES += libLLVM$(LLVM_VERSION_MAJOR)
|
||||
MESON_LLVM_VERSION := 12.0.0
|
||||
LOCAL_SHARED_LIBRARIES += libLLVM12
|
||||
endif
|
||||
|
||||
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 30; echo $$?), 0)
|
||||
@@ -163,9 +157,9 @@ endif
|
||||
endef
|
||||
|
||||
ifneq ($(strip $(BOARD_MESA3D_GALLIUM_DRIVERS)),)
|
||||
# Module 'libgallium_dri', produces '/vendor/lib{64}/libgallium_dri.so'
|
||||
# Module 'libgallium_dri', produces '/vendor/lib{64}/dri/libgallium_dri.so'
|
||||
# This module also trigger DRI symlinks creation process
|
||||
$(eval $(call mesa3d-lib,libgallium_dri,,MESA3D_GALLIUM_BIN))
|
||||
$(eval $(call mesa3d-lib,libgallium_dri,dri,MESA3D_GALLIUM_DRI_BIN))
|
||||
# Module 'libglapi', produces '/vendor/lib{64}/libglapi.so'
|
||||
$(eval $(call mesa3d-lib,libglapi,,MESA3D_LIBGLAPI_BIN))
|
||||
|
||||
|
@@ -63,8 +63,8 @@ MESON_OUT_DIR := $($(M_TARGET_PREFIX)TARGET_OUT_INTER
|
||||
MESON_GEN_DIR := $(MESON_OUT_DIR)_GEN
|
||||
MESON_GEN_FILES_TARGET := $(MESON_GEN_DIR)/.timestamp
|
||||
|
||||
MESA3D_GALLIUM_DIR := $(MESON_OUT_DIR)/install/usr/local/lib
|
||||
$(M_TARGET_PREFIX)MESA3D_GALLIUM_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libgallium_dri.so
|
||||
MESA3D_GALLIUM_DRI_DIR := $(MESON_OUT_DIR)/install/usr/local/lib/dri
|
||||
$(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libgallium_dri.so
|
||||
$(M_TARGET_PREFIX)MESA3D_LIBEGL_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libEGL.so
|
||||
$(M_TARGET_PREFIX)MESA3D_LIBGLESV1_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libGLESv1_CM.so
|
||||
$(M_TARGET_PREFIX)MESA3D_LIBGLESV2_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libGLESv2.so
|
||||
@@ -73,7 +73,6 @@ $(M_TARGET_PREFIX)MESA3D_LIBGBM_BIN := $(MESON_OUT_DIR)/install/usr/local/l
|
||||
|
||||
|
||||
MESA3D_GLES_BINS := \
|
||||
$($(M_TARGET_PREFIX)MESA3D_GALLIUM_BIN) \
|
||||
$($(M_TARGET_PREFIX)MESA3D_LIBEGL_BIN) \
|
||||
$($(M_TARGET_PREFIX)MESA3D_LIBGLESV1_BIN) \
|
||||
$($(M_TARGET_PREFIX)MESA3D_LIBGLESV2_BIN) \
|
||||
@@ -285,11 +284,16 @@ endif
|
||||
$(MESON_BUILD)
|
||||
touch $@
|
||||
|
||||
MESON_COPY_LIBGALLIUM := \
|
||||
cp `ls -1 $(MESA3D_GALLIUM_DRI_DIR)/* | head -1` $($(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN)
|
||||
|
||||
$(MESON_OUT_DIR)/install/.install.timestamp: MESON_COPY_LIBGALLIUM:=$(MESON_COPY_LIBGALLIUM)
|
||||
$(MESON_OUT_DIR)/install/.install.timestamp: MESON_BUILD:=$(MESON_BUILD)
|
||||
$(MESON_OUT_DIR)/install/.install.timestamp: $(MESON_OUT_DIR)/.build.timestamp
|
||||
rm -rf $(dir $@)
|
||||
mkdir -p $(dir $@)
|
||||
DESTDIR=$(call relative-to-absolute,$(dir $@)) $(MESON_BUILD) install
|
||||
$(if $(BOARD_MESA3D_GALLIUM_DRIVERS),$(MESON_COPY_LIBGALLIUM))
|
||||
touch $@
|
||||
|
||||
$($(M_TARGET_PREFIX)MESA3D_LIBGBM_BIN) $(MESA3D_GLES_BINS): $(MESON_OUT_DIR)/install/.install.timestamp
|
||||
@@ -304,3 +308,14 @@ $(MESON_OUT_DIR)/install/usr/local/lib/libvulkan_$(MESA_VK_LIB_SUFFIX_$1).so: $(
|
||||
endef
|
||||
|
||||
$(foreach driver,$(BOARD_MESA3D_VULKAN_DRIVERS), $(eval $(call vulkan_target,$(driver))))
|
||||
|
||||
$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.symlinks.timestamp: MESA3D_GALLIUM_DRI_DIR:=$(MESA3D_GALLIUM_DRI_DIR)
|
||||
$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.symlinks.timestamp: $(MESON_OUT_DIR)/install/.install.timestamp
|
||||
# Create Symlinks
|
||||
mkdir -p $(dir $@)
|
||||
ls -1 $(MESA3D_GALLIUM_DRI_DIR)/ | PATH=/usr/bin:$$PATH xargs -I{} ln -s -f libgallium_dri.so $(dir $@)/{}
|
||||
touch $@
|
||||
|
||||
$($(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN): $(TARGET_OUT_VENDOR)/$(MESA3D_LIB_DIR)/dri/.symlinks.timestamp
|
||||
echo "Build $@"
|
||||
touch $@
|
||||
|
@@ -21,7 +21,7 @@ from concurrent.futures import ThreadPoolExecutor
|
||||
from functools import partial
|
||||
from itertools import chain
|
||||
from subprocess import check_output, CalledProcessError
|
||||
from typing import Dict, TYPE_CHECKING, Iterable, Literal, Optional, Tuple
|
||||
from typing import TYPE_CHECKING, Iterable, Literal, Optional
|
||||
|
||||
import gitlab
|
||||
import gitlab.v4.objects
|
||||
@@ -53,119 +53,90 @@ STATUS_COLORS = {
|
||||
"success": Fore.GREEN,
|
||||
"failed": Fore.RED,
|
||||
"canceled": Fore.MAGENTA,
|
||||
"canceling": Fore.MAGENTA,
|
||||
"manual": "",
|
||||
"pending": "",
|
||||
"skipped": "",
|
||||
}
|
||||
|
||||
COMPLETED_STATUSES = {"success", "failed"}
|
||||
RUNNING_STATUSES = {"created", "pending", "running"}
|
||||
COMPLETED_STATUSES = ["success", "failed"]
|
||||
|
||||
|
||||
def print_job_status(
|
||||
job: gitlab.v4.objects.ProjectPipelineJob,
|
||||
new_status: bool = False,
|
||||
job_name_field_pad: int = 0,
|
||||
) -> None:
|
||||
def print_job_status(job, new_status=False) -> None:
|
||||
"""It prints a nice, colored job status with a link to the job."""
|
||||
if job.status in {"canceled", "canceling"}:
|
||||
if job.status == "canceled":
|
||||
return
|
||||
|
||||
if new_status and job.status == "created":
|
||||
return
|
||||
|
||||
job_name_field_pad = len(job.name) if job_name_field_pad < 1 else job_name_field_pad
|
||||
|
||||
duration = job_duration(job)
|
||||
if job.duration:
|
||||
duration = job.duration
|
||||
elif job.started_at:
|
||||
duration = time.perf_counter() - time.mktime(job.started_at.timetuple())
|
||||
|
||||
print(
|
||||
STATUS_COLORS[job.status]
|
||||
+ "🞋 target job " # U+1F78B Round target
|
||||
+ link2print(job.web_url, job.name, job_name_field_pad)
|
||||
+ (f"has new status: {job.status}" if new_status else f"{job.status}")
|
||||
+ "🞋 job "
|
||||
+ URL_START
|
||||
+ f"{job.web_url}\a{job.name}"
|
||||
+ URL_END
|
||||
+ (f" has new status: {job.status}" if new_status else f" :: {job.status}")
|
||||
+ (f" ({pretty_duration(duration)})" if job.started_at else "")
|
||||
+ Style.RESET_ALL
|
||||
)
|
||||
|
||||
|
||||
def job_duration(job: gitlab.v4.objects.ProjectPipelineJob) -> float:
|
||||
"""
|
||||
Given a job, report the time lapsed in execution.
|
||||
:param job: Pipeline job
|
||||
:return: Current time in execution
|
||||
"""
|
||||
if job.duration:
|
||||
return job.duration
|
||||
elif job.started_at:
|
||||
return time.perf_counter() - time.mktime(job.started_at.timetuple())
|
||||
return 0.0
|
||||
|
||||
|
||||
def pretty_wait(sec: int) -> None:
|
||||
"""shows progressbar in dots"""
|
||||
for val in range(sec, 0, -1):
|
||||
print(f"⏲ {val} seconds", end="\r") # U+23F2 Timer clock
|
||||
print(f"⏲ {val} seconds", end="\r")
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
def monitor_pipeline(
|
||||
project: gitlab.v4.objects.Project,
|
||||
pipeline: gitlab.v4.objects.ProjectPipeline,
|
||||
project,
|
||||
pipeline,
|
||||
target_jobs_regex: re.Pattern,
|
||||
dependencies: set[str],
|
||||
dependencies,
|
||||
force_manual: bool,
|
||||
stress: int,
|
||||
) -> tuple[Optional[int], Optional[int], Dict[str, Dict[int, Tuple[float, str, str]]]]:
|
||||
) -> tuple[Optional[int], Optional[int]]:
|
||||
"""Monitors pipeline and delegate canceling jobs"""
|
||||
statuses: dict[str, str] = defaultdict(str)
|
||||
target_statuses: dict[str, str] = defaultdict(str)
|
||||
stress_status_counter: dict[str, dict[str, int]] = defaultdict(lambda: defaultdict(int))
|
||||
execution_times = defaultdict(lambda: defaultdict(tuple))
|
||||
target_id: int = -1
|
||||
name_field_pad: int = len(max(dependencies, key=len))+2
|
||||
|
||||
# Pre-populate the stress status counter for already completed target jobs.
|
||||
if stress:
|
||||
# When stress test, it is necessary to collect this information before start.
|
||||
for job in pipeline.jobs.list(all=True, include_retried=True):
|
||||
if target_jobs_regex.fullmatch(job.name) and job.status in COMPLETED_STATUSES:
|
||||
stress_status_counter[job.name][job.status] += 1
|
||||
execution_times[job.name][job.id] = (job_duration(job), job.status, job.web_url)
|
||||
stress_status_counter = defaultdict(lambda: defaultdict(int))
|
||||
target_id = None
|
||||
|
||||
while True:
|
||||
deps_failed = []
|
||||
to_cancel = []
|
||||
for job in sorted(pipeline.jobs.list(all=True), key=lambda j: j.name):
|
||||
for job in pipeline.jobs.list(all=True, sort="desc"):
|
||||
# target jobs
|
||||
if target_jobs_regex.fullmatch(job.name):
|
||||
target_id = job.id
|
||||
target_status = job.status
|
||||
|
||||
if stress and target_status in COMPLETED_STATUSES:
|
||||
if stress and job.status in ["success", "failed"]:
|
||||
if (
|
||||
stress < 0
|
||||
or sum(stress_status_counter[job.name].values()) < stress
|
||||
):
|
||||
stress_status_counter[job.name][target_status] += 1
|
||||
execution_times[job.name][job.id] = (job_duration(job), target_status, job.web_url)
|
||||
job = enable_job(project, pipeline, job, "retry", force_manual, name_field_pad)
|
||||
job = enable_job(project, pipeline, job, "retry", force_manual)
|
||||
stress_status_counter[job.name][job.status] += 1
|
||||
else:
|
||||
execution_times[job.name][job.id] = (job_duration(job), target_status, job.web_url)
|
||||
job = enable_job(project, pipeline, job, "target", force_manual, name_field_pad)
|
||||
job = enable_job(project, pipeline, job, "target", force_manual)
|
||||
|
||||
print_job_status(job, target_status not in target_statuses[job.name], name_field_pad)
|
||||
target_statuses[job.name] = target_status
|
||||
print_job_status(job, job.status not in target_statuses[job.name])
|
||||
target_statuses[job.name] = job.status
|
||||
continue
|
||||
|
||||
# all other non-target jobs
|
||||
# all jobs
|
||||
if job.status != statuses[job.name]:
|
||||
print_job_status(job, True, name_field_pad)
|
||||
print_job_status(job, True)
|
||||
statuses[job.name] = job.status
|
||||
|
||||
# run dependencies and cancel the rest
|
||||
if job.name in dependencies:
|
||||
job = enable_job(project, pipeline, job, "dep", True, name_field_pad)
|
||||
job = enable_job(project, pipeline, job, "dep", True)
|
||||
if job.status == "failed":
|
||||
deps_failed.append(job.name)
|
||||
else:
|
||||
@@ -175,9 +146,9 @@ def monitor_pipeline(
|
||||
|
||||
if stress:
|
||||
enough = True
|
||||
for job_name, status in sorted(stress_status_counter.items()):
|
||||
for job_name, status in stress_status_counter.items():
|
||||
print(
|
||||
f"* {job_name:{name_field_pad}}succ: {status['success']}; "
|
||||
f"{job_name}\tsucc: {status['success']}; "
|
||||
f"fail: {status['failed']}; "
|
||||
f"total: {sum(status.values())} of {stress}",
|
||||
flush=False,
|
||||
@@ -191,20 +162,20 @@ def monitor_pipeline(
|
||||
|
||||
print("---------------------------------", flush=False)
|
||||
|
||||
if len(target_statuses) == 1 and RUNNING_STATUSES.intersection(
|
||||
if len(target_statuses) == 1 and {"running"}.intersection(
|
||||
target_statuses.values()
|
||||
):
|
||||
return target_id, None, execution_times
|
||||
return target_id, None
|
||||
|
||||
if (
|
||||
{"failed"}.intersection(target_statuses.values())
|
||||
and not RUNNING_STATUSES.intersection(target_statuses.values())
|
||||
and not set(["running", "pending"]).intersection(target_statuses.values())
|
||||
):
|
||||
return None, 1, execution_times
|
||||
return None, 1
|
||||
|
||||
if (
|
||||
{"skipped"}.intersection(target_statuses.values())
|
||||
and not RUNNING_STATUSES.intersection(target_statuses.values())
|
||||
and not {"running", "pending"}.intersection(target_statuses.values())
|
||||
):
|
||||
print(
|
||||
Fore.RED,
|
||||
@@ -212,20 +183,20 @@ def monitor_pipeline(
|
||||
deps_failed,
|
||||
Fore.RESET,
|
||||
)
|
||||
return None, 1, execution_times
|
||||
return None, 1
|
||||
|
||||
if {"success", "manual"}.issuperset(target_statuses.values()):
|
||||
return None, 0, execution_times
|
||||
return None, 0
|
||||
|
||||
pretty_wait(REFRESH_WAIT_JOBS)
|
||||
|
||||
|
||||
def get_pipeline_job(
|
||||
pipeline: gitlab.v4.objects.ProjectPipeline,
|
||||
job_id: int,
|
||||
id: int,
|
||||
) -> gitlab.v4.objects.ProjectPipelineJob:
|
||||
pipeline_jobs = pipeline.jobs.list(all=True)
|
||||
return [j for j in pipeline_jobs if j.id == job_id][0]
|
||||
return [j for j in pipeline_jobs if j.id == id][0]
|
||||
|
||||
|
||||
def enable_job(
|
||||
@@ -234,19 +205,18 @@ def enable_job(
|
||||
job: gitlab.v4.objects.ProjectPipelineJob,
|
||||
action_type: Literal["target", "dep", "retry"],
|
||||
force_manual: bool,
|
||||
job_name_field_pad: int = 0,
|
||||
) -> gitlab.v4.objects.ProjectPipelineJob:
|
||||
"""enable job"""
|
||||
if (
|
||||
(job.status in COMPLETED_STATUSES and action_type != "retry")
|
||||
(job.status in ["success", "failed"] and action_type != "retry")
|
||||
or (job.status == "manual" and not force_manual)
|
||||
or job.status in {"skipped"} | RUNNING_STATUSES
|
||||
or job.status in ["skipped", "running", "created", "pending"]
|
||||
):
|
||||
return job
|
||||
|
||||
pjob = project.jobs.get(job.id, lazy=True)
|
||||
|
||||
if job.status in {"success", "failed", "canceled", "canceling"}:
|
||||
if job.status in ["success", "failed", "canceled"]:
|
||||
new_job = pjob.retry()
|
||||
job = get_pipeline_job(pipeline, new_job["id"])
|
||||
else:
|
||||
@@ -254,34 +224,32 @@ def enable_job(
|
||||
job = get_pipeline_job(pipeline, pjob.id)
|
||||
|
||||
if action_type == "target":
|
||||
jtype = "🞋 target" # U+1F78B Round target
|
||||
jtype = "🞋 "
|
||||
elif action_type == "retry":
|
||||
jtype = "↻ retrying" # U+21BB Clockwise open circle arrow
|
||||
jtype = "↻"
|
||||
else:
|
||||
jtype = "↪ dependency" # U+21AA Left Arrow Curving Right
|
||||
jtype = "(dependency)"
|
||||
|
||||
job_name_field_pad = len(job.name) if job_name_field_pad < 1 else job_name_field_pad
|
||||
print(Fore.MAGENTA + f"{jtype} job {job.name:{job_name_field_pad}}manually enabled" + Style.RESET_ALL)
|
||||
print(Fore.MAGENTA + f"{jtype} job {job.name} manually enabled" + Style.RESET_ALL)
|
||||
|
||||
return job
|
||||
|
||||
|
||||
def cancel_job(
|
||||
project: gitlab.v4.objects.Project,
|
||||
job: gitlab.v4.objects.ProjectPipelineJob
|
||||
) -> None:
|
||||
def cancel_job(project, job) -> None:
|
||||
"""Cancel GitLab job"""
|
||||
if job.status not in RUNNING_STATUSES:
|
||||
if job.status in [
|
||||
"canceled",
|
||||
"success",
|
||||
"failed",
|
||||
"skipped",
|
||||
]:
|
||||
return
|
||||
pjob = project.jobs.get(job.id, lazy=True)
|
||||
pjob.cancel()
|
||||
print(f"🗙 {job.name}", end=" ") # U+1F5D9 Cancellation X
|
||||
print(f"♲ {job.name}", end=" ")
|
||||
|
||||
|
||||
def cancel_jobs(
|
||||
project: gitlab.v4.objects.Project,
|
||||
to_cancel: list
|
||||
) -> None:
|
||||
def cancel_jobs(project, to_cancel) -> None:
|
||||
"""Cancel unwanted GitLab jobs"""
|
||||
if not to_cancel:
|
||||
return
|
||||
@@ -292,10 +260,7 @@ def cancel_jobs(
|
||||
print()
|
||||
|
||||
|
||||
def print_log(
|
||||
project: gitlab.v4.objects.Project,
|
||||
job_id: int
|
||||
) -> None:
|
||||
def print_log(project, job_id) -> None:
|
||||
"""Print job log into output"""
|
||||
printed_lines = 0
|
||||
while True:
|
||||
@@ -313,7 +278,7 @@ def print_log(
|
||||
pretty_wait(REFRESH_WAIT_LOG)
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
def parse_args() -> None:
|
||||
"""Parse args"""
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Tool to trigger a subset of container jobs "
|
||||
@@ -344,9 +309,7 @@ def parse_args() -> argparse.Namespace:
|
||||
"--stress",
|
||||
default=0,
|
||||
type=int,
|
||||
help="Stresstest job(s). Specify the number of times to rerun the selected jobs, "
|
||||
"or use -1 for indefinite. Defaults to 0. If jobs have already been executed, "
|
||||
"this will ensure the total run count respects the specified number.",
|
||||
help="Stresstest job(s). Number or repetitions or -1 for infinite.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--project",
|
||||
@@ -381,14 +344,12 @@ def parse_args() -> argparse.Namespace:
|
||||
|
||||
|
||||
def print_detected_jobs(
|
||||
target_dep_dag: "Dag",
|
||||
dependency_jobs: Iterable[str],
|
||||
target_jobs: Iterable[str],
|
||||
target_dep_dag: "Dag", dependency_jobs: Iterable[str], target_jobs: Iterable[str]
|
||||
) -> None:
|
||||
def print_job_set(color: str, kind: str, job_set: Iterable[str]):
|
||||
print(
|
||||
color + f"Running {len(job_set)} {kind} jobs: ",
|
||||
"\n\t",
|
||||
"\n",
|
||||
", ".join(sorted(job_set)),
|
||||
Fore.RESET,
|
||||
"\n",
|
||||
@@ -400,12 +361,10 @@ def print_detected_jobs(
|
||||
print_job_set(Fore.BLUE, "target", target_jobs)
|
||||
|
||||
|
||||
def find_dependencies(
|
||||
token: str | None,
|
||||
target_jobs_regex: re.Pattern,
|
||||
project_path: str,
|
||||
iid: int
|
||||
) -> set[str]:
|
||||
def find_dependencies(token: str | None,
|
||||
target_jobs_regex: re.Pattern,
|
||||
project_path: str,
|
||||
iid: int) -> set[str]:
|
||||
"""
|
||||
Find the dependencies of the target jobs in a GitLab pipeline.
|
||||
|
||||
@@ -442,45 +401,7 @@ def find_dependencies(
|
||||
return target_jobs.union(dependency_jobs)
|
||||
|
||||
|
||||
def print_monitor_summary(
|
||||
execution_collection: Dict[str, Dict[int, Tuple[float, str, str]]],
|
||||
t_start: float,
|
||||
) -> None:
|
||||
"""Summary of the test execution"""
|
||||
t_end = time.perf_counter()
|
||||
spend_minutes = (t_end - t_start) / 60
|
||||
print(f"⏲ Duration of script execution: {spend_minutes:0.1f} minutes") # U+23F2 Timer clock
|
||||
if len(execution_collection) == 0:
|
||||
return
|
||||
print(f"⏲ Jobs execution times:") # U+23F2 Timer clock
|
||||
job_names = list(execution_collection.keys())
|
||||
job_names.sort()
|
||||
name_field_pad = len(max(job_names, key=len)) + 2
|
||||
for name in job_names:
|
||||
job_executions = execution_collection[name]
|
||||
job_times = ', '.join([__job_duration_record(job_execution)
|
||||
for job_execution in sorted(job_executions.items())])
|
||||
print(f"* {name:{name_field_pad}}: ({len(job_executions)}) {job_times}")
|
||||
|
||||
|
||||
def __job_duration_record(dict_item: tuple) -> str:
|
||||
"""
|
||||
Format each pair of job and its duration.
|
||||
:param job_execution: item of execution_collection[name][idn]: Dict[int, Tuple[float, str, str]]
|
||||
"""
|
||||
job_id = f"{dict_item[0]}" # dictionary key
|
||||
job_duration, job_status, job_url = dict_item[1] # dictionary value, the tuple
|
||||
return (f"{STATUS_COLORS[job_status]}"
|
||||
f"{link2print(job_url, job_id)}: {pretty_duration(job_duration):>8}"
|
||||
f"{Style.RESET_ALL}")
|
||||
|
||||
|
||||
def link2print(url: str, text: str, text_pad: int = 0) -> str:
|
||||
text_pad = len(text) if text_pad < 1 else text_pad
|
||||
return f"{URL_START}{url}\a{text:{text_pad}}{URL_END}"
|
||||
|
||||
|
||||
def main() -> None:
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
t_start = time.perf_counter()
|
||||
|
||||
@@ -542,7 +463,8 @@ def main() -> None:
|
||||
target = '|'.join(args.target)
|
||||
target = target.strip()
|
||||
|
||||
print("🞋 target job: " + Fore.BLUE + target + Style.RESET_ALL) # U+1F78B Round target
|
||||
deps = set()
|
||||
print("🞋 job: " + Fore.BLUE + target + Style.RESET_ALL)
|
||||
|
||||
# Implicitly include `parallel:` jobs
|
||||
target = f'({target})' + r'( \d+/\d+)?'
|
||||
@@ -555,19 +477,17 @@ def main() -> None:
|
||||
iid=pipe.iid,
|
||||
project_path=cur_project
|
||||
)
|
||||
target_job_id, ret, exec_t = monitor_pipeline(
|
||||
target_job_id, ret = monitor_pipeline(
|
||||
cur_project, pipe, target_jobs_regex, deps, args.force_manual, args.stress
|
||||
)
|
||||
|
||||
if target_job_id:
|
||||
print_log(cur_project, target_job_id)
|
||||
|
||||
print_monitor_summary(exec_t, t_start)
|
||||
t_end = time.perf_counter()
|
||||
spend_minutes = (t_end - t_start) / 60
|
||||
print(f"⏲ Duration of script execution: {spend_minutes:0.1f} minutes")
|
||||
|
||||
sys.exit(ret)
|
||||
except KeyboardInterrupt:
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
@@ -37,25 +37,21 @@ def pretty_duration(seconds):
|
||||
hours, rem = divmod(seconds, 3600)
|
||||
minutes, seconds = divmod(rem, 60)
|
||||
if hours:
|
||||
return f"{hours:0.0f}h{minutes:02.0f}m{seconds:02.0f}s"
|
||||
return f"{hours:0.0f}h{minutes:0.0f}m{seconds:0.0f}s"
|
||||
if minutes:
|
||||
return f"{minutes:0.0f}m{seconds:02.0f}s"
|
||||
return f"{minutes:0.0f}m{seconds:0.0f}s"
|
||||
return f"{seconds:0.0f}s"
|
||||
|
||||
|
||||
def get_gitlab_pipeline_from_url(gl, pipeline_url) -> tuple:
|
||||
"""
|
||||
Extract the project and pipeline object from the url string
|
||||
:param gl: Gitlab object
|
||||
:param pipeline_url: string with a url to a pipeline
|
||||
:return: ProjectPipeline, Project objects
|
||||
"""
|
||||
pattern = rf"^{re.escape(GITLAB_URL)}/(.*)/-/pipelines/([0-9]+)$"
|
||||
match = re.match(pattern, pipeline_url)
|
||||
if not match:
|
||||
raise AssertionError(f"url {pipeline_url} doesn't follow the pattern {pattern}")
|
||||
namespace_with_project, pipeline_id = match.groups()
|
||||
cur_project = gl.projects.get(namespace_with_project)
|
||||
def get_gitlab_pipeline_from_url(gl, pipeline_url):
|
||||
assert pipeline_url.startswith(GITLAB_URL)
|
||||
url_path = pipeline_url[len(GITLAB_URL) :]
|
||||
url_path_components = url_path.split("/")
|
||||
project_name = "/".join(url_path_components[1:3])
|
||||
assert url_path_components[3] == "-"
|
||||
assert url_path_components[4] == "pipelines"
|
||||
pipeline_id = int(url_path_components[5])
|
||||
cur_project = gl.projects.get(project_name)
|
||||
pipe = cur_project.pipelines.get(pipeline_id)
|
||||
return pipe, cur_project
|
||||
|
||||
|
@@ -331,8 +331,10 @@ def filter_dag(dag: Dag, regex: Pattern) -> Dag:
|
||||
|
||||
|
||||
def print_dag(dag: Dag) -> None:
|
||||
for job, data in sorted(dag.items()):
|
||||
print(f"{job}:\n\t{' '.join(data['needs'])}\n")
|
||||
for job, data in dag.items():
|
||||
print(f"{job}:")
|
||||
print(f"\t{' '.join(data['needs'])}")
|
||||
print()
|
||||
|
||||
|
||||
def fetch_merged_yaml(gl_gql: GitlabGQL, params) -> dict[str, Any]:
|
||||
|
@@ -1,175 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright © 2020 - 2024 Collabora Ltd.
|
||||
# Authors:
|
||||
# David Heidelberg <david.heidelberg@collabora.com>
|
||||
# Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""
|
||||
Compare the two latest scheduled pipelines and provide information
|
||||
about the jobs you're interested in.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import csv
|
||||
import re
|
||||
import requests
|
||||
import io
|
||||
from tabulate import tabulate
|
||||
|
||||
import gitlab
|
||||
from colorama import Fore, Style
|
||||
from gitlab_common import read_token
|
||||
|
||||
|
||||
MARGE_BOT_USER_ID = 9716
|
||||
|
||||
def print_failures_csv(id):
|
||||
url = 'https://gitlab.freedesktop.org/mesa/mesa/-/jobs/' + str(id) + '/artifacts/raw/results/failures.csv'
|
||||
missing: int = 0
|
||||
MAX_MISS: int = 20
|
||||
try:
|
||||
response = requests.get(url)
|
||||
response.raise_for_status()
|
||||
csv_content = io.StringIO(response.text)
|
||||
csv_reader = csv.reader(csv_content)
|
||||
data = list(csv_reader)
|
||||
|
||||
for line in data[:]:
|
||||
if line[1] == "UnexpectedImprovement(Pass)":
|
||||
line[1] = Fore.GREEN + line[1] + Style.RESET_ALL
|
||||
elif line[1] == "UnexpectedImprovement(Fail)":
|
||||
line[1] = Fore.YELLOW + line[1] + Style.RESET_ALL
|
||||
elif line[1] == "Crash" or line[1] == "Fail":
|
||||
line[1] = Fore.RED + line[1] + Style.RESET_ALL
|
||||
elif line[1] == "Missing":
|
||||
if missing > MAX_MISS:
|
||||
data.remove(line)
|
||||
continue
|
||||
missing += 1
|
||||
line[1] = Fore.YELLOW + line[1] + Style.RESET_ALL
|
||||
elif line[1] == "Fail":
|
||||
line[1] = Fore.RED + line[1] + Style.RESET_ALL
|
||||
else:
|
||||
line[1] = Fore.WHITE + line[1] + Style.RESET_ALL
|
||||
|
||||
if missing > MAX_MISS:
|
||||
data.append([Fore.RED + f"... more than {MAX_MISS} missing tests, something crashed?", "Missing" + Style.RESET_ALL])
|
||||
headers = ["Test ", "Result"]
|
||||
print(tabulate(data, headers, tablefmt="plain"))
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
def job_failed_before(old_jobs, job):
|
||||
for old_job in old_jobs:
|
||||
if job.name == old_job.name:
|
||||
return old_job
|
||||
|
||||
|
||||
def parse_args() -> None:
|
||||
"""Parse args"""
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Tool to show merge requests assigned to the marge-bot",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--target",
|
||||
metavar="target-job",
|
||||
help="Target job regex. For multiple targets, pass multiple values, "
|
||||
"eg. `--target foo bar`.",
|
||||
required=False,
|
||||
nargs=argparse.ONE_OR_MORE,
|
||||
)
|
||||
parser.add_argument(
|
||||
"--token",
|
||||
metavar="token",
|
||||
help="force GitLab token, otherwise it's read from ~/.config/gitlab-token",
|
||||
)
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
args = parse_args()
|
||||
token = read_token(args.token)
|
||||
gl = gitlab.Gitlab(url="https://gitlab.freedesktop.org", private_token=token)
|
||||
|
||||
project = gl.projects.get("mesa/mesa")
|
||||
|
||||
print(
|
||||
"\u001b]8;;https://gitlab.freedesktop.org/mesa/mesa/-/pipelines?page=1&scope=all&source=schedule\u001b\\Scheduled pipelines overview\u001b]8;;\u001b\\"
|
||||
)
|
||||
pipelines = project.pipelines.list(
|
||||
source="schedule", ordered_by="created_at", sort="desc", page=1, per_page=2
|
||||
)
|
||||
print(
|
||||
f"Old pipeline: {pipelines[1].created_at}\t\u001b]8;;{pipelines[1].web_url}\u001b\\{pipelines[1].status}\u001b]8;;\u001b\\\t{pipelines[1].sha}"
|
||||
)
|
||||
print(
|
||||
f"New pipeline: {pipelines[0].created_at}\t\u001b]8;;{pipelines[0].web_url}\u001b\\{pipelines[0].status}\u001b]8;;\u001b\\\t{pipelines[0].sha}"
|
||||
)
|
||||
print(
|
||||
f"\nWebUI visual compare: https://gitlab.freedesktop.org/mesa/mesa/-/compare/{pipelines[1].sha}...{pipelines[0].sha}\n"
|
||||
)
|
||||
|
||||
# regex part
|
||||
if args.target:
|
||||
target = "|".join(args.target)
|
||||
target = target.strip()
|
||||
print("🞋 jobs: " + Fore.BLUE + target + Style.RESET_ALL)
|
||||
|
||||
target = f"({target})" + r"( \d+/\d+)?"
|
||||
else:
|
||||
target = ".*"
|
||||
|
||||
target_jobs_regex: re.Pattern = re.compile(target)
|
||||
|
||||
old_failed_jobs = []
|
||||
for job in pipelines[1].jobs.list(all=True):
|
||||
if (
|
||||
job.status != "failed"
|
||||
or target_jobs_regex
|
||||
and not target_jobs_regex.fullmatch(job.name)
|
||||
):
|
||||
continue
|
||||
old_failed_jobs.append(job)
|
||||
|
||||
job_failed = False
|
||||
for job in pipelines[0].jobs.list(all=True):
|
||||
if (
|
||||
job.status != "failed"
|
||||
or target_jobs_regex
|
||||
and not target_jobs_regex.fullmatch(job.name)
|
||||
):
|
||||
continue
|
||||
|
||||
job_failed = True
|
||||
|
||||
previously_failed_job = job_failed_before(old_failed_jobs, job)
|
||||
if previously_failed_job:
|
||||
print(
|
||||
Fore.YELLOW
|
||||
+ f":: \u001b]8;;{job.web_url}\u001b\\{job.name}\u001b]8;;\u001b\\"
|
||||
+ Fore.MAGENTA
|
||||
+ f" \u001b]8;;{previously_failed_job.web_url}\u001b\\(previous run)\u001b]8;;\u001b\\"
|
||||
+ Style.RESET_ALL
|
||||
)
|
||||
else:
|
||||
print(
|
||||
Fore.RED
|
||||
+ f":: \u001b]8;;{job.web_url}\u001b\\{job.name}\u001b]8;;\u001b\\"
|
||||
+ Style.RESET_ALL
|
||||
)
|
||||
print_failures_csv(job.id)
|
||||
|
||||
if not job_failed:
|
||||
exit(0)
|
||||
|
||||
print("Commits between nightly pipelines:")
|
||||
commit = project.commits.get(pipelines[0].sha)
|
||||
while True:
|
||||
print(
|
||||
f"{commit.id} \u001b]8;;{commit.web_url}\u001b\\{commit.title}\u001b]8;;\u001b\\"
|
||||
)
|
||||
if commit.id == pipelines[1].sha:
|
||||
break
|
||||
commit = project.commits.get(commit.parent_ids[0])
|
@@ -1,11 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eu
|
||||
|
||||
this_dir=$(dirname -- "$(readlink -f -- "${BASH_SOURCE[0]}")")
|
||||
readonly this_dir
|
||||
|
||||
exec \
|
||||
"$this_dir/../python-venv.sh" \
|
||||
"$this_dir/requirements.txt" \
|
||||
"$this_dir/nightly_compare.py" "$@"
|
||||
|
@@ -1,12 +1,11 @@
|
||||
colorama==0.4.*
|
||||
colorama==0.4.5
|
||||
filecache==0.81
|
||||
gql==3.*
|
||||
kaleido==0.2.*
|
||||
python-dateutil==2.*
|
||||
pandas==2.*
|
||||
plotly==5.*
|
||||
python-gitlab==3.*
|
||||
PyYAML==6.*
|
||||
ruamel.yaml.clib==0.2.*
|
||||
ruamel.yaml==0.17.*
|
||||
tabulate==0.9.*
|
||||
gql==3.4.0
|
||||
kaleido==0.2.1
|
||||
python-dateutil==2.8.2
|
||||
pandas==2.1.1
|
||||
plotly==5.17.0
|
||||
python-gitlab==3.5.0
|
||||
PyYAML==6.0.1
|
||||
ruamel.yaml.clib==0.2.8
|
||||
ruamel.yaml==0.17.21
|
||||
|
@@ -65,8 +65,8 @@ TEMPLATE = Template(textwrap.dedent("""\
|
||||
the apiVersion property of the VkPhysicalDeviceProperties struct
|
||||
depends on the particular driver being used.
|
||||
|
||||
SHA checksums
|
||||
-------------
|
||||
SHA256 checksum
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
|
@@ -26,32 +26,23 @@ import argparse
|
||||
import os
|
||||
|
||||
|
||||
def resolve_libdir(libdir):
|
||||
if os.path.isabs(libdir):
|
||||
destdir = os.environ.get('DESTDIR')
|
||||
if destdir:
|
||||
return os.path.join(destdir, libdir[1:])
|
||||
else:
|
||||
return libdir
|
||||
return os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], libdir)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('megadriver')
|
||||
parser.add_argument('libdir')
|
||||
parser.add_argument('drivers', nargs='+')
|
||||
parser.add_argument('--megadriver_libdir')
|
||||
args = parser.parse_args()
|
||||
|
||||
to = resolve_libdir(args.libdir)
|
||||
if args.megadriver_libdir:
|
||||
md_to = resolve_libdir(args.megadriver_libdir)
|
||||
if os.path.isabs(args.libdir):
|
||||
destdir = os.environ.get('DESTDIR')
|
||||
if destdir:
|
||||
to = os.path.join(destdir, args.libdir[1:])
|
||||
else:
|
||||
to = args.libdir
|
||||
else:
|
||||
md_to = to
|
||||
to = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.libdir)
|
||||
|
||||
basename = os.path.basename(args.megadriver)
|
||||
master = os.path.join(to, basename)
|
||||
master = os.path.join(to, os.path.basename(args.megadriver))
|
||||
|
||||
if not os.path.exists(to):
|
||||
if os.path.lexists(to):
|
||||
@@ -63,11 +54,8 @@ def main():
|
||||
|
||||
if os.path.lexists(abs_driver):
|
||||
os.unlink(abs_driver)
|
||||
|
||||
symlink = os.path.relpath(os.path.join(md_to, basename), start=to)
|
||||
|
||||
print(f'Installing symlink pointing to {symlink} to {abs_driver}')
|
||||
os.symlink(symlink, abs_driver)
|
||||
print('installing {} to {}'.format(args.megadriver, abs_driver))
|
||||
os.link(master, abs_driver)
|
||||
|
||||
try:
|
||||
ret = os.getcwd()
|
||||
@@ -82,7 +70,8 @@ def main():
|
||||
finally:
|
||||
os.chdir(ret)
|
||||
|
||||
# Remove meson-created .so symlinks
|
||||
# Remove meson-created master .so and symlinks
|
||||
os.unlink(master)
|
||||
name, ext = os.path.splitext(master)
|
||||
while ext != '.so':
|
||||
if os.path.lexists(name):
|
||||
|
@@ -13,13 +13,9 @@ def error(msg: str) -> None:
|
||||
|
||||
|
||||
class Source:
|
||||
def __init__(self, filename: str, url: typing.Optional[str],
|
||||
template: typing.Optional[str] = None, remove:
|
||||
typing.Optional[str] = None):
|
||||
def __init__(self, filename: str, url: typing.Optional[str]):
|
||||
self.file = pathlib.Path(filename)
|
||||
self.url = url
|
||||
self.template = template
|
||||
self.remove = remove
|
||||
|
||||
def sync(self) -> None:
|
||||
if self.url is None:
|
||||
@@ -39,37 +35,12 @@ class Source:
|
||||
else:
|
||||
content = req.content
|
||||
|
||||
content = str(content, encoding='utf-8')
|
||||
if self.remove is not None:
|
||||
content = content.replace(self.remove, '')
|
||||
if self.template is not None:
|
||||
content = self.template % content
|
||||
|
||||
with open(self.file, 'w') as f:
|
||||
with open(self.file, 'wb') as f:
|
||||
f.write(content)
|
||||
|
||||
print('Done')
|
||||
|
||||
|
||||
VK_ANDROID_NATIVE_BUFFER_TEMPLATE = """\
|
||||
/* MESA: A hack to avoid #ifdefs in driver code. */
|
||||
#ifdef __ANDROID__
|
||||
|
||||
#include <cutils/native_handle.h>
|
||||
#if ANDROID_API_LEVEL < 28
|
||||
/* buffer_handle_t was defined in the deprecated system/window.h */
|
||||
typedef const native_handle_t *buffer_handle_t;
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
typedef void *buffer_handle_t;
|
||||
|
||||
#endif
|
||||
|
||||
%s\
|
||||
"""
|
||||
|
||||
# a URL of `None` means there is no upstream, because *we* are the upstream
|
||||
SOURCES = [
|
||||
{
|
||||
@@ -205,8 +176,7 @@ SOURCES = [
|
||||
Source('include/vulkan/vulkan_xcb.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xcb.h'),
|
||||
Source('include/vulkan/vulkan_xlib.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xlib.h'),
|
||||
Source('include/vulkan/vulkan_xlib_xrandr.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xlib_xrandr.h'),
|
||||
Source('include/vulkan/vk_android_native_buffer.h', 'https://android.googlesource.com/platform/frameworks/native/+/master/vulkan/include/vulkan/vk_android_native_buffer.h?format=TEXT',
|
||||
template=VK_ANDROID_NATIVE_BUFFER_TEMPLATE, remove='#include <cutils/native_handle.h>\n'),
|
||||
Source('include/vulkan/vk_android_native_buffer.h', 'https://android.googlesource.com/platform/frameworks/native/+/master/vulkan/include/vulkan/vk_android_native_buffer.h?format=TEXT'),
|
||||
Source('include/vk_video/vulkan_video_codec_av1std.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_av1std.h'),
|
||||
Source('include/vk_video/vulkan_video_codec_av1std_decode.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_av1std_decode.h'),
|
||||
Source('include/vk_video/vulkan_video_codec_h264std.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_h264std.h'),
|
||||
|
@@ -1,5 +1,22 @@
|
||||
# Copyright © 2017 Eric Engestrom
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# 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 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.
|
||||
|
||||
git_sha1_gen_py = files('git_sha1_gen.py')
|
||||
gen_vs_module_defs_py = files('gen_vs_module_defs.py')
|
||||
|
@@ -1,31 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import base64
|
||||
import pathlib
|
||||
import requests
|
||||
import subprocess
|
||||
|
||||
def error(msg: str) -> None:
|
||||
print('\033[31m' + msg + '\033[0m')
|
||||
|
||||
if __name__ == '__main__':
|
||||
git_toplevel = subprocess.check_output(['git', 'rev-parse', '--show-toplevel'],
|
||||
stderr=subprocess.DEVNULL).decode("ascii").strip()
|
||||
if not pathlib.Path(git_toplevel).resolve() == pathlib.Path('.').resolve():
|
||||
error('Please run this script from the root folder ({})'.format(git_toplevel))
|
||||
exit(1)
|
||||
|
||||
file = 'include/renderdoc_app.h'
|
||||
url = 'https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h'
|
||||
|
||||
print('Syncing {}...'.format(file), end=' ', flush=True)
|
||||
req = requests.get(url)
|
||||
|
||||
if not req.ok:
|
||||
error('Failed to retrieve file: {} {}'.format(req.status_code, req.reason))
|
||||
exit(1)
|
||||
|
||||
with open(file, 'wb') as f:
|
||||
f.write(req.content)
|
||||
|
||||
print('Done')
|
@@ -96,7 +96,7 @@ class BootstrapHTML5TranslatorMixin:
|
||||
self.body.append(tag)
|
||||
|
||||
def setup_translators(app):
|
||||
if app.builder.format != "html":
|
||||
if app.builder.default_translator_class is None:
|
||||
return
|
||||
|
||||
if not app.registry.translators.items():
|
||||
@@ -111,6 +111,10 @@ def setup_translators(app):
|
||||
app.set_translator(app.builder.name, translator, override=True)
|
||||
else:
|
||||
for name, klass in app.registry.translators.items():
|
||||
if app.builder.format != "html":
|
||||
# Skip translators that are not HTML
|
||||
continue
|
||||
|
||||
translator = types.new_class(
|
||||
"BootstrapHTML5Translator",
|
||||
(
|
||||
|
@@ -1,34 +0,0 @@
|
||||
# Copyright © 2021 Collabora Ltd
|
||||
#
|
||||
# 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, sub license, 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 NON-INFRINGEMENT.
|
||||
# IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS 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.
|
||||
|
||||
def create_depfile(app, env):
|
||||
if not app.config.depfile:
|
||||
return
|
||||
|
||||
with open(app.config.depfile, 'w') as f:
|
||||
for doc in env.found_docs:
|
||||
path = env.doc2path(doc)
|
||||
f.write('{0}: {1}\n'.format(app.outdir, path))
|
||||
|
||||
def setup(app):
|
||||
app.add_config_value('depfile', None, 'env')
|
||||
app.connect('env-updated', create_depfile)
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user