Compare commits
11 Commits
mesa-24.1.
...
explicit-s
Author | SHA1 | Date | |
---|---|---|---|
|
aa5bc3e41f | ||
|
e4e3436d45 | ||
|
becb5d5161 | ||
|
06c2af994b | ||
|
d9cbc79941 | ||
|
e209b02b97 | ||
|
8a098f591b | ||
|
754f52e1e1 | ||
|
00dba3992c | ||
|
9c8f205131 | ||
|
f17f43b149 |
@@ -33,7 +33,7 @@ workflow:
|
||||
# merge pipeline
|
||||
- if: &is-merge-attempt $GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
variables:
|
||||
KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${KERNEL_TAG}
|
||||
KERNEL_IMAGE_BASE: https://${S3_HOST}/mesa-lava/${KERNEL_REPO}/${KERNEL_TAG}
|
||||
MESA_CI_PERFORMANCE_ENABLED: 1
|
||||
VALVE_INFRA_VANGOGH_JOB_PRIORITY: "" # Empty tags are ignored by gitlab
|
||||
# post-merge pipeline
|
||||
@@ -41,24 +41,24 @@ workflow:
|
||||
# nightly pipeline
|
||||
- if: &is-scheduled-pipeline $CI_PIPELINE_SOURCE == "schedule"
|
||||
variables:
|
||||
KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${KERNEL_TAG}
|
||||
KERNEL_IMAGE_BASE: https://${S3_HOST}/mesa-lava/${KERNEL_REPO}/${KERNEL_TAG}
|
||||
JOB_PRIORITY: 50
|
||||
VALVE_INFRA_VANGOGH_JOB_PRIORITY: priority:low
|
||||
# pipeline for direct pushes that bypassed the CI
|
||||
- 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}
|
||||
KERNEL_IMAGE_BASE: https://${S3_HOST}/mesa-lava/${KERNEL_REPO}/${KERNEL_TAG}
|
||||
JOB_PRIORITY: 40
|
||||
VALVE_INFRA_VANGOGH_JOB_PRIORITY: priority:low
|
||||
# pre-merge or fork pipeline
|
||||
- if: $FORCE_KERNEL_TAG != null
|
||||
variables:
|
||||
KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${FORCE_KERNEL_TAG}
|
||||
KERNEL_IMAGE_BASE: https://${S3_HOST}/mesa-lava/${KERNEL_REPO}/${FORCE_KERNEL_TAG}
|
||||
JOB_PRIORITY: 50
|
||||
VALVE_INFRA_VANGOGH_JOB_PRIORITY: priority:low
|
||||
- if: $FORCE_KERNEL_TAG == null
|
||||
variables:
|
||||
KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${KERNEL_TAG}
|
||||
KERNEL_IMAGE_BASE: https://${S3_HOST}/mesa-lava/${KERNEL_REPO}/${KERNEL_TAG}
|
||||
JOB_PRIORITY: 50
|
||||
VALVE_INFRA_VANGOGH_JOB_PRIORITY: priority:low
|
||||
|
||||
@@ -72,24 +72,14 @@ variables:
|
||||
bash download-git-cache.sh
|
||||
rm download-git-cache.sh
|
||||
set +o xtrace
|
||||
S3_JWT_FILE: /s3_jwt
|
||||
CI_JOB_JWT_FILE: /minio_jwt
|
||||
S3_HOST: s3.freedesktop.org
|
||||
# This bucket is used to fetch the kernel image
|
||||
S3_KERNEL_BUCKET: mesa-rootfs
|
||||
# Bucket for git cache
|
||||
S3_GITCACHE_BUCKET: git-cache
|
||||
# Bucket for the pipeline artifacts pushed to S3
|
||||
S3_ARTIFACTS_BUCKET: artifacts
|
||||
# Buckets for traces
|
||||
S3_TRACIE_RESULTS_BUCKET: mesa-tracie-results
|
||||
S3_TRACIE_PUBLIC_BUCKET: mesa-tracie-public
|
||||
S3_TRACIE_PRIVATE_BUCKET: mesa-tracie-private
|
||||
# per-pipeline artifact storage on MinIO
|
||||
PIPELINE_ARTIFACTS_BASE: ${S3_HOST}/${S3_ARTIFACTS_BUCKET}/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}
|
||||
PIPELINE_ARTIFACTS_BASE: ${S3_HOST}/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}
|
||||
# per-job artifact storage on MinIO
|
||||
JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID}
|
||||
# reference images stored for traces
|
||||
PIGLIT_REPLAY_REFERENCE_IMAGES_BASE: "${S3_HOST}/${S3_TRACIE_RESULTS_BUCKET}/$FDO_UPSTREAM_REPO"
|
||||
PIGLIT_REPLAY_REFERENCE_IMAGES_BASE: "${S3_HOST}/mesa-tracie-results/$FDO_UPSTREAM_REPO"
|
||||
# For individual CI farm status see .ci-farms folder
|
||||
# Disable farm with `git mv .ci-farms{,-disabled}/$farm_name`
|
||||
# Re-enable farm with `git mv .ci-farms{-disabled,}/$farm_name`
|
||||
@@ -97,22 +87,15 @@ variables:
|
||||
ARTIFACTS_BASE_URL: https://${CI_PROJECT_ROOT_NAMESPACE}.${CI_PAGES_DOMAIN}/-/${CI_PROJECT_NAME}/-/jobs/${CI_JOB_ID}/artifacts
|
||||
# Python scripts for structured logger
|
||||
PYTHONPATH: "$PYTHONPATH:$CI_PROJECT_DIR/install"
|
||||
# Drop once deqp-runner is upgraded to > 0.18.0
|
||||
MESA_VK_ABORT_ON_DEVICE_LOSS: 1
|
||||
# Avoid the wall of "Unsupported SPIR-V capability" warnings in CI job log, hiding away useful output
|
||||
MESA_SPIRV_LOG_LEVEL: error
|
||||
|
||||
default:
|
||||
id_tokens:
|
||||
S3_JWT:
|
||||
aud: https://s3.freedesktop.org
|
||||
before_script:
|
||||
- >
|
||||
export SCRIPTS_DIR=$(mktemp -d) &&
|
||||
curl -L -s --retry 4 -f --retry-all-errors --retry-delay 60 -O --output-dir "${SCRIPTS_DIR}" "${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/setup-test-env.sh" &&
|
||||
. ${SCRIPTS_DIR}/setup-test-env.sh &&
|
||||
echo -n "${S3_JWT}" > "${S3_JWT_FILE}" &&
|
||||
unset CI_JOB_JWT S3_JWT # Unsetting vulnerable env variables
|
||||
echo -n "${CI_JOB_JWT}" > "${CI_JOB_JWT_FILE}" &&
|
||||
unset CI_JOB_JWT # Unsetting vulnerable env variables
|
||||
|
||||
after_script:
|
||||
# Work around https://gitlab.com/gitlab-org/gitlab/-/issues/20338
|
||||
@@ -121,9 +104,9 @@ default:
|
||||
- >
|
||||
set +x
|
||||
|
||||
test -e "${S3_JWT_FILE}" &&
|
||||
export S3_JWT="$(<${S3_JWT_FILE})" &&
|
||||
rm "${S3_JWT_FILE}"
|
||||
test -e "${CI_JOB_JWT_FILE}" &&
|
||||
export CI_JOB_JWT="$(<${CI_JOB_JWT_FILE})" &&
|
||||
rm "${CI_JOB_JWT_FILE}"
|
||||
|
||||
# Retry when job fails. Failed jobs can be found in the Mesa CI Daily Reports:
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/?sort=created_date&state=opened&label_name%5B%5D=CI%20daily
|
||||
@@ -276,7 +259,8 @@ make git archive:
|
||||
# compress the current folder
|
||||
- tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
|
||||
|
||||
- ci-fairy s3cp --token-file "${S3_JWT_FILE}" ../$CI_PROJECT_NAME.tar.gz https://$S3_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
|
||||
- ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ../$CI_PROJECT_NAME.tar.gz https://$S3_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
|
||||
|
||||
|
||||
# Sanity checks of MR settings and commit logs
|
||||
sanity:
|
||||
@@ -326,22 +310,6 @@ sanity:
|
||||
- placeholder-job
|
||||
|
||||
|
||||
mr-label-maker-test:
|
||||
extends:
|
||||
- .fdo.ci-fairy
|
||||
stage: sanity
|
||||
rules:
|
||||
- !reference [.mr-label-maker-rules, rules]
|
||||
variables:
|
||||
GIT_STRATEGY: fetch
|
||||
timeout: 10m
|
||||
script:
|
||||
- set -eu
|
||||
- python3 -m venv .venv
|
||||
- source .venv/bin/activate
|
||||
- pip install git+https://gitlab.freedesktop.org/freedesktop/mr-label-maker
|
||||
- mr-label-maker --dry-run --mr $CI_MERGE_REQUEST_IID
|
||||
|
||||
# Jobs that need to pass before spending hardware resources on further testing
|
||||
.required-for-hardware-jobs:
|
||||
needs:
|
||||
|
@@ -61,7 +61,3 @@ deployment:
|
||||
initramfs:
|
||||
url: '{{ initramfs_url }}'
|
||||
|
||||
{% if dtb_url is defined %}
|
||||
dtb:
|
||||
url: '{{ dtb_url }}'
|
||||
{% 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"
|
||||
|
||||
|
@@ -13,7 +13,7 @@ date +'%F %T'
|
||||
|
||||
# Make JWT token available as file in the bare-metal storage to enable access
|
||||
# to MinIO
|
||||
cp "${S3_JWT_FILE}" "${rootfs_dst}${S3_JWT_FILE}"
|
||||
cp "${CI_JOB_JWT_FILE}" "${rootfs_dst}${CI_JOB_JWT_FILE}"
|
||||
|
||||
date +'%F %T'
|
||||
|
||||
|
@@ -17,6 +17,7 @@
|
||||
paths:
|
||||
- _build/meson-logs/*.txt
|
||||
- _build/meson-logs/strace
|
||||
- shader-db
|
||||
- artifacts
|
||||
|
||||
# Just Linux
|
||||
@@ -70,14 +71,13 @@ debian-testing:
|
||||
-D glx=dri
|
||||
-D gbm=enabled
|
||||
-D egl=enabled
|
||||
-D glvnd=disabled
|
||||
-D platforms=x11,wayland
|
||||
GALLIUM_ST: >
|
||||
-D dri3=enabled
|
||||
-D gallium-nine=true
|
||||
-D gallium-va=enabled
|
||||
-D gallium-rusticl=true
|
||||
GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,crocus,iris,i915,r300,svga"
|
||||
GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,crocus,iris,i915,r300"
|
||||
VULKAN_DRIVERS: "swrast,amd,intel,intel_hasvk,virtio,nouveau"
|
||||
BUILDTYPE: "debugoptimized"
|
||||
EXTRA_OPTION: >
|
||||
@@ -163,7 +163,6 @@ debian-build-testing:
|
||||
-D glx=dri
|
||||
-D gbm=enabled
|
||||
-D egl=enabled
|
||||
-D glvnd=disabled
|
||||
-D platforms=x11,wayland
|
||||
GALLIUM_ST: >
|
||||
-D dri3=enabled
|
||||
@@ -182,7 +181,6 @@ debian-build-testing:
|
||||
-D tools=drm-shim,etnaviv,freedreno,glsl,intel,intel-ui,nir,nouveau,lima,panfrost,asahi
|
||||
-D b_lto=true
|
||||
LLVM_VERSION: 15
|
||||
S3_ARTIFACT_NAME: debian-build-testing
|
||||
script: |
|
||||
section_start lava-pytest "lava-pytest"
|
||||
.gitlab-ci/lava/lava-pytest.sh
|
||||
@@ -190,28 +188,11 @@ debian-build-testing:
|
||||
.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
|
||||
|
||||
shader-db:
|
||||
stage: code-validation
|
||||
extends:
|
||||
- .use-debian/x86_64_build
|
||||
- .container+build-rules
|
||||
needs:
|
||||
- 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:
|
||||
- shader-db
|
||||
timeout: 15m
|
||||
timeout: 30m
|
||||
|
||||
# Test a release build with -Werror so new warnings don't sneak in.
|
||||
debian-release:
|
||||
@@ -225,7 +206,6 @@ debian-release:
|
||||
-D glx=dri
|
||||
-D gbm=enabled
|
||||
-D egl=enabled
|
||||
-D glvnd=disabled
|
||||
-D platforms=x11,wayland
|
||||
GALLIUM_ST: >
|
||||
-D dri3=enabled
|
||||
@@ -267,7 +247,7 @@ alpine-build-testing:
|
||||
-D glx=disabled
|
||||
-D gbm=enabled
|
||||
-D egl=enabled
|
||||
-D glvnd=disabled
|
||||
-D glvnd=false
|
||||
-D platforms=wayland
|
||||
LLVM_VERSION: "16"
|
||||
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink"
|
||||
@@ -307,7 +287,7 @@ fedora-release:
|
||||
-D glx=dri
|
||||
-D gbm=enabled
|
||||
-D egl=enabled
|
||||
-D glvnd=enabled
|
||||
-D glvnd=true
|
||||
-D platforms=x11,wayland
|
||||
EXTRA_OPTION: >
|
||||
-D b_lto=true
|
||||
@@ -360,7 +340,6 @@ debian-android:
|
||||
-D glx=disabled
|
||||
-D gbm=disabled
|
||||
-D egl=enabled
|
||||
-D glvnd=disabled
|
||||
-D platforms=android
|
||||
EXTRA_OPTION: >
|
||||
-D android-stub=true
|
||||
@@ -441,8 +420,6 @@ debian-arm32:
|
||||
- .ci-deqp-artifacts
|
||||
variables:
|
||||
CROSS: armhf
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=disabled
|
||||
-D valgrind=disabled
|
||||
@@ -458,8 +435,6 @@ debian-arm32-asan:
|
||||
extends:
|
||||
- debian-arm32
|
||||
variables:
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=disabled
|
||||
-D b_sanitize=address
|
||||
@@ -478,8 +453,6 @@ debian-arm64:
|
||||
-Wno-error=array-bounds
|
||||
-Wno-error=stringop-truncation
|
||||
VULKAN_DRIVERS: "freedreno,broadcom,panfrost,imagination-experimental"
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=disabled
|
||||
-D valgrind=disabled
|
||||
@@ -496,8 +469,6 @@ debian-arm64-asan:
|
||||
extends:
|
||||
- debian-arm64
|
||||
variables:
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=disabled
|
||||
-D b_sanitize=address
|
||||
@@ -513,8 +484,6 @@ debian-arm64-build-test:
|
||||
- .ci-deqp-artifacts
|
||||
variables:
|
||||
VULKAN_DRIVERS: "amd"
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
EXTRA_OPTION: >
|
||||
-Dtools=panfrost,imagination
|
||||
|
||||
@@ -553,7 +522,7 @@ debian-clang:
|
||||
-D glx=dri
|
||||
-D gbm=enabled
|
||||
-D egl=enabled
|
||||
-D glvnd=enabled
|
||||
-D glvnd=true
|
||||
-D platforms=x11,wayland
|
||||
GALLIUM_ST: >
|
||||
-D dri3=enabled
|
||||
@@ -635,7 +604,6 @@ debian-vulkan:
|
||||
-D opengl=false
|
||||
-D gles1=disabled
|
||||
-D gles2=disabled
|
||||
-D glvnd=disabled
|
||||
-D platforms=x11,wayland
|
||||
-D osmesa=false
|
||||
GALLIUM_ST: >
|
||||
@@ -667,8 +635,6 @@ debian-x86_32:
|
||||
VULKAN_DRIVERS: intel,amd,swrast,virtio
|
||||
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,swrast,virgl,zink,crocus,d3d12"
|
||||
LLVM_VERSION: 15
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
EXTRA_OPTION: >
|
||||
-D vulkan-layers=device-select,overlay
|
||||
-D intel-clc=system
|
||||
@@ -696,8 +662,6 @@ debian-s390x:
|
||||
GALLIUM_DRIVERS: "swrast,zink"
|
||||
LLVM_VERSION: 15
|
||||
VULKAN_DRIVERS: "swrast"
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
|
||||
debian-ppc64el:
|
||||
extends:
|
||||
@@ -709,5 +673,3 @@ debian-ppc64el:
|
||||
CROSS: ppc64el
|
||||
GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl,zink"
|
||||
VULKAN_DRIVERS: "amd,swrast"
|
||||
DRI_LOADERS:
|
||||
-D glvnd=disabled
|
||||
|
@@ -1,136 +1,130 @@
|
||||
#!/bin/bash
|
||||
|
||||
VARS=(
|
||||
ACO_DEBUG
|
||||
ARTIFACTS_BASE_URL
|
||||
ASAN_OPTIONS
|
||||
BASE_SYSTEM_FORK_HOST_PREFIX
|
||||
BASE_SYSTEM_MAINLINE_HOST_PREFIX
|
||||
CI_COMMIT_BRANCH
|
||||
CI_COMMIT_REF_NAME
|
||||
CI_COMMIT_TITLE
|
||||
CI_JOB_ID
|
||||
S3_JWT_FILE
|
||||
CI_JOB_STARTED_AT
|
||||
CI_JOB_NAME
|
||||
CI_JOB_URL
|
||||
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
|
||||
CI_MERGE_REQUEST_TITLE
|
||||
CI_NODE_INDEX
|
||||
CI_NODE_TOTAL
|
||||
CI_PAGES_DOMAIN
|
||||
CI_PIPELINE_ID
|
||||
CI_PIPELINE_URL
|
||||
CI_PROJECT_DIR
|
||||
CI_PROJECT_NAME
|
||||
CI_PROJECT_PATH
|
||||
CI_PROJECT_ROOT_NAMESPACE
|
||||
CI_RUNNER_DESCRIPTION
|
||||
CI_SERVER_URL
|
||||
CROSVM_GALLIUM_DRIVER
|
||||
CROSVM_GPU_ARGS
|
||||
CURRENT_SECTION
|
||||
DEQP_BIN_DIR
|
||||
DEQP_CONFIG
|
||||
DEQP_EXPECTED_RENDERER
|
||||
DEQP_FRACTION
|
||||
DEQP_HEIGHT
|
||||
DEQP_RESULTS_DIR
|
||||
DEQP_RUNNER_OPTIONS
|
||||
DEQP_SUITE
|
||||
DEQP_TEMP_DIR
|
||||
DEQP_VER
|
||||
DEQP_WIDTH
|
||||
DEVICE_NAME
|
||||
DRIVER_NAME
|
||||
EGL_PLATFORM
|
||||
ETNA_MESA_DEBUG
|
||||
FDO_CI_CONCURRENT
|
||||
FDO_UPSTREAM_REPO
|
||||
FD_MESA_DEBUG
|
||||
FLAKES_CHANNEL
|
||||
FREEDRENO_HANGCHECK_MS
|
||||
GALLIUM_DRIVER
|
||||
GALLIVM_PERF
|
||||
GPU_VERSION
|
||||
GTEST
|
||||
GTEST_FAILS
|
||||
GTEST_FRACTION
|
||||
GTEST_RESULTS_DIR
|
||||
GTEST_RUNNER_OPTIONS
|
||||
GTEST_SKIPS
|
||||
HWCI_FREQ_MAX
|
||||
HWCI_KERNEL_MODULES
|
||||
HWCI_KVM
|
||||
HWCI_START_WESTON
|
||||
HWCI_START_XORG
|
||||
HWCI_TEST_SCRIPT
|
||||
IR3_SHADER_DEBUG
|
||||
JOB_ARTIFACTS_BASE
|
||||
JOB_RESULTS_PATH
|
||||
JOB_ROOTFS_OVERLAY_PATH
|
||||
KERNEL_IMAGE_BASE
|
||||
KERNEL_IMAGE_NAME
|
||||
LD_LIBRARY_PATH
|
||||
LIBGL_ALWAYS_SOFTWARE
|
||||
LP_NUM_THREADS
|
||||
MESA_BASE_TAG
|
||||
MESA_BUILD_PATH
|
||||
MESA_DEBUG
|
||||
MESA_GLES_VERSION_OVERRIDE
|
||||
MESA_GLSL_VERSION_OVERRIDE
|
||||
MESA_GL_VERSION_OVERRIDE
|
||||
MESA_IMAGE
|
||||
MESA_IMAGE_PATH
|
||||
MESA_IMAGE_TAG
|
||||
MESA_LOADER_DRIVER_OVERRIDE
|
||||
MESA_TEMPLATES_COMMIT
|
||||
MESA_VK_ABORT_ON_DEVICE_LOSS
|
||||
MESA_VK_IGNORE_CONFORMANCE_WARNING
|
||||
S3_HOST
|
||||
S3_RESULTS_UPLOAD
|
||||
NIR_DEBUG
|
||||
PAN_I_WANT_A_BROKEN_VULKAN_DRIVER
|
||||
PAN_MESA_DEBUG
|
||||
PANVK_DEBUG
|
||||
PIGLIT_FRACTION
|
||||
PIGLIT_NO_WINDOW
|
||||
PIGLIT_OPTIONS
|
||||
PIGLIT_PLATFORM
|
||||
PIGLIT_PROFILES
|
||||
PIGLIT_REPLAY_ANGLE_TAG
|
||||
PIGLIT_REPLAY_ARTIFACTS_BASE_URL
|
||||
PIGLIT_REPLAY_DEVICE_NAME
|
||||
PIGLIT_REPLAY_EXTRA_ARGS
|
||||
PIGLIT_REPLAY_LOOP_TIMES
|
||||
PIGLIT_REPLAY_REFERENCE_IMAGES_BASE
|
||||
PIGLIT_REPLAY_SUBCOMMAND
|
||||
PIGLIT_RESULTS
|
||||
PIGLIT_TESTS
|
||||
PIGLIT_TRACES_FILE
|
||||
PIPELINE_ARTIFACTS_BASE
|
||||
RADEON_DEBUG
|
||||
RADV_DEBUG
|
||||
RADV_PERFTEST
|
||||
SKQP_ASSETS_DIR
|
||||
SKQP_BACKENDS
|
||||
TU_DEBUG
|
||||
USE_ANGLE
|
||||
VIRGL_HOST_API
|
||||
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
|
||||
)
|
||||
|
||||
for var in "${VARS[@]}"; do
|
||||
for var in \
|
||||
ACO_DEBUG \
|
||||
ARTIFACTS_BASE_URL \
|
||||
ASAN_OPTIONS \
|
||||
BASE_SYSTEM_FORK_HOST_PREFIX \
|
||||
BASE_SYSTEM_MAINLINE_HOST_PREFIX \
|
||||
CI_COMMIT_BRANCH \
|
||||
CI_COMMIT_REF_NAME \
|
||||
CI_COMMIT_TITLE \
|
||||
CI_JOB_ID \
|
||||
CI_JOB_JWT_FILE \
|
||||
CI_JOB_STARTED_AT \
|
||||
CI_JOB_NAME \
|
||||
CI_JOB_URL \
|
||||
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME \
|
||||
CI_MERGE_REQUEST_TITLE \
|
||||
CI_NODE_INDEX \
|
||||
CI_NODE_TOTAL \
|
||||
CI_PAGES_DOMAIN \
|
||||
CI_PIPELINE_ID \
|
||||
CI_PIPELINE_URL \
|
||||
CI_PROJECT_DIR \
|
||||
CI_PROJECT_NAME \
|
||||
CI_PROJECT_PATH \
|
||||
CI_PROJECT_ROOT_NAMESPACE \
|
||||
CI_RUNNER_DESCRIPTION \
|
||||
CI_SERVER_URL \
|
||||
CROSVM_GALLIUM_DRIVER \
|
||||
CROSVM_GPU_ARGS \
|
||||
CURRENT_SECTION \
|
||||
DEQP_BIN_DIR \
|
||||
DEQP_CONFIG \
|
||||
DEQP_EXPECTED_RENDERER \
|
||||
DEQP_FRACTION \
|
||||
DEQP_HEIGHT \
|
||||
DEQP_RESULTS_DIR \
|
||||
DEQP_RUNNER_OPTIONS \
|
||||
DEQP_SUITE \
|
||||
DEQP_TEMP_DIR \
|
||||
DEQP_VER \
|
||||
DEQP_WIDTH \
|
||||
DEVICE_NAME \
|
||||
DRIVER_NAME \
|
||||
EGL_PLATFORM \
|
||||
ETNA_MESA_DEBUG \
|
||||
FDO_CI_CONCURRENT \
|
||||
FDO_UPSTREAM_REPO \
|
||||
FD_MESA_DEBUG \
|
||||
FLAKES_CHANNEL \
|
||||
FREEDRENO_HANGCHECK_MS \
|
||||
GALLIUM_DRIVER \
|
||||
GALLIVM_PERF \
|
||||
GPU_VERSION \
|
||||
GTEST \
|
||||
GTEST_FAILS \
|
||||
GTEST_FRACTION \
|
||||
GTEST_RESULTS_DIR \
|
||||
GTEST_RUNNER_OPTIONS \
|
||||
GTEST_SKIPS \
|
||||
HWCI_FREQ_MAX \
|
||||
HWCI_KERNEL_MODULES \
|
||||
HWCI_KVM \
|
||||
HWCI_START_WESTON \
|
||||
HWCI_START_XORG \
|
||||
HWCI_TEST_SCRIPT \
|
||||
IR3_SHADER_DEBUG \
|
||||
JOB_ARTIFACTS_BASE \
|
||||
JOB_RESULTS_PATH \
|
||||
JOB_ROOTFS_OVERLAY_PATH \
|
||||
KERNEL_IMAGE_BASE \
|
||||
KERNEL_IMAGE_NAME \
|
||||
LD_LIBRARY_PATH \
|
||||
LP_NUM_THREADS \
|
||||
MESA_BASE_TAG \
|
||||
MESA_BUILD_PATH \
|
||||
MESA_DEBUG \
|
||||
MESA_GLES_VERSION_OVERRIDE \
|
||||
MESA_GLSL_VERSION_OVERRIDE \
|
||||
MESA_GL_VERSION_OVERRIDE \
|
||||
MESA_IMAGE \
|
||||
MESA_IMAGE_PATH \
|
||||
MESA_IMAGE_TAG \
|
||||
MESA_LOADER_DRIVER_OVERRIDE \
|
||||
MESA_TEMPLATES_COMMIT \
|
||||
MESA_VK_IGNORE_CONFORMANCE_WARNING \
|
||||
S3_HOST \
|
||||
S3_RESULTS_UPLOAD \
|
||||
NIR_DEBUG \
|
||||
PAN_I_WANT_A_BROKEN_VULKAN_DRIVER \
|
||||
PAN_MESA_DEBUG \
|
||||
PANVK_DEBUG \
|
||||
PIGLIT_FRACTION \
|
||||
PIGLIT_NO_WINDOW \
|
||||
PIGLIT_OPTIONS \
|
||||
PIGLIT_PLATFORM \
|
||||
PIGLIT_PROFILES \
|
||||
PIGLIT_REPLAY_ARTIFACTS_BASE_URL \
|
||||
PIGLIT_REPLAY_DEVICE_NAME \
|
||||
PIGLIT_REPLAY_EXTRA_ARGS \
|
||||
PIGLIT_REPLAY_LOOP_TIMES \
|
||||
PIGLIT_REPLAY_REFERENCE_IMAGES_BASE \
|
||||
PIGLIT_REPLAY_SUBCOMMAND \
|
||||
PIGLIT_RESULTS \
|
||||
PIGLIT_TESTS \
|
||||
PIGLIT_TRACES_FILE \
|
||||
PIPELINE_ARTIFACTS_BASE \
|
||||
RADEON_DEBUG \
|
||||
RADV_DEBUG \
|
||||
RADV_PERFTEST \
|
||||
SKQP_ASSETS_DIR \
|
||||
SKQP_BACKENDS \
|
||||
TU_DEBUG \
|
||||
USE_ANGLE \
|
||||
VIRGL_HOST_API \
|
||||
WAFFLE_PLATFORM \
|
||||
VK_CPU \
|
||||
VK_DRIVER \
|
||||
VK_ICD_FILENAMES \
|
||||
VKD3D_PROTON_RESULTS \
|
||||
VKD3D_CONFIG \
|
||||
VKD3D_TEST_EXCLUDE \
|
||||
ZINK_DESCRIPTORS \
|
||||
ZINK_DEBUG \
|
||||
LVP_POISON_MEMORY \
|
||||
; do
|
||||
if [ -n "${!var+x}" ]; then
|
||||
echo "export $var=${!var@Q}"
|
||||
fi
|
||||
|
@@ -113,7 +113,7 @@ export PYTHONPATH=$(python3 -c "import sys;print(\":\".join(sys.path))")
|
||||
if [ -n "$MESA_LOADER_DRIVER_OVERRIDE" ]; then
|
||||
rm /install/lib/dri/!($MESA_LOADER_DRIVER_OVERRIDE)_dri.so
|
||||
fi
|
||||
ls -1 /install/lib/dri/*_dri.so || true
|
||||
ls -1 /install/lib/dri/*_dri.so
|
||||
|
||||
if [ "$HWCI_FREQ_MAX" = "true" ]; then
|
||||
# Ensure initialization of the DRM device (needed by MSM)
|
||||
@@ -165,7 +165,7 @@ fi
|
||||
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" \
|
||||
VK_ICD_FILENAMES="/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"
|
||||
|
||||
@@ -192,7 +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" \
|
||||
VK_ICD_FILENAMES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$(uname -m).json" \
|
||||
weston -Bheadless-backend.so --use-gl -Swayland-0 --xwayland --idle-time=0 &
|
||||
BACKGROUND_PIDS="$! $BACKGROUND_PIDS"
|
||||
|
||||
@@ -217,7 +217,7 @@ cleanup
|
||||
# upload artifacts
|
||||
if [ -n "$S3_RESULTS_UPLOAD" ]; then
|
||||
tar --zstd -cf results.tar.zst results/;
|
||||
ci-fairy s3cp --token-file "${S3_JWT_FILE}" results.tar.zst https://"$S3_RESULTS_UPLOAD"/results.tar.zst;
|
||||
ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" results.tar.zst https://"$S3_RESULTS_UPLOAD"/results.tar.zst;
|
||||
fi
|
||||
|
||||
# We still need to echo the hwci: mesa message, as some scripts rely on it, such
|
||||
|
@@ -41,7 +41,6 @@ DEPS=(
|
||||
libpciaccess-dev
|
||||
zlib-dev
|
||||
python3-dev
|
||||
py3-cparser
|
||||
py3-mako
|
||||
py3-ply
|
||||
vulkan-headers
|
||||
|
@@ -16,7 +16,7 @@ set -ex -o pipefail
|
||||
# - the GL release produces `glcts`, and
|
||||
# - the GLES release produces `deqp-gles*` and `deqp-egl`
|
||||
|
||||
DEQP_VK_VERSION=1.3.8.2
|
||||
DEQP_VK_VERSION=1.3.7.0
|
||||
DEQP_GL_VERSION=4.6.4.0
|
||||
DEQP_GLES_VERSION=3.2.10.0
|
||||
|
||||
@@ -28,15 +28,28 @@ DEQP_GLES_VERSION=3.2.10.0
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
vk_cts_commits_to_backport=(
|
||||
# Fix more ASAN errors due to missing virtual destructors
|
||||
dd40bcfef1b4035ea55480b6fd4d884447120768
|
||||
# Take multiview into account for task shader inv. stats
|
||||
22aa3f4c59f6e1d4daebd5a8c9c05bce6cd3b63b
|
||||
|
||||
# Remove "unused shader stages" tests
|
||||
7dac86c6bbd15dec91d7d9a98cd6dd57c11092a7
|
||||
# Remove illegal mesh shader query tests
|
||||
2a87f7b25dc27188be0f0a003b2d7aef69d9002e
|
||||
|
||||
# Relax fragment shader invocations result verifications
|
||||
0d8bf6a2715f95907e9cf86a86876ff1f26c66fe
|
||||
|
||||
# Fix several issues in dynamic rendering basic tests
|
||||
c5453824b498c981c6ba42017d119f5de02a3e34
|
||||
|
||||
# Add setVisible for VulkanWindowDirectDrm
|
||||
a8466bf6ea98f6cd6733849ad8081775318a3e3e
|
||||
)
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
vk_cts_patch_files=(
|
||||
# Derivate subgroup fix
|
||||
# https://github.com/KhronosGroup/VK-GL-CTS/pull/442
|
||||
build-deqp-vk_Use-subgroups-helper-in-derivate-tests.patch
|
||||
build-deqp-vk_Add-missing-subgroup-support-checks-for-linear-derivate-tests.patch
|
||||
)
|
||||
|
||||
if [ "${DEQP_TARGET}" = 'android' ]; then
|
||||
@@ -70,8 +83,6 @@ gles_cts_commits_to_backport=(
|
||||
|
||||
# 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
|
||||
@@ -207,7 +218,7 @@ if [ "${DEQP_TARGET}" != 'android' ]; then
|
||||
if [ "${DEQP_API}" = 'VK' ]; then
|
||||
for mustpass in $(< /VK-GL-CTS/external/vulkancts/mustpass/main/vk-default.txt) ; do
|
||||
cat /VK-GL-CTS/external/vulkancts/mustpass/main/$mustpass \
|
||||
>> /deqp/mustpass/vk-main.txt
|
||||
>> /deqp/mustpass/vk-master.txt
|
||||
done
|
||||
fi
|
||||
|
||||
@@ -242,7 +253,7 @@ fi
|
||||
|
||||
# Remove other mustpass files, since we saved off the ones we wanted to conventient locations above.
|
||||
rm -rf /deqp/external/**/mustpass/
|
||||
rm -rf /deqp/external/vulkancts/modules/vulkan/vk-main*
|
||||
rm -rf /deqp/external/vulkancts/modules/vulkan/vk-master*
|
||||
rm -rf /deqp/external/vulkancts/modules/vulkan/vk-default
|
||||
|
||||
rm -rf /deqp/external/openglcts/modules/cts-runner
|
||||
|
@@ -7,7 +7,7 @@
|
||||
|
||||
set -ex
|
||||
|
||||
git clone https://github.com/microsoft/DirectX-Headers -b v1.613.1 --depth 1
|
||||
git clone https://github.com/microsoft/DirectX-Headers -b v1.611.0 --depth 1
|
||||
pushd DirectX-Headers
|
||||
meson setup build --backend=ninja --buildtype=release -Dbuild-test=false $EXTRA_MESON_ARGS
|
||||
meson install -C build
|
||||
|
@@ -8,7 +8,7 @@ set -ex
|
||||
# DEBIAN_X86_64_TEST_VK_TAG
|
||||
# KERNEL_ROOTFS_TAG
|
||||
|
||||
REV="f7ece74a107a2f99b2f494d978c84f8d51faa703"
|
||||
REV="1e631479c0b477006dd7561c55e06269d2878d8d"
|
||||
|
||||
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
|
||||
pushd /piglit
|
||||
|
@@ -6,7 +6,7 @@
|
||||
# KERNEL_ROOTFS_TAG
|
||||
set -ex
|
||||
|
||||
VKD3D_PROTON_COMMIT="c3b385606a93baed42482d822805e0d9c2f3f603"
|
||||
VKD3D_PROTON_COMMIT="a0ccc383937903f4ca0997ce53e41ccce7f2f2ec"
|
||||
|
||||
VKD3D_PROTON_DST_DIR="/vkd3d-proton-tests"
|
||||
VKD3D_PROTON_SRC_DIR="/vkd3d-proton-src"
|
||||
|
@@ -7,7 +7,7 @@
|
||||
|
||||
set -ex
|
||||
|
||||
VALIDATION_TAG="v1.3.281"
|
||||
VALIDATION_TAG="snapshot-2024wk06"
|
||||
|
||||
git clone -b "$VALIDATION_TAG" --single-branch --depth 1 https://github.com/KhronosGroup/Vulkan-ValidationLayers.git
|
||||
pushd Vulkan-ValidationLayers
|
||||
|
@@ -3,17 +3,8 @@
|
||||
|
||||
set -ex
|
||||
|
||||
# When changing this file, you need to bump the following
|
||||
# .gitlab-ci/image-tags.yml tags:
|
||||
# DEBIAN_BUILD_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
|
||||
|
||||
export LIBWAYLAND_VERSION="1.21.0"
|
||||
export WAYLAND_PROTOCOLS_VERSION="1.34"
|
||||
export WAYLAND_PROTOCOLS_VERSION="1.31"
|
||||
|
||||
git clone https://gitlab.freedesktop.org/wayland/wayland
|
||||
cd wayland
|
||||
|
@@ -64,7 +64,6 @@ DEPS=(
|
||||
python3-mako
|
||||
python3-pil
|
||||
python3-pip
|
||||
python3-pycparser
|
||||
python3-requests
|
||||
python3-setuptools
|
||||
u-boot-tools
|
||||
|
@@ -70,7 +70,6 @@ DEPS=(
|
||||
python3-pil
|
||||
python3-pip
|
||||
python3-ply
|
||||
python3-pycparser
|
||||
python3-requests
|
||||
python3-setuptools
|
||||
qemu-user
|
||||
|
@@ -90,13 +90,6 @@ RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
||||
-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[@]}"
|
||||
|
@@ -27,7 +27,6 @@ EPHEMERAL=(
|
||||
libvulkan-dev
|
||||
libwaffle-dev
|
||||
libx11-xcb-dev
|
||||
libxcb-dri2-0-dev
|
||||
libxcb-ewmh-dev
|
||||
libxcb-keysyms1-dev
|
||||
libxkbcommon-dev
|
||||
|
@@ -27,7 +27,6 @@ EPHEMERAL=(
|
||||
DEPS=(
|
||||
bindgen
|
||||
bison
|
||||
cbindgen
|
||||
ccache
|
||||
clang-devel
|
||||
flex
|
||||
@@ -77,7 +76,6 @@ DEPS=(
|
||||
python3-devel
|
||||
python3-mako
|
||||
python3-ply
|
||||
python3-pycparser
|
||||
rust-packaging
|
||||
vulkan-headers
|
||||
spirv-tools-devel
|
||||
|
@@ -226,7 +226,7 @@ debian/x86_64_test-vk:
|
||||
- debian/x86_64_test-vk
|
||||
|
||||
# Debian based x86_64 test image for Android
|
||||
.debian/x86_64_test-android:
|
||||
debian/x86_64_test-android:
|
||||
extends: .use-debian/x86_64_test-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_64_test-android ${DEBIAN_X86_64_TEST_ANDROID_TAG}
|
||||
@@ -372,7 +372,7 @@ kernel+rootfs_arm32:
|
||||
- .container+build-rules
|
||||
variables:
|
||||
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
|
||||
ARTIFACTS_PREFIX: "https://${S3_HOST}/${S3_KERNEL_BUCKET}"
|
||||
ARTIFACTS_PREFIX: "https://${S3_HOST}/mesa-lava"
|
||||
ARTIFACTS_SUFFIX: "${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}"
|
||||
MESA_ARTIFACTS_TAG: *debian-arm64_build
|
||||
MESA_ROOTFS_TAG: *kernel-rootfs
|
||||
|
@@ -14,7 +14,7 @@ export LLVM_VERSION="${LLVM_VERSION:=15}"
|
||||
|
||||
check_minio()
|
||||
{
|
||||
S3_PATH="${S3_HOST}/${S3_KERNEL_BUCKET}/$1/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}"
|
||||
S3_PATH="${S3_HOST}/mesa-lava/$1/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}"
|
||||
if curl -L --retry 4 -f --retry-delay 60 -s -X HEAD \
|
||||
"https://${S3_PATH}/done"; then
|
||||
echo "Remote files are up-to-date, skip rebuilding them."
|
||||
@@ -365,8 +365,8 @@ popd
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
||||
|
||||
ci-fairy s3cp --token-file "${S3_JWT_FILE}" /lava-files/"${ROOTFSTAR}" \
|
||||
ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" /lava-files/"${ROOTFSTAR}" \
|
||||
https://${S3_PATH}/"${ROOTFSTAR}"
|
||||
|
||||
touch /lava-files/done
|
||||
ci-fairy s3cp --token-file "${S3_JWT_FILE}" /lava-files/done https://${S3_PATH}/done
|
||||
ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" /lava-files/done https://${S3_PATH}/done
|
||||
|
@@ -1,45 +0,0 @@
|
||||
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
|
||||
|
@@ -0,0 +1,29 @@
|
||||
From 7c9aa6f846f9f2f0d70b5c4a8e7c99a3d31b3b1a Mon Sep 17 00:00:00 2001
|
||||
From: Rob Clark <robdclark@chromium.org>
|
||||
Date: Sat, 27 Jan 2024 10:59:00 -0800
|
||||
Subject: [PATCH] Add missing subgroup support checks for linear derivate tests
|
||||
|
||||
Some of these tests require subgroup ops support, but didn't bother
|
||||
checking whether they were supported. Add this missing checks.
|
||||
---
|
||||
.../vulkan/shaderrender/vktShaderRenderDerivateTests.cpp | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
|
||||
index 3253505958..709044f2e8 100644
|
||||
--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
|
||||
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
|
||||
@@ -1145,6 +1145,13 @@ LinearDerivateCase::~LinearDerivateCase (void)
|
||||
TestInstance* LinearDerivateCase::createInstance (Context& context) const
|
||||
{
|
||||
DE_ASSERT(m_uniformSetup != DE_NULL);
|
||||
+ if (m_fragmentTmpl.find("gl_SubgroupInvocationID") != std::string::npos) {
|
||||
+ if (!subgroups::areQuadOperationsSupportedForStages(context, VK_SHADER_STAGE_FRAGMENT_BIT))
|
||||
+ throw tcu::NotSupportedError("test requires VK_SUBGROUP_FEATURE_QUAD_BIT");
|
||||
+
|
||||
+ if (subgroups::getSubgroupSize(context) < 4)
|
||||
+ throw tcu::NotSupportedError("test requires subgroupSize >= 4");
|
||||
+ }
|
||||
return new LinearDerivateCaseInstance(context, *m_uniformSetup, m_definitions, m_values);
|
||||
}
|
||||
|
@@ -0,0 +1,56 @@
|
||||
From ed3794c975d284a5453ae33ae59dd1541a9eb804 Mon Sep 17 00:00:00 2001
|
||||
From: Rob Clark <robdclark@chromium.org>
|
||||
Date: Sat, 27 Jan 2024 10:57:28 -0800
|
||||
Subject: [PATCH] Use subgroups helper in derivate tests
|
||||
|
||||
For the tests that need subgroup ops, use the existing subgroups helper,
|
||||
rather than open-coding the same checks.
|
||||
---
|
||||
.../vktShaderRenderDerivateTests.cpp | 23 ++++---------------
|
||||
1 file changed, 5 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
|
||||
index a8bb5a3ba7..3253505958 100644
|
||||
--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
|
||||
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
#include "vktShaderRenderDerivateTests.hpp"
|
||||
#include "vktShaderRender.hpp"
|
||||
+#include "subgroups/vktSubgroupsTestsUtils.hpp"
|
||||
#include "vkImageUtil.hpp"
|
||||
#include "vkQueryUtil.hpp"
|
||||
|
||||
@@ -707,28 +708,14 @@ tcu::TestStatus TriangleDerivateCaseInstance::iterate (void)
|
||||
{
|
||||
const std::string errorPrefix = m_definitions.inNonUniformControlFlow ? "Derivatives in dynamic control flow" :
|
||||
"Manual derivatives with subgroup operations";
|
||||
- if (!m_context.contextSupports(vk::ApiVersion(0, 1, 1, 0)))
|
||||
- throw tcu::NotSupportedError(errorPrefix + " require Vulkan 1.1");
|
||||
-
|
||||
- vk::VkPhysicalDeviceSubgroupProperties subgroupProperties;
|
||||
- deMemset(&subgroupProperties, 0, sizeof(subgroupProperties));
|
||||
- subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
|
||||
-
|
||||
- vk::VkPhysicalDeviceProperties2 properties2;
|
||||
- deMemset(&properties2, 0, sizeof(properties2));
|
||||
- properties2.sType = vk::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
|
||||
- properties2.pNext = &subgroupProperties;
|
||||
-
|
||||
- m_context.getInstanceInterface().getPhysicalDeviceProperties2(m_context.getPhysicalDevice(), &properties2);
|
||||
+ if (!subgroups::areQuadOperationsSupportedForStages(m_context, VK_SHADER_STAGE_FRAGMENT_BIT))
|
||||
+ throw tcu::NotSupportedError(errorPrefix + " tests require VK_SUBGROUP_FEATURE_QUAD_BIT");
|
||||
|
||||
- if (subgroupProperties.subgroupSize < 4)
|
||||
+ if (subgroups::getSubgroupSize(m_context) < 4)
|
||||
throw tcu::NotSupportedError(errorPrefix + " require subgroupSize >= 4");
|
||||
|
||||
- if ((subgroupProperties.supportedOperations & VK_SUBGROUP_FEATURE_BALLOT_BIT) == 0)
|
||||
+ if (!subgroups::isSubgroupFeatureSupportedForDevice(m_context, VK_SUBGROUP_FEATURE_BALLOT_BIT))
|
||||
throw tcu::NotSupportedError(errorPrefix + " tests require VK_SUBGROUP_FEATURE_BALLOT_BIT");
|
||||
-
|
||||
- if (isSubgroupFunc(m_definitions.func) && (subgroupProperties.supportedOperations & VK_SUBGROUP_FEATURE_QUAD_BIT) == 0)
|
||||
- throw tcu::NotSupportedError(errorPrefix + " tests require VK_SUBGROUP_FEATURE_QUAD_BIT");
|
||||
}
|
||||
|
||||
setup();
|
@@ -96,7 +96,7 @@ set +e -x
|
||||
NIR_DEBUG="novalidate" \
|
||||
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 \
|
||||
VK_ICD_FILENAMES=$CI_PROJECT_DIR/install/share/vulkan/icd.d/${CROSVM_VK_DRIVER}_icd.x86_64.json \
|
||||
crosvm --no-syslog run \
|
||||
--gpu "${CROSVM_GPU_ARGS}" --gpu-render-server "path=/usr/local/libexec/virgl_render_server" \
|
||||
-m "${CROSVM_MEMORY:-4096}" -c "${CROSVM_CPU:-2}" --disable-sandbox \
|
||||
|
@@ -18,7 +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
|
||||
export VK_DRIVER_FILES="$PWD"/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.${VK_CPU:-$(uname -m)}.json
|
||||
export VK_ICD_FILENAMES="$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
|
||||
@@ -59,7 +59,7 @@ if [ -z "$DEQP_SUITE" ]; then
|
||||
|
||||
# Generate test case list file.
|
||||
if [ "$DEQP_VER" = "vk" ]; then
|
||||
MUSTPASS=/deqp/mustpass/vk-main.txt
|
||||
MUSTPASS=/deqp/mustpass/vk-master.txt
|
||||
DEQP=/deqp/external/vulkancts/modules/vulkan/deqp-vk
|
||||
elif [ "$DEQP_VER" = "gles2" ] || [ "$DEQP_VER" = "gles3" ] || [ "$DEQP_VER" = "gles31" ] || [ "$DEQP_VER" = "egl" ]; then
|
||||
MUSTPASS=/deqp/mustpass/$DEQP_VER-main.txt
|
||||
@@ -169,7 +169,7 @@ fi
|
||||
uncollapsed_section_switch deqp "deqp: deqp-runner"
|
||||
|
||||
# Print the detailed version with the list of backports and local patches
|
||||
for api in vk gl gles; do
|
||||
for api in vk gl; do
|
||||
deqp_version_log=/deqp/version-$api
|
||||
if [ -r "$deqp_version_log" ]; then
|
||||
cat "$deqp_version_log"
|
||||
|
@@ -18,7 +18,7 @@ TMP_DIR=$(mktemp -d)
|
||||
echo "$(date +"%F %T") Downloading archived master..."
|
||||
if ! /usr/bin/wget \
|
||||
-O "$TMP_DIR/$CI_PROJECT_NAME.tar.gz" \
|
||||
"https://${S3_HOST}/${S3_GITCACHE_BUCKET}/${FDO_UPSTREAM_REPO}/$CI_PROJECT_NAME.tar.gz";
|
||||
"https://${S3_HOST}/git-cache/${FDO_UPSTREAM_REPO}/$CI_PROJECT_NAME.tar.gz";
|
||||
then
|
||||
echo "Repository cache not available"
|
||||
exit
|
||||
|
@@ -237,25 +237,6 @@
|
||||
when: never
|
||||
- !reference [.freedreno-farm-rules, rules]
|
||||
|
||||
.vmware-farm-rules:
|
||||
rules:
|
||||
- exists: [ .ci-farms-disabled/vmware ]
|
||||
when: never
|
||||
- changes: [ .ci-farms-disabled/vmware ]
|
||||
if: '$CI_PIPELINE_SOURCE != "schedule"'
|
||||
when: on_success
|
||||
- changes: [ .ci-farms-disabled/* ]
|
||||
if: '$CI_PIPELINE_SOURCE != "schedule"'
|
||||
when: never
|
||||
|
||||
.vmware-farm-manual-rules:
|
||||
rules:
|
||||
- exists: [ .ci-farms-disabled/vmware ]
|
||||
when: never
|
||||
- changes: [ .ci-farms-disabled/vmware ]
|
||||
if: '$CI_PIPELINE_SOURCE != "schedule"'
|
||||
when: never
|
||||
- !reference [.vmware-farm-rules, rules]
|
||||
|
||||
.ondracka-farm-rules:
|
||||
rules:
|
||||
@@ -330,10 +311,6 @@
|
||||
changes: [ .ci-farms-disabled/ondracka ]
|
||||
exists: [ .ci-farms-disabled/ondracka ]
|
||||
when: never
|
||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||
changes: [ .ci-farms-disabled/vmware ]
|
||||
exists: [ .ci-farms-disabled/vmware ]
|
||||
when: never
|
||||
# Any other change to ci-farms/* means some farm is getting re-enabled.
|
||||
# Run jobs in Marge pipelines (and let it fallback to manual otherwise)
|
||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "marge-bot"'
|
||||
|
@@ -11,7 +11,7 @@ INSTALL=$PWD/install
|
||||
|
||||
# Set up the driver environment.
|
||||
export LD_LIBRARY_PATH="$INSTALL/lib/"
|
||||
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.x86_64.json"
|
||||
export VK_ICD_FILENAMES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.x86_64.json"
|
||||
|
||||
# To store Fossilize logs on failure.
|
||||
RESULTS="$PWD/results"
|
||||
|
@@ -13,10 +13,10 @@
|
||||
|
||||
variables:
|
||||
DEBIAN_X86_64_BUILD_BASE_IMAGE: "debian/x86_64_build-base"
|
||||
DEBIAN_BASE_TAG: "20240412-pycparser"
|
||||
DEBIAN_BASE_TAG: "20240307-virglcrosvm"
|
||||
|
||||
DEBIAN_X86_64_BUILD_IMAGE_PATH: "debian/x86_64_build"
|
||||
DEBIAN_BUILD_TAG: "20240408-cbindgen"
|
||||
DEBIAN_BUILD_TAG: "20240301-mold"
|
||||
|
||||
DEBIAN_X86_64_TEST_BASE_IMAGE: "debian/x86_64_test-base"
|
||||
|
||||
@@ -24,15 +24,15 @@ variables:
|
||||
DEBIAN_X86_64_TEST_IMAGE_VK_PATH: "debian/x86_64_test-vk"
|
||||
DEBIAN_X86_64_TEST_ANDROID_IMAGE_PATH: "debian/x86_64_test-android"
|
||||
|
||||
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"
|
||||
DEBIAN_X86_64_TEST_ANDROID_TAG: "20240311-runner"
|
||||
DEBIAN_X86_64_TEST_GL_TAG: "20240313-ninetests"
|
||||
DEBIAN_X86_64_TEST_VK_TAG: "20240317-direct_drm"
|
||||
KERNEL_ROOTFS_TAG: "20240317-direct_drm"
|
||||
|
||||
ALPINE_X86_64_BUILD_TAG: "20240412-pycparser"
|
||||
ALPINE_X86_64_LAVA_SSH_TAG: "20240401-wlproto"
|
||||
FEDORA_X86_64_BUILD_TAG: "20240412-pycparser"
|
||||
KERNEL_TAG: "v6.6.21-mesa-f8ea"
|
||||
ALPINE_X86_64_BUILD_TAG: "20240208-libclc-5"
|
||||
ALPINE_X86_64_LAVA_SSH_TAG: "20230626-v1"
|
||||
FEDORA_X86_64_BUILD_TAG: "20240301-mold"
|
||||
KERNEL_TAG: "v6.6.21-mesa-19fc"
|
||||
KERNEL_REPO: "gfx-ci/linux"
|
||||
PKG_REPO_REV: "3cc12a2a"
|
||||
|
||||
@@ -40,7 +40,7 @@ variables:
|
||||
WINDOWS_X64_MSVC_TAG: "20231222-msvc"
|
||||
|
||||
WINDOWS_X64_BUILD_PATH: "windows/x86_64_build"
|
||||
WINDOWS_X64_BUILD_TAG: "20240405-vainfo-ci-1"
|
||||
WINDOWS_X64_BUILD_TAG: "20240117-vulkan-sdk"
|
||||
|
||||
WINDOWS_X64_TEST_PATH: "windows/x86_64_test"
|
||||
WINDOWS_X64_TEST_TAG: "20240405-vainfo-ci-1"
|
||||
WINDOWS_X64_TEST_TAG: "20240117-vulkan-sdk"
|
||||
|
@@ -5,36 +5,24 @@ class MesaCIException(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class MesaCIRetriableException(MesaCIException):
|
||||
pass
|
||||
|
||||
|
||||
class MesaCITimeoutError(MesaCIRetriableException):
|
||||
class MesaCITimeoutError(MesaCIException):
|
||||
def __init__(self, *args, timeout_duration: timedelta) -> None:
|
||||
super().__init__(*args)
|
||||
self.timeout_duration = timeout_duration
|
||||
|
||||
|
||||
class MesaCIRetryError(MesaCIRetriableException):
|
||||
class MesaCIRetryError(MesaCIException):
|
||||
def __init__(self, *args, retry_count: int, last_job: None) -> None:
|
||||
super().__init__(*args)
|
||||
self.retry_count = retry_count
|
||||
self.last_job = last_job
|
||||
|
||||
|
||||
class MesaCIFatalException(MesaCIException):
|
||||
"""Exception raised when the Mesa CI script encounters a fatal error that
|
||||
prevents the script from continuing."""
|
||||
|
||||
def __init__(self, *args) -> None:
|
||||
super().__init__(*args)
|
||||
|
||||
|
||||
class MesaCIParseException(MesaCIRetriableException):
|
||||
class MesaCIParseException(MesaCIException):
|
||||
pass
|
||||
|
||||
|
||||
class MesaCIKnownIssueException(MesaCIRetriableException):
|
||||
class MesaCIKnownIssueException(MesaCIException):
|
||||
"""Exception raised when the Mesa CI script finds something in the logs that
|
||||
is known to cause the LAVA job to eventually fail"""
|
||||
|
||||
|
@@ -11,7 +11,7 @@ variables:
|
||||
# proxy used to cache data locally
|
||||
FDO_HTTP_CACHE_URI: "http://caching-proxy/cache/?uri="
|
||||
# base system generated by the container build job, shared between many pipelines
|
||||
BASE_SYSTEM_HOST_PREFIX: "${S3_HOST}/${S3_KERNEL_BUCKET}"
|
||||
BASE_SYSTEM_HOST_PREFIX: "${S3_HOST}/mesa-lava"
|
||||
BASE_SYSTEM_MAINLINE_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${FDO_UPSTREAM_REPO}/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}"
|
||||
BASE_SYSTEM_FORK_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${CI_PROJECT_PATH}/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}"
|
||||
# per-job build artifacts
|
||||
|
@@ -30,7 +30,7 @@ artifacts/ci-common/generate-env.sh | tee results/job-rootfs-overlay/set-job-env
|
||||
section_end variables
|
||||
|
||||
tar zcf job-rootfs-overlay.tar.gz -C results/job-rootfs-overlay/ .
|
||||
ci-fairy s3cp --token-file "${S3_JWT_FILE}" job-rootfs-overlay.tar.gz "https://${JOB_ROOTFS_OVERLAY_PATH}"
|
||||
ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" job-rootfs-overlay.tar.gz "https://${JOB_ROOTFS_OVERLAY_PATH}"
|
||||
|
||||
ARTIFACT_URL="${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME:?}.tar.zst"
|
||||
|
||||
@@ -50,7 +50,7 @@ PYTHONPATH=artifacts/ artifacts/lava/lava_job_submitter.py \
|
||||
--ci-project-dir "${CI_PROJECT_DIR}" \
|
||||
--device-type "${DEVICE_TYPE}" \
|
||||
--dtb-filename "${DTB}" \
|
||||
--jwt-file "${S3_JWT_FILE}" \
|
||||
--jwt-file "${CI_JOB_JWT_FILE}" \
|
||||
--kernel-image-name "${KERNEL_IMAGE_NAME}" \
|
||||
--kernel-image-type "${KERNEL_IMAGE_TYPE}" \
|
||||
--boot-method "${BOOT_METHOD}" \
|
||||
|
@@ -16,7 +16,7 @@ import sys
|
||||
import time
|
||||
from collections import defaultdict
|
||||
from dataclasses import dataclass, fields
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from datetime import datetime, timedelta
|
||||
from os import environ, getenv, path
|
||||
from typing import Any, Optional
|
||||
|
||||
@@ -25,8 +25,6 @@ from lavacli.utils import flow_yaml as lava_yaml
|
||||
|
||||
from lava.exceptions import (
|
||||
MesaCIException,
|
||||
MesaCIFatalException,
|
||||
MesaCIRetriableException,
|
||||
MesaCIParseException,
|
||||
MesaCIRetryError,
|
||||
MesaCITimeoutError,
|
||||
@@ -83,29 +81,18 @@ NUMBER_OF_RETRIES_TIMEOUT_DETECTION = int(
|
||||
getenv("LAVA_NUMBER_OF_RETRIES_TIMEOUT_DETECTION", 2)
|
||||
)
|
||||
|
||||
CI_JOB_TIMEOUT_SEC = int(getenv("CI_JOB_TIMEOUT", 3600))
|
||||
# How many seconds the script will wait to let LAVA run the job and give the final details.
|
||||
EXPECTED_JOB_DURATION_SEC = int(getenv("EXPECTED_JOB_DURATION_SEC", 60 * 10))
|
||||
# CI_JOB_STARTED is given by GitLab CI/CD in UTC timezone by default.
|
||||
CI_JOB_STARTED_AT_RAW = getenv("CI_JOB_STARTED_AT", "")
|
||||
CI_JOB_STARTED_AT: datetime = (
|
||||
datetime.fromisoformat(CI_JOB_STARTED_AT_RAW)
|
||||
if CI_JOB_STARTED_AT_RAW
|
||||
else datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
|
||||
def raise_exception_from_metadata(metadata: dict, job_id: int) -> None:
|
||||
"""
|
||||
Investigate infrastructure errors from the job metadata.
|
||||
If it finds an error, raise it as MesaCIRetriableException.
|
||||
If it finds an error, raise it as MesaCIException.
|
||||
"""
|
||||
if "result" not in metadata or metadata["result"] != "fail":
|
||||
return
|
||||
if "error_type" in metadata:
|
||||
error_type = metadata["error_type"]
|
||||
if error_type == "Infrastructure":
|
||||
raise MesaCIRetriableException(
|
||||
raise MesaCIException(
|
||||
f"LAVA job {job_id} failed with Infrastructure Error. Retry."
|
||||
)
|
||||
if error_type == "Job":
|
||||
@@ -113,12 +100,12 @@ def raise_exception_from_metadata(metadata: dict, job_id: int) -> None:
|
||||
# with mal-formed job definitions. As we are always validating the
|
||||
# jobs, only the former is probable to happen. E.g.: When some LAVA
|
||||
# action timed out more times than expected in job definition.
|
||||
raise MesaCIRetriableException(
|
||||
raise MesaCIException(
|
||||
f"LAVA job {job_id} failed with JobError "
|
||||
"(possible LAVA timeout misconfiguration/bug). Retry."
|
||||
)
|
||||
if "case" in metadata and metadata["case"] == "validate":
|
||||
raise MesaCIRetriableException(
|
||||
raise MesaCIException(
|
||||
f"LAVA job {job_id} failed validation (possible download error). Retry."
|
||||
)
|
||||
|
||||
@@ -195,6 +182,7 @@ def is_job_hanging(job, max_idle_time):
|
||||
|
||||
|
||||
def parse_log_lines(job, log_follower, new_log_lines):
|
||||
|
||||
if log_follower.feed(new_log_lines):
|
||||
# If we had non-empty log data, we can assure that the device is alive.
|
||||
job.heartbeat()
|
||||
@@ -212,6 +200,7 @@ def parse_log_lines(job, log_follower, new_log_lines):
|
||||
|
||||
|
||||
def fetch_new_log_lines(job):
|
||||
|
||||
# The XMLRPC binary packet may be corrupted, causing a YAML scanner error.
|
||||
# Retry the log fetching several times before exposing the error.
|
||||
for _ in range(5):
|
||||
@@ -227,28 +216,14 @@ def submit_job(job):
|
||||
try:
|
||||
job.submit()
|
||||
except Exception as mesa_ci_err:
|
||||
raise MesaCIRetriableException(
|
||||
raise MesaCIException(
|
||||
f"Could not submit LAVA job. Reason: {mesa_ci_err}"
|
||||
) from mesa_ci_err
|
||||
|
||||
|
||||
def wait_for_job_get_started(job, attempt_no):
|
||||
def wait_for_job_get_started(job):
|
||||
print_log(f"Waiting for job {job.job_id} to start.")
|
||||
while not job.is_started():
|
||||
current_job_duration_sec: int = int(
|
||||
(datetime.now(timezone.utc) - CI_JOB_STARTED_AT).total_seconds()
|
||||
)
|
||||
remaining_time_sec: int = max(0, CI_JOB_TIMEOUT_SEC - current_job_duration_sec)
|
||||
if remaining_time_sec < EXPECTED_JOB_DURATION_SEC:
|
||||
job.cancel()
|
||||
raise MesaCIFatalException(
|
||||
f"{CONSOLE_LOG['BOLD']}"
|
||||
f"{CONSOLE_LOG['FG_YELLOW']}"
|
||||
f"Job {job.job_id} only has {remaining_time_sec} seconds "
|
||||
"remaining to run, but it is expected to take at least "
|
||||
f"{EXPECTED_JOB_DURATION_SEC} seconds."
|
||||
f"{CONSOLE_LOG['RESET']}",
|
||||
)
|
||||
time.sleep(WAIT_FOR_DEVICE_POLLING_TIME_SEC)
|
||||
job.refresh_log()
|
||||
print_log(f"Job {job.job_id} started.")
|
||||
@@ -324,7 +299,7 @@ def execute_job_with_retries(
|
||||
try:
|
||||
job_log["submitter_start_time"] = datetime.now().isoformat()
|
||||
submit_job(job)
|
||||
wait_for_job_get_started(job, attempt_no)
|
||||
wait_for_job_get_started(job)
|
||||
log_follower: LogFollower = bootstrap_log_follower()
|
||||
follow_job_execution(job, log_follower)
|
||||
return job
|
||||
@@ -343,8 +318,6 @@ def execute_job_with_retries(
|
||||
f"Finished executing LAVA job in the attempt #{attempt_no}"
|
||||
f"{CONSOLE_LOG['RESET']}"
|
||||
)
|
||||
if job.exception and not isinstance(job.exception, MesaCIRetriableException):
|
||||
break
|
||||
|
||||
return last_failed_job
|
||||
|
||||
@@ -498,9 +471,8 @@ class LAVAJobSubmitter(PathResolver):
|
||||
if not last_attempt_job:
|
||||
# No job was run, something bad happened
|
||||
STRUCTURAL_LOG["job_combined_status"] = "script_crash"
|
||||
current_exception = str(sys.exc_info()[1])
|
||||
current_exception = str(sys.exc_info()[0])
|
||||
STRUCTURAL_LOG["job_combined_fail_reason"] = current_exception
|
||||
print(f"Interrupting the script. Reason: {current_exception}")
|
||||
raise SystemExit(1)
|
||||
|
||||
STRUCTURAL_LOG["job_combined_status"] = last_attempt_job.status
|
||||
@@ -537,6 +509,7 @@ class StructuredLoggerWrapper:
|
||||
def logger_context(self):
|
||||
context = contextlib.nullcontext()
|
||||
try:
|
||||
|
||||
global STRUCTURAL_LOG
|
||||
STRUCTURAL_LOG = StructuredLogger(
|
||||
self.__submitter.structured_log_file, truncate=True
|
||||
|
@@ -6,7 +6,6 @@ from typing import Any, Optional
|
||||
|
||||
from lava.exceptions import (
|
||||
MesaCIException,
|
||||
MesaCIRetriableException,
|
||||
MesaCIKnownIssueException,
|
||||
MesaCIParseException,
|
||||
MesaCITimeoutError,
|
||||
@@ -35,7 +34,7 @@ class LAVAJob:
|
||||
self._is_finished = False
|
||||
self.log: dict[str, Any] = log
|
||||
self.status = "not_submitted"
|
||||
self.__exception: Optional[Exception] = None
|
||||
self.__exception: Optional[str] = None
|
||||
|
||||
def heartbeat(self) -> None:
|
||||
self.last_log_time: datetime = datetime.now()
|
||||
@@ -64,13 +63,13 @@ class LAVAJob:
|
||||
return self._is_finished
|
||||
|
||||
@property
|
||||
def exception(self) -> Optional[Exception]:
|
||||
def exception(self) -> str:
|
||||
return self.__exception
|
||||
|
||||
@exception.setter
|
||||
def exception(self, exception: Exception) -> None:
|
||||
self.__exception = exception
|
||||
self.log["dut_job_fail_reason"] = repr(self.__exception)
|
||||
self.__exception = repr(exception)
|
||||
self.log["dut_job_fail_reason"] = self.__exception
|
||||
|
||||
def validate(self) -> Optional[dict]:
|
||||
"""Returns a dict with errors, if the validation fails.
|
||||
@@ -177,15 +176,11 @@ class LAVAJob:
|
||||
self.status = "canceled"
|
||||
elif isinstance(exception, MesaCITimeoutError):
|
||||
self.status = "hung"
|
||||
elif isinstance(exception, MesaCIRetriableException):
|
||||
elif isinstance(exception, MesaCIException):
|
||||
self.status = "failed"
|
||||
elif isinstance(exception, KeyboardInterrupt):
|
||||
self.status = "interrupted"
|
||||
print_log("LAVA job submitter was interrupted. Cancelling the job.")
|
||||
raise
|
||||
elif isinstance(exception, MesaCIException):
|
||||
self.status = "interrupted"
|
||||
print_log("LAVA job submitter was interrupted. Cancelling the job.")
|
||||
raise
|
||||
else:
|
||||
self.status = "job_submitter_error"
|
||||
|
@@ -15,8 +15,6 @@ from lava.utils.uart_job_definition import (
|
||||
fastboot_deploy_actions,
|
||||
tftp_boot_action,
|
||||
tftp_deploy_actions,
|
||||
qemu_boot_action,
|
||||
qemu_deploy_actions,
|
||||
uart_test_actions,
|
||||
)
|
||||
|
||||
@@ -73,9 +71,6 @@ class LAVAJobDefinition:
|
||||
if args.boot_method == "fastboot":
|
||||
deploy_actions = fastboot_deploy_actions(self, nfsrootfs)
|
||||
boot_action = fastboot_boot_action(args)
|
||||
elif args.boot_method == "qemu-nfs":
|
||||
deploy_actions = qemu_deploy_actions(self, nfsrootfs)
|
||||
boot_action = qemu_boot_action(args)
|
||||
else: # tftp
|
||||
deploy_actions = tftp_deploy_actions(self, nfsrootfs)
|
||||
boot_action = tftp_boot_action(args)
|
||||
@@ -147,10 +142,6 @@ class LAVAJobDefinition:
|
||||
if self.job_submitter.lava_tags:
|
||||
values["tags"] = self.job_submitter.lava_tags.split(",")
|
||||
|
||||
# QEMU lava jobs mandate proper arch value in the context
|
||||
if self.job_submitter.boot_method == "qemu-nfs":
|
||||
values["context"]["arch"] = self.job_submitter.mesa_job_name.split(":")[1]
|
||||
|
||||
return values
|
||||
|
||||
def attach_kernel_and_dtb(self, deploy_field):
|
||||
@@ -193,7 +184,7 @@ class LAVAJobDefinition:
|
||||
"set +x # HIDE_START",
|
||||
f'echo -n "{jwt_file.read()}" > "{self.job_submitter.jwt_file}"',
|
||||
"set -x # HIDE_END",
|
||||
f'echo "export S3_JWT_FILE={self.job_submitter.jwt_file}" >> /set-job-env-vars.sh',
|
||||
f'echo "export CI_JOB_JWT_FILE={self.job_submitter.jwt_file}" >> /set-job-env-vars.sh',
|
||||
]
|
||||
else:
|
||||
download_steps += [
|
||||
@@ -212,13 +203,7 @@ class LAVAJobDefinition:
|
||||
# - exec .gitlab-ci/common/init-stage2.sh
|
||||
|
||||
with open(self.job_submitter.first_stage_init, "r") as init_sh:
|
||||
# For vmware farm, patch nameserver as 8.8.8.8 is off limit.
|
||||
# This is temporary and will be reverted once the farm is moved.
|
||||
if self.job_submitter.mesa_job_name.startswith("vmware-"):
|
||||
run_steps += [x.rstrip().replace("nameserver 8.8.8.8", "nameserver 10.25.198.110") for x in init_sh if not x.startswith("#") and x.rstrip()]
|
||||
else:
|
||||
run_steps += [x.rstrip() for x in init_sh if not x.startswith("#") and x.rstrip()]
|
||||
|
||||
# We cannot distribute the Adreno 660 shader firmware inside rootfs,
|
||||
# since the license isn't bundled inside the repository
|
||||
if self.job_submitter.device_type == "sm8350-hdk":
|
||||
|
@@ -82,24 +82,6 @@ def tftp_deploy_actions(job_definition: "LAVAJobDefinition", nfsrootfs) -> tuple
|
||||
return (tftp_deploy,)
|
||||
|
||||
|
||||
def qemu_deploy_actions(job_definition: "LAVAJobDefinition", nfsrootfs) -> tuple[dict[str, Any]]:
|
||||
args = job_definition.job_submitter
|
||||
qemu_deploy = {
|
||||
"timeout": {"minutes": 5},
|
||||
"to": "nfs",
|
||||
"images": {
|
||||
"kernel": {
|
||||
"image_arg": "-kernel {kernel}",
|
||||
"url": f"{args.kernel_url_prefix}/{args.kernel_image_name}",
|
||||
},
|
||||
"nfsrootfs": nfsrootfs,
|
||||
},
|
||||
}
|
||||
job_definition.attach_external_modules(qemu_deploy)
|
||||
|
||||
return (qemu_deploy,)
|
||||
|
||||
|
||||
def uart_test_actions(
|
||||
args: "LAVAJobSubmitter", init_stage1_steps: list[str], artifact_download_steps: list[str]
|
||||
) -> tuple[dict[str, Any]]:
|
||||
@@ -158,16 +140,6 @@ def tftp_boot_action(args: "LAVAJobSubmitter") -> dict[str, Any]:
|
||||
return tftp_boot
|
||||
|
||||
|
||||
def qemu_boot_action(args: "LAVAJobSubmitter") -> dict[str, Any]:
|
||||
qemu_boot = {
|
||||
"failure_retry": NUMBER_OF_ATTEMPTS_LAVA_BOOT,
|
||||
"method": args.boot_method,
|
||||
"prompts": ["lava-shell:"],
|
||||
}
|
||||
|
||||
return qemu_boot
|
||||
|
||||
|
||||
def fastboot_boot_action(args: "LAVAJobSubmitter") -> dict[str, Any]:
|
||||
fastboot_boot = {
|
||||
"timeout": {"minutes": 2},
|
||||
|
@@ -104,7 +104,7 @@ rm -rf _build
|
||||
meson setup _build \
|
||||
--native-file=native.file \
|
||||
--wrap-mode=nofallback \
|
||||
--force-fallback-for perfetto,syn,paste \
|
||||
--force-fallback-for perfetto,syn \
|
||||
${CROSS+--cross "$CROSS_FILE"} \
|
||||
-D prefix=$PWD/install \
|
||||
-D libdir=lib \
|
||||
|
@@ -13,7 +13,7 @@ INSTALL="$PWD/install"
|
||||
# Set up the driver environment.
|
||||
export LD_LIBRARY_PATH="$INSTALL/lib/"
|
||||
export EGL_PLATFORM=surfaceless
|
||||
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.${VK_CPU:-$(uname -m)}.json"
|
||||
export VK_ICD_FILENAMES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.${VK_CPU:-$(uname -m)}.json"
|
||||
|
||||
RESULTS=$PWD/${PIGLIT_RESULTS_DIR:-results}
|
||||
mkdir -p $RESULTS
|
||||
|
@@ -8,7 +8,7 @@ set -ex
|
||||
export PAGER=cat # FIXME: export everywhere
|
||||
|
||||
INSTALL=$(realpath -s "$PWD"/install)
|
||||
S3_ARGS="--token-file ${S3_JWT_FILE}"
|
||||
S3_ARGS="--token-file ${CI_JOB_JWT_FILE}"
|
||||
|
||||
RESULTS=$(realpath -s "$PWD"/results)
|
||||
mkdir -p "$RESULTS"
|
||||
@@ -54,7 +54,7 @@ if [ -n "${VK_DRIVER}" ]; then
|
||||
export DXVK_LOG="$RESULTS/dxvk"
|
||||
[ -d "$DXVK_LOG" ] || mkdir -pv "$DXVK_LOG"
|
||||
export DXVK_STATE_CACHE=0
|
||||
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.${VK_CPU:-$(uname -m)}.json"
|
||||
export VK_ICD_FILENAMES="$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
|
||||
@@ -117,7 +117,7 @@ else
|
||||
mkdir -p /tmp/.X11-unix
|
||||
|
||||
env \
|
||||
VK_DRIVER_FILES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$(uname -m).json" \
|
||||
VK_ICD_FILENAMES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$(uname -m).json" \
|
||||
weston -Bheadless-backend.so --use-gl -Swayland-0 --xwayland --idle-time=0 &
|
||||
|
||||
while [ ! -S "$WESTON_X11_SOCK" ]; do sleep 1; done
|
||||
@@ -189,15 +189,6 @@ RUN_CMD="export LD_LIBRARY_PATH=$__LD_LIBRARY_PATH; $SANITY_MESA_VERSION_CMD &&
|
||||
# run.
|
||||
rm -rf replayer-db
|
||||
|
||||
# ANGLE: download compiled ANGLE runtime and the compiled restricted traces (all-in-one package)
|
||||
if [ -n "$PIGLIT_REPLAY_ANGLE_TAG" ]; then
|
||||
ARCH="amd64"
|
||||
FILE="angle-bin-${ARCH}-${PIGLIT_REPLAY_ANGLE_TAG}.tar.zst"
|
||||
ci-fairy s3cp $S3_ARGS "https://s3.freedesktop.org/mesa-tracie-private/${FILE}" "${FILE}"
|
||||
mkdir -p replayer-db/angle
|
||||
tar --zstd -xf ${FILE} -C replayer-db/angle/
|
||||
fi
|
||||
|
||||
if ! eval $RUN_CMD;
|
||||
then
|
||||
printf "%s\n" "Found $(cat /tmp/version.txt), expected $MESA_VERSION"
|
||||
|
@@ -38,6 +38,7 @@ cp -Rp .gitlab-ci/fossilize-runner.sh install/
|
||||
cp -Rp .gitlab-ci/crosvm-init.sh install/
|
||||
cp -Rp .gitlab-ci/*.txt install/
|
||||
cp -Rp .gitlab-ci/report-flakes.py install/
|
||||
cp -Rp .gitlab-ci/valve install/
|
||||
cp -Rp .gitlab-ci/vkd3d-proton install/
|
||||
cp -Rp .gitlab-ci/setup-test-env.sh install/
|
||||
cp -Rp .gitlab-ci/*-runner.sh install/
|
||||
@@ -60,7 +61,7 @@ if [ -n "$S3_ARTIFACT_NAME" ]; then
|
||||
# Pass needed files to the test stage
|
||||
S3_ARTIFACT_NAME="$S3_ARTIFACT_NAME.tar.zst"
|
||||
zstd artifacts/install.tar -o ${S3_ARTIFACT_NAME}
|
||||
ci-fairy s3cp --token-file "${S3_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}
|
||||
ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}
|
||||
fi
|
||||
|
||||
section_end prepare-artifacts
|
||||
|
@@ -10,7 +10,7 @@ export LD_LIBRARY_PATH=$LIBDIR
|
||||
|
||||
cd /usr/local/shader-db
|
||||
|
||||
for driver in freedreno intel lima v3d vc4; do
|
||||
for driver in freedreno intel v3d vc4; do
|
||||
section_start shader-db-${driver} "Running shader-db for $driver"
|
||||
env LD_PRELOAD="$LIBDIR/lib${driver}_noop_drm_shim.so" \
|
||||
./run -j"${FDO_CI_CONCURRENT:-4}" ./shaders \
|
||||
|
@@ -14,14 +14,6 @@ function x_off {
|
||||
|
||||
# TODO: implement x_on !
|
||||
|
||||
export JOB_START_S=$(date -u +"%s" -d "${CI_JOB_STARTED_AT:?}")
|
||||
|
||||
function get_current_minsec {
|
||||
DATE_S=$(date -u +"%s")
|
||||
CURR_TIME=$((DATE_S-JOB_START_S))
|
||||
printf "%02d:%02d" $((CURR_TIME/60)) $((CURR_TIME%60))
|
||||
}
|
||||
|
||||
function error {
|
||||
x_off 2>/dev/null
|
||||
RED="\e[0;31m"
|
||||
@@ -29,7 +21,10 @@ function error {
|
||||
# we force the following to be not in a section
|
||||
section_end $CURRENT_SECTION
|
||||
|
||||
CURR_MINSEC=$(get_current_minsec)
|
||||
DATE_S=$(date -u +"%s")
|
||||
JOB_START_S=$(date -u +"%s" -d "${CI_JOB_STARTED_AT:?}")
|
||||
CURR_TIME=$((DATE_S-JOB_START_S))
|
||||
CURR_MINSEC="$(printf "%02d" $((CURR_TIME/60))):$(printf "%02d" $((CURR_TIME%60)))"
|
||||
echo -e "\n${RED}[${CURR_MINSEC}] ERROR: $*${ENDCOLOR}\n"
|
||||
[ "$state_x" -eq 0 ] || set -x
|
||||
}
|
||||
@@ -47,7 +42,10 @@ function build_section_start {
|
||||
CYAN="\e[0;36m"
|
||||
ENDCOLOR="\e[0m"
|
||||
|
||||
CURR_MINSEC=$(get_current_minsec)
|
||||
DATE_S=$(date -u +"%s")
|
||||
JOB_START_S=$(date -u +"%s" -d "${CI_JOB_STARTED_AT:?}")
|
||||
CURR_TIME=$((DATE_S-JOB_START_S))
|
||||
CURR_MINSEC="$(printf "%02d" $((CURR_TIME/60))):$(printf "%02d" $((CURR_TIME%60)))"
|
||||
echo -e "\n\e[0Ksection_start:$(date +%s):$section_name$section_params\r\e[0K${CYAN}[${CURR_MINSEC}] $*${ENDCOLOR}\n"
|
||||
}
|
||||
|
||||
@@ -89,7 +87,6 @@ function uncollapsed_section_switch {
|
||||
}
|
||||
|
||||
export -f x_off
|
||||
export -f get_current_minsec
|
||||
export -f error
|
||||
export -f trap_err
|
||||
export -f build_section_start
|
||||
|
@@ -227,10 +227,7 @@
|
||||
.lint-rustfmt-rules:
|
||||
rules:
|
||||
- !reference [.never-post-merge-rules, rules]
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
- changes:
|
||||
- .gitlab-ci.yml
|
||||
- .gitlab-ci/**/*
|
||||
- !reference [.core-rules, rules]
|
||||
# in merge pipeline, formatting checks are not allowed to fail
|
||||
- if: $GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
changes: &rust_file_list
|
||||
@@ -241,13 +238,3 @@
|
||||
- changes: *rust_file_list
|
||||
when: on_success
|
||||
allow_failure: true
|
||||
|
||||
# Rules for .mr-label-maker.yml
|
||||
.mr-label-maker-rules:
|
||||
rules:
|
||||
- !reference [.never-post-merge-rules, rules]
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
changes:
|
||||
- .mr-label-maker.yml
|
||||
when: on_success
|
||||
|
@@ -43,7 +43,7 @@ rustfmt:
|
||||
- rustfmt --verbose src/**/lib.rs
|
||||
- rustfmt --verbose src/**/main.rs
|
||||
|
||||
python-test:
|
||||
.test-check:
|
||||
# Cancel job if a newer commit is pushed to the same branch
|
||||
interruptible: true
|
||||
stage: code-validation
|
||||
@@ -52,6 +52,10 @@ python-test:
|
||||
variables:
|
||||
GIT_STRATEGY: fetch
|
||||
timeout: 10m
|
||||
|
||||
python-test:
|
||||
extends:
|
||||
- .test-check
|
||||
script:
|
||||
- cd bin/ci
|
||||
- pip install --break-system-packages -r test/requirements.txt
|
||||
@@ -59,18 +63,8 @@ python-test:
|
||||
rules:
|
||||
- !reference [.disable-farm-mr-rules, rules]
|
||||
- !reference [.never-post-merge-rules, rules]
|
||||
- if: $CI_PIPELINE_SOURCE == "schedule"
|
||||
when: on_success
|
||||
- if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_NAMESPACE == "mesa" && $GITLAB_USER_LOGIN != "marge-bot"
|
||||
when: on_success
|
||||
- if: $GITLAB_USER_LOGIN == "marge-bot"
|
||||
changes: &bin_ci_files
|
||||
- .gitlab-ci.yml
|
||||
- .gitlab-ci/**/*
|
||||
- changes:
|
||||
- bin/ci/**/*
|
||||
when: on_success
|
||||
- changes: *bin_ci_files
|
||||
when: manual
|
||||
|
||||
.test-gl:
|
||||
extends:
|
||||
@@ -158,7 +152,7 @@ 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}
|
||||
PIGLIT_REPLAY_EXTRA_ARGS: --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_bucket=mesa-tracie-public --jwt-file=${CI_JOB_JWT_FILE}
|
||||
# until we overcome Infrastructure issues, give traces extra 5 min before timeout
|
||||
DEVICE_HANGING_TIMEOUT_SEC: 600
|
||||
script:
|
||||
@@ -186,7 +180,11 @@ python-test:
|
||||
paths:
|
||||
- results/
|
||||
|
||||
.download_s3:
|
||||
.baremetal-test:
|
||||
extends:
|
||||
- .test
|
||||
# Cancel job if a newer commit is pushed to the same branch
|
||||
interruptible: true
|
||||
before_script:
|
||||
- !reference [default, before_script]
|
||||
# Use this instead of gitlab's artifacts download because it hits packet.net
|
||||
@@ -198,14 +196,6 @@ python-test:
|
||||
- rm -rf install
|
||||
- (set -x; curl -L --retry 4 -f --retry-all-errors --retry-delay 60 ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}.tar.zst | tar --zstd -x)
|
||||
- section_end artifacts_download
|
||||
|
||||
.baremetal-test:
|
||||
extends:
|
||||
- .test
|
||||
# Cancel job if a newer commit is pushed to the same branch
|
||||
interruptible: true
|
||||
before_script:
|
||||
- !reference [.download_s3, before_script]
|
||||
variables:
|
||||
BM_ROOTFS: /rootfs-${DEBIAN_ARCH}
|
||||
artifacts:
|
||||
@@ -407,7 +397,7 @@ python-test:
|
||||
reports:
|
||||
junit: results/**/junit.xml
|
||||
|
||||
.b2c-x86_64-test-vk:
|
||||
.b2c-test-vk:
|
||||
extends:
|
||||
- .use-debian/x86_64_test-vk
|
||||
- .b2c-test
|
||||
@@ -416,7 +406,7 @@ python-test:
|
||||
- debian-testing
|
||||
- !reference [.required-for-hardware-jobs, needs]
|
||||
|
||||
.b2c-x86_64-test-gl:
|
||||
.b2c-test-gl:
|
||||
extends:
|
||||
- .use-debian/x86_64_test-gl
|
||||
- .b2c-test
|
||||
|
@@ -15,7 +15,7 @@ from typing import Generator
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
from lava.exceptions import MesaCIException, MesaCIRetryError, MesaCIFatalException
|
||||
from lava.exceptions import MesaCIException, MesaCIRetryError
|
||||
from lava.lava_job_submitter import (
|
||||
DEVICE_HANGING_TIMEOUT_SEC,
|
||||
NUMBER_OF_RETRIES_TIMEOUT_DETECTION,
|
||||
@@ -24,7 +24,6 @@ from lava.lava_job_submitter import (
|
||||
bootstrap_log_follower,
|
||||
follow_job_execution,
|
||||
retriable_follow_job,
|
||||
wait_for_job_get_started,
|
||||
)
|
||||
from lava.utils import LogSectionType
|
||||
|
||||
@@ -84,7 +83,7 @@ def lava_job_submitter(
|
||||
def test_submit_and_follow_respects_exceptions(mock_sleep, mock_proxy, exception):
|
||||
with pytest.raises(MesaCIException):
|
||||
proxy = mock_proxy(side_effect=exception)
|
||||
job = LAVAJob(proxy, "")
|
||||
job = LAVAJob(proxy, '')
|
||||
log_follower = bootstrap_log_follower()
|
||||
follow_job_execution(job, log_follower)
|
||||
|
||||
@@ -166,13 +165,21 @@ PROXY_SCENARIOS = {
|
||||
mock_logs(result="pass"),
|
||||
does_not_raise(),
|
||||
"pass",
|
||||
{"testsuite_results": [generate_testsuite_result(result="pass")]},
|
||||
{
|
||||
"testsuite_results": [
|
||||
generate_testsuite_result(result="pass")
|
||||
]
|
||||
},
|
||||
),
|
||||
"no retries, but testsuite fails": (
|
||||
mock_logs(result="fail"),
|
||||
does_not_raise(),
|
||||
"fail",
|
||||
{"testsuite_results": [generate_testsuite_result(result="fail")]},
|
||||
{
|
||||
"testsuite_results": [
|
||||
generate_testsuite_result(result="fail")
|
||||
]
|
||||
},
|
||||
),
|
||||
"no retries, one testsuite fails": (
|
||||
generate_n_logs(n=1, tick_fn=0, result="fail"),
|
||||
@@ -181,7 +188,7 @@ PROXY_SCENARIOS = {
|
||||
{
|
||||
"testsuite_results": [
|
||||
generate_testsuite_result(result="fail"),
|
||||
generate_testsuite_result(result="pass"),
|
||||
generate_testsuite_result(result="pass")
|
||||
]
|
||||
},
|
||||
),
|
||||
@@ -258,27 +265,6 @@ def test_simulate_a_long_wait_to_start_a_job(
|
||||
assert delta_time.total_seconds() >= wait_time
|
||||
|
||||
|
||||
LONG_LAVA_QUEUE_SCENARIOS = {
|
||||
"no_time_to_run": (0, pytest.raises(MesaCIFatalException)),
|
||||
"enough_time_to_run": (9999999999, does_not_raise()),
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"job_timeout, expectation",
|
||||
LONG_LAVA_QUEUE_SCENARIOS.values(),
|
||||
ids=LONG_LAVA_QUEUE_SCENARIOS.keys(),
|
||||
)
|
||||
def test_wait_for_job_get_started_no_time_to_run(monkeypatch, job_timeout, expectation):
|
||||
monkeypatch.setattr("lava.lava_job_submitter.CI_JOB_TIMEOUT_SEC", job_timeout)
|
||||
job = MagicMock()
|
||||
# Make it escape the loop
|
||||
job.is_started.side_effect = (False, False, True)
|
||||
with expectation as e:
|
||||
wait_for_job_get_started(job, 1)
|
||||
if e:
|
||||
job.cancel.assert_called_with()
|
||||
|
||||
|
||||
CORRUPTED_LOG_SCENARIOS = {
|
||||
"too much subsequent corrupted data": (
|
||||
@@ -452,7 +438,9 @@ def test_job_combined_status(
|
||||
"lava.lava_job_submitter.retriable_follow_job"
|
||||
) as mock_retriable_follow_job, patch(
|
||||
"lava.lava_job_submitter.LAVAJobSubmitter._LAVAJobSubmitter__prepare_submission"
|
||||
) as mock_prepare_submission, patch("sys.exit"):
|
||||
) as mock_prepare_submission, patch(
|
||||
"sys.exit"
|
||||
):
|
||||
from lava.lava_job_submitter import STRUCTURAL_LOG
|
||||
|
||||
mock_retriable_follow_job.return_value = MagicMock(status=finished_job_status)
|
||||
|
87
.gitlab-ci/valve/traces-runner.sh
Executable file
87
.gitlab-ci/valve/traces-runner.sh
Executable file
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2086 # we want word splitting
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ -z "$VK_DRIVER" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Useful debug output, you rarely know what envirnoment you'll be
|
||||
# running in within container-land, this can be a landmark.
|
||||
ls -l
|
||||
|
||||
INSTALL=$(realpath -s "$PWD"/install)
|
||||
RESULTS=$(realpath -s "$PWD"/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
|
||||
# command.
|
||||
export __LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL/lib/"
|
||||
|
||||
# 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")
|
||||
|
||||
# Force the stdout and stderr streams to be unbuffered in python.
|
||||
export PYTHONUNBUFFERED=1
|
||||
|
||||
# Set the Vulkan driver to use.
|
||||
export VK_ICD_FILENAMES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.x86_64.json"
|
||||
if [ "${VK_DRIVER}" = "radeon" ]; then
|
||||
# Disable vsync
|
||||
export MESA_VK_WSI_PRESENT_MODE=mailbox
|
||||
export vblank_mode=0
|
||||
fi
|
||||
|
||||
# Set environment for Wine.
|
||||
export WINEDEBUG="-all"
|
||||
export WINEPREFIX="/dxvk-wine64"
|
||||
export WINEESYNC=1
|
||||
|
||||
# Wait for amdgpu to be fully loaded
|
||||
sleep 1
|
||||
|
||||
# Avoid having to perform nasty command pre-processing to insert the
|
||||
# wine executable in front of the test executables. Instead, use the
|
||||
# kernel's binfmt support to automatically use Wine as an interpreter
|
||||
# when asked to load PE executables.
|
||||
# TODO: Have boot2container mount this filesystem for all jobs?
|
||||
mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
|
||||
echo ':DOSWin:M::MZ::/usr/bin/wine64:' > /proc/sys/fs/binfmt_misc/register
|
||||
|
||||
# Set environment for DXVK.
|
||||
export DXVK_LOG_LEVEL="info"
|
||||
export DXVK_LOG="$RESULTS/dxvk"
|
||||
[ -d "$DXVK_LOG" ] || mkdir -pv "$DXVK_LOG"
|
||||
export DXVK_STATE_CACHE=0
|
||||
|
||||
# Set environment for replaying traces.
|
||||
export PATH="/apitrace-msvc-win64/bin:/gfxreconstruct/build/bin:$PATH"
|
||||
|
||||
SANITY_MESA_VERSION_CMD="vulkaninfo"
|
||||
|
||||
# Set up the Window System Interface (WSI)
|
||||
# TODO: Can we get away with GBM?
|
||||
if [ "${TEST_START_XORG:-0}" -eq 1 ]; then
|
||||
"$INSTALL"/common/start-x.sh "$INSTALL"
|
||||
export DISPLAY=:0
|
||||
fi
|
||||
|
||||
wine64 --version
|
||||
|
||||
SANITY_MESA_VERSION_CMD="$SANITY_MESA_VERSION_CMD | tee /tmp/version.txt | grep \"Mesa $MESA_VERSION\(\s\|$\)\""
|
||||
|
||||
RUN_CMD="export LD_LIBRARY_PATH=$__LD_LIBRARY_PATH; $SANITY_MESA_VERSION_CMD"
|
||||
|
||||
set +e
|
||||
if ! eval $RUN_CMD;
|
||||
then
|
||||
printf "%s\n" "Found $(cat /tmp/version.txt), expected $MESA_VERSION"
|
||||
fi
|
||||
set -e
|
||||
|
||||
# Just to be sure...
|
||||
chmod +x ./valvetraces-run.sh
|
||||
./valvetraces-run.sh
|
@@ -23,7 +23,7 @@ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL/lib/:/vkd3d-proton-tests/x64/"
|
||||
MESA_VERSION=$(sed 's/\./\\./g' "$INSTALL/VERSION")
|
||||
|
||||
# Set the Vulkan driver to use.
|
||||
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.x86_64.json"
|
||||
export VK_ICD_FILENAMES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.x86_64.json"
|
||||
|
||||
# Set environment for Wine.
|
||||
export WINEDEBUG="-all"
|
||||
|
@@ -7,10 +7,6 @@ COPY mesa_deps_vulkan_sdk.ps1 C:\
|
||||
RUN C:\mesa_deps_vulkan_sdk.ps1
|
||||
|
||||
COPY mesa_init_msvc.ps1 C:\
|
||||
|
||||
COPY mesa_deps_libva.ps1 C:\
|
||||
RUN C:\mesa_deps_libva.ps1
|
||||
|
||||
COPY mesa_deps_build.ps1 C:\
|
||||
RUN C:\mesa_deps_build.ps1
|
||||
|
||||
|
@@ -14,9 +14,6 @@ RUN C:\mesa_deps_rust.ps1
|
||||
|
||||
COPY mesa_init_msvc.ps1 C:\
|
||||
|
||||
COPY mesa_deps_libva.ps1 C:\
|
||||
RUN C:\mesa_deps_libva.ps1
|
||||
|
||||
COPY mesa_deps_test_piglit.ps1 C:\
|
||||
RUN C:\mesa_deps_test_piglit.ps1
|
||||
COPY mesa_deps_test_deqp.ps1 c:\
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# VK_DRIVER_FILES environment variable is not used when running with
|
||||
# VK_ICD_FILENAMES environment variable is not used when running with
|
||||
# elevated privileges. Add a key to the registry instead.
|
||||
$hkey_path = "HKLM:\SOFTWARE\Khronos\Vulkan\Drivers\"
|
||||
$hkey_name = Join-Path -Path $pwd -ChildPath "_install\share\vulkan\icd.d\dzn_icd.x86_64.json"
|
||||
|
@@ -84,6 +84,4 @@ Copy-Item ".\.gitlab-ci\windows\spirv2dxil_run.ps1" -Destination $installdir
|
||||
|
||||
Copy-Item ".\.gitlab-ci\windows\deqp_runner_run.ps1" -Destination $installdir
|
||||
|
||||
Copy-Item ".\.gitlab-ci\windows\vainfo_run.ps1" -Destination $installdir
|
||||
|
||||
Get-ChildItem -Recurse -Filter "ci" | Get-ChildItem -Include "*.txt","*.toml" | Copy-Item -Destination $installdir
|
||||
|
@@ -12,7 +12,7 @@ $depsInstallPath="C:\mesa-deps"
|
||||
|
||||
Get-Date
|
||||
Write-Host "Cloning DirectX-Headers"
|
||||
git clone -b v1.613.1 --depth=1 https://github.com/microsoft/DirectX-Headers deps/DirectX-Headers
|
||||
git clone -b v1.611.0 --depth=1 https://github.com/microsoft/DirectX-Headers deps/DirectX-Headers
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone DirectX-Headers repository"
|
||||
Exit 1
|
||||
@@ -32,17 +32,16 @@ if (!$buildstatus) {
|
||||
|
||||
Get-Date
|
||||
Write-Host "Cloning zlib"
|
||||
git clone -b v1.3.1 --depth=1 https://github.com/madler/zlib deps/zlib
|
||||
git clone -b v1.2.13 --depth=1 https://github.com/madler/zlib deps/zlib
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone zlib repository"
|
||||
Exit 1
|
||||
}
|
||||
Write-Host "Downloading zlib meson build files"
|
||||
Invoke-WebRequest -Uri "https://wrapdb.mesonbuild.com/v2/zlib_1.3.1-1/get_patch" -OutFile deps/zlib.zip
|
||||
Invoke-WebRequest -Uri "https://wrapdb.mesonbuild.com/v2/zlib_1.2.13-1/get_patch" -OutFile deps/zlib.zip
|
||||
Expand-Archive -Path deps/zlib.zip -Destination deps/zlib
|
||||
# Wrap archive puts build files in a version subdir
|
||||
robocopy deps/zlib/zlib-1.3.1 deps/zlib /E
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path deps/zlib/zlib-1.3.1
|
||||
Move-Item deps/zlib/zlib-1.2.13/* deps/zlib
|
||||
$zlib_build = New-Item -ItemType Directory -Path ".\deps\zlib" -Name "build"
|
||||
Push-Location -Path $zlib_build.FullName
|
||||
meson .. --backend=ninja -Dprefix="$depsInstallPath" --default-library=static --buildtype=release -Db_vscrt=mt && `
|
||||
@@ -55,6 +54,35 @@ if (!$buildstatus) {
|
||||
Exit 1
|
||||
}
|
||||
|
||||
|
||||
Get-Date
|
||||
Write-Host "Cloning libva"
|
||||
git clone https://github.com/intel/libva.git deps/libva
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone libva repository"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Push-Location -Path ".\deps\libva"
|
||||
Write-Host "Checking out libva df3c584bb79d1a1e521372d62fa62e8b1c52ce6c"
|
||||
# libva-win32 is released with libva version 2.17 (see https://github.com/intel/libva/releases/tag/2.17.0)
|
||||
git checkout 2.17.0
|
||||
Pop-Location
|
||||
|
||||
Write-Host "Building libva"
|
||||
# libva already has a build dir in their repo, use builddir instead
|
||||
$libva_build = New-Item -ItemType Directory -Path ".\deps\libva" -Name "builddir"
|
||||
Push-Location -Path $libva_build.FullName
|
||||
meson .. -Dprefix="$depsInstallPath"
|
||||
ninja -j32 install
|
||||
$buildstatus = $?
|
||||
Pop-Location
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $libva_build
|
||||
if (!$buildstatus) {
|
||||
Write-Host "Failed to compile libva"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Get-Date
|
||||
Write-Host "Cloning LLVM release/15.x"
|
||||
git clone -b release/15.x --depth=1 https://github.com/llvm/llvm-project deps/llvm-project
|
||||
|
@@ -8,7 +8,7 @@ $depsInstallPath="C:\mesa-deps"
|
||||
|
||||
Write-Host "Downloading DirectX 12 Agility SDK at:"
|
||||
Get-Date
|
||||
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D3D12/1.613.2 -OutFile 'agility.zip'
|
||||
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D3D12/1.610.2 -OutFile 'agility.zip'
|
||||
Expand-Archive -Path 'agility.zip' -DestinationPath 'C:\agility'
|
||||
# Copy Agility SDK into mesa-deps\bin\D3D12
|
||||
New-Item -ErrorAction SilentlyContinue -ItemType Directory -Path $depsInstallPath\bin -Name 'D3D12'
|
||||
@@ -18,7 +18,7 @@ Remove-Item -Recurse 'C:\agility'
|
||||
|
||||
Write-Host "Downloading Updated WARP at:"
|
||||
Get-Date
|
||||
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.WARP/1.0.11 -OutFile 'warp.zip'
|
||||
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.WARP/1.0.9 -OutFile 'warp.zip'
|
||||
Expand-Archive -Path 'warp.zip' -DestinationPath 'C:\warp'
|
||||
# Copy WARP into mesa-deps\bin
|
||||
Copy-Item 'C:\warp\build\native\amd64\d3d10warp.dll' -Destination $depsInstallPath\bin
|
||||
@@ -27,7 +27,7 @@ Remove-Item -Recurse 'C:\warp'
|
||||
|
||||
Write-Host "Downloading DirectXShaderCompiler release at:"
|
||||
Get-Date
|
||||
Invoke-WebRequest -Uri https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.8.2403/dxc_2024_03_07.zip -OutFile 'DXC.zip'
|
||||
Invoke-WebRequest -Uri https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.7.2207/dxc_2022_07_18.zip -OutFile 'DXC.zip'
|
||||
Expand-Archive -Path 'DXC.zip' -DestinationPath 'C:\DXC'
|
||||
# No more need to get dxil.dll from the VS install
|
||||
Copy-Item 'C:\DXC\bin\x64\*.dll' -Destination 'C:\Windows\System32'
|
||||
|
@@ -1,79 +0,0 @@
|
||||
# Compiling libva/libva-utils deps
|
||||
|
||||
$ProgressPreference = "SilentlyContinue"
|
||||
$MyPath = $MyInvocation.MyCommand.Path | Split-Path -Parent
|
||||
. "$MyPath\mesa_init_msvc.ps1"
|
||||
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "deps" | Out-Null
|
||||
$depsInstallPath="C:\mesa-deps"
|
||||
|
||||
Write-Host "Cloning libva at:"
|
||||
Get-Date
|
||||
git clone https://github.com/intel/libva.git deps/libva
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone libva repository"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Write-Host "Cloning libva finished at:"
|
||||
Get-Date
|
||||
|
||||
Write-Host "Building libva at:"
|
||||
Get-Date
|
||||
|
||||
Push-Location -Path ".\deps\libva"
|
||||
Write-Host "Checking out libva..."
|
||||
git checkout 2.21.0
|
||||
Pop-Location
|
||||
|
||||
# libva already has a build dir in their repo, use builddir instead
|
||||
$libva_build = New-Item -ItemType Directory -Path ".\deps\libva" -Name "builddir"
|
||||
Push-Location -Path $libva_build.FullName
|
||||
meson .. -Dprefix="$depsInstallPath"
|
||||
ninja -j32 install
|
||||
$buildstatus = $?
|
||||
Pop-Location
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $libva_build
|
||||
if (!$buildstatus) {
|
||||
Write-Host "Failed to compile libva"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Write-Host "Building libva finished at:"
|
||||
Get-Date
|
||||
|
||||
Write-Host "Cloning libva-utils at:"
|
||||
Get-Date
|
||||
git clone https://github.com/intel/libva-utils.git deps/libva-utils
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone libva-utils repository"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Write-Host "Cloning libva-utils finished at:"
|
||||
Get-Date
|
||||
|
||||
Write-Host "Building libva-utils at:"
|
||||
Get-Date
|
||||
|
||||
Push-Location -Path ".\deps\libva-utils"
|
||||
Write-Host "Checking out libva-utils..."
|
||||
git checkout 2.21.0
|
||||
Pop-Location
|
||||
|
||||
Write-Host "Building libva-utils"
|
||||
# libva-utils already has a build dir in their repo, use builddir instead
|
||||
$libva_utils_build = New-Item -ItemType Directory -Path ".\deps\libva-utils" -Name "builddir"
|
||||
Push-Location -Path $libva_utils_build.FullName
|
||||
meson .. -Dprefix="$depsInstallPath" --pkg-config-path="$depsInstallPath\lib\pkgconfig;$depsInstallPath\share\pkgconfig"
|
||||
ninja -j32 install
|
||||
$buildstatus = $?
|
||||
Pop-Location
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $libva_utils_build
|
||||
if (!$buildstatus) {
|
||||
Write-Host "Failed to compile libva-utils"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Write-Host "Building libva-utils finished at:"
|
||||
Get-Date
|
@@ -1,99 +0,0 @@
|
||||
|
||||
function Deploy-Dependencies {
|
||||
param (
|
||||
[string] $deploy_directory
|
||||
)
|
||||
|
||||
Write-Host "Copying libva runtime and driver at:"
|
||||
Get-Date
|
||||
|
||||
# Copy the VA runtime binaries from the mesa built dependencies so the versions match with the built mesa VA driver binary
|
||||
$depsInstallPath="C:\mesa-deps"
|
||||
Copy-Item "$depsInstallPath\bin\vainfo.exe" -Destination "$deploy_directory\vainfo.exe"
|
||||
Copy-Item "$depsInstallPath\bin\va_win32.dll" -Destination "$deploy_directory\va_win32.dll"
|
||||
Copy-Item "$depsInstallPath\bin\va.dll" -Destination "$deploy_directory\va.dll"
|
||||
|
||||
# Copy Agility SDK into D3D12 subfolder of vainfo
|
||||
New-Item -ItemType Directory -Force -Path "$deploy_directory\D3D12" | Out-Null
|
||||
Copy-Item "$depsInstallPath\bin\D3D12\D3D12Core.dll" -Destination "$deploy_directory\D3D12\D3D12Core.dll"
|
||||
Copy-Item "$depsInstallPath\bin\D3D12\d3d12SDKLayers.dll" -Destination "$deploy_directory\D3D12\d3d12SDKLayers.dll"
|
||||
|
||||
# Copy WARP next to vainfo
|
||||
Copy-Item "$depsInstallPath\bin\d3d10warp.dll" -Destination "$deploy_directory\d3d10warp.dll"
|
||||
|
||||
Write-Host "Copying libva runtime and driver finished at:"
|
||||
Get-Date
|
||||
}
|
||||
|
||||
function Check-VAInfo-Entrypoint {
|
||||
param (
|
||||
[string] $vainfo_app_path,
|
||||
[string] $entrypoint
|
||||
)
|
||||
|
||||
$vainfo_run_cmd = "$vainfo_app_path --display win32 --device 0 2>&1 | Select-String $entrypoint -Quiet"
|
||||
Write-Host "Running: $vainfo_run_cmd"
|
||||
$vainfo_ret_code= Invoke-Expression $vainfo_run_cmd
|
||||
if (-not($vainfo_ret_code)) {
|
||||
return 0
|
||||
}
|
||||
return 1
|
||||
}
|
||||
|
||||
# Set testing environment variables
|
||||
$successful_run=1
|
||||
$testing_dir="$PWD\_install\bin" # vaon12_drv_video.dll is placed on this directory by the build
|
||||
$vainfo_app_path = "$testing_dir\vainfo.exe"
|
||||
|
||||
# Deploy vainfo and dependencies
|
||||
Deploy-Dependencies -deploy_directory $testing_dir
|
||||
|
||||
# Set VA runtime environment variables
|
||||
$env:LIBVA_DRIVER_NAME="vaon12"
|
||||
$env:LIBVA_DRIVERS_PATH="$testing_dir"
|
||||
|
||||
Write-Host "LIBVA_DRIVER_NAME: $env:LIBVA_DRIVER_NAME"
|
||||
Write-Host "LIBVA_DRIVERS_PATH: $env:LIBVA_DRIVERS_PATH"
|
||||
|
||||
# Check video processing entrypoint is supported
|
||||
# Inbox WARP/D3D12 supports this entrypoint with VA frontend shaders support (e.g no video APIs support required)
|
||||
$entrypoint = "VAEntrypointVideoProc"
|
||||
|
||||
# First run without app verifier
|
||||
Write-Host "Disabling appverifier for $vainfo_app_path and checking for the presence of $entrypoint supported..."
|
||||
appverif.exe /disable * -for "$vainfo_app_path"
|
||||
$result_without_appverifier = Check-VAInfo-Entrypoint -vainfo_app_path $vainfo_app_path -entrypoint $entrypoint
|
||||
if ($result_without_appverifier -eq 1) {
|
||||
Write-Host "Process exited successfully."
|
||||
} else {
|
||||
$successful_run=0
|
||||
Write-Error "Process exit not successful for $vainfo_run_cmd. Please see vainfo verbose output below for diagnostics..."
|
||||
# verbose run to print more info on error (helpful to investigate issues from the CI output)
|
||||
Invoke-Expression "$vainfo_app_path -a --display win32 --device help"
|
||||
Invoke-Expression "$vainfo_app_path -a --display win32 --device 0"
|
||||
}
|
||||
|
||||
# Enable appverif and run again
|
||||
Write-Host "Enabling appverifier for $vainfo_app_path and checking for the presence of $entrypoint supported..."
|
||||
appverif.exe /logtofile enable
|
||||
appverif.exe /verify "$vainfo_app_path"
|
||||
appverif.exe /enable "Leak" -for "$vainfo_app_path"
|
||||
$verifier_log_path="$testing_dir\vainfo_appverif_log.xml"
|
||||
$result_with_appverifier = Check-VAInfo-Entrypoint -vainfo_app_path $vainfo_app_path -entrypoint $entrypoint
|
||||
if ($result_with_appverifier -eq 1) {
|
||||
Write-Host "Process exited successfully."
|
||||
appverif.exe /logtofile disable
|
||||
} else {
|
||||
Write-Host "Process failed. Please see Application Verifier log contents below."
|
||||
# Need to wait for appverif to exit before gathering log
|
||||
Start-Process -Wait -FilePath "appverif.exe" -ArgumentList "-export", "log", "-for", "$vainfo_app_path", "-with", "to=$verifier_log_path"
|
||||
Get-Content $verifier_log_path
|
||||
Write-Error "Process exit not successful for $vainfo_run_cmd."
|
||||
appverif.exe /logtofile disable
|
||||
$successful_run=0
|
||||
}
|
||||
|
||||
if ($successful_run -ne 1) {
|
||||
Exit 1
|
||||
}
|
||||
|
@@ -88,7 +88,7 @@ issues:
|
||||
'bisected': 'bisected'
|
||||
'coverity': 'coverity'
|
||||
'deqp': 'deqp'
|
||||
'feature request': 'feature request'
|
||||
'feature request': 'feature_request'
|
||||
'haiku' : 'haiku'
|
||||
'regression': 'regression'
|
||||
|
||||
@@ -113,11 +113,8 @@ merge_requests:
|
||||
paths:
|
||||
'^.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.yml' : ['CI']
|
||||
'^.*/ci/' : ['CI']
|
||||
'^.gitlab-ci/windows/' : ['Windows']
|
||||
'^bin/__init__.py$' : ['maintainer-scripts']
|
||||
'^bin/gen_release_notes' : ['maintainer-scripts']
|
||||
|
31612
.pick_status.json
31612
.pick_status.json
File diff suppressed because it is too large
Load Diff
@@ -289,8 +289,7 @@ def parse_args() -> None:
|
||||
parser.add_argument(
|
||||
"--target",
|
||||
metavar="target-job",
|
||||
help="Target job regex. For multiple targets, pass multiple values, "
|
||||
"eg. `--target foo bar`.",
|
||||
help="Target job regex. For multiple targets, separate with pipe | character",
|
||||
required=True,
|
||||
nargs=argparse.ONE_OR_MORE,
|
||||
)
|
||||
|
@@ -1,26 +0,0 @@
|
||||
# For performance reasons we don't use a lock here and reading
|
||||
# a stale value is of no consequence
|
||||
fun:util_queue_fence_is_signalled
|
||||
# We also have to blacklist this function, because otherwise tsan will
|
||||
# still report the unlocked read above
|
||||
fun:util_queue_fence_signal
|
||||
|
||||
# lavapipe:
|
||||
# Same as above for perf reasons the fence signal value is is read without
|
||||
# lock
|
||||
fun:lp_fence_signalled
|
||||
fun:lp_fence_signal
|
||||
|
||||
# gallium/tc
|
||||
# Keeping track of tc->last_completed is an optimization and it is of no
|
||||
# consequence to read a stale value there, so surpress the warning about the
|
||||
# race condition
|
||||
fun:tc_batch_execute
|
||||
|
||||
# This is a debug feature and ATM it is simpler to surpress the race warning
|
||||
fun:tc_set_driver_thread
|
||||
|
||||
# vulkan/runtime
|
||||
# Even with the data race the returned value is always the same
|
||||
fun:get_max_abs_timeout_ns
|
||||
|
@@ -1,80 +0,0 @@
|
||||
Name
|
||||
|
||||
MESA_x11_native_visual_id
|
||||
|
||||
Name Strings
|
||||
|
||||
EGL_MESA_x11_native_visual_id
|
||||
|
||||
Contact
|
||||
|
||||
Eric Engestrom <eric@engestrom.ch>
|
||||
|
||||
Status
|
||||
|
||||
Complete, shipping.
|
||||
|
||||
Version
|
||||
|
||||
Version 2, May 10, 2024
|
||||
|
||||
Number
|
||||
|
||||
EGL Extension #TBD
|
||||
|
||||
Extension Type
|
||||
|
||||
EGL display extension
|
||||
|
||||
Dependencies
|
||||
|
||||
None. This extension is written against the
|
||||
wording of the EGL 1.5 specification.
|
||||
|
||||
Overview
|
||||
|
||||
This extension allows EGL_NATIVE_VISUAL_ID to be used in
|
||||
eglChooseConfig() for a display of type EGL_PLATFORM_X11_EXT.
|
||||
|
||||
IP Status
|
||||
|
||||
Open-source; freely implementable.
|
||||
|
||||
New Types
|
||||
|
||||
None
|
||||
|
||||
New Procedures and Functions
|
||||
|
||||
None
|
||||
|
||||
New Tokens
|
||||
|
||||
None
|
||||
|
||||
In section 3.4.1.1 "Selection of EGLConfigs" of the EGL 1.5
|
||||
Specification, replace:
|
||||
|
||||
If EGL_MAX_PBUFFER_WIDTH, EGL_MAX_PBUFFER_HEIGHT,
|
||||
EGL_MAX_PBUFFER_PIXELS, or EGL_NATIVE_VISUAL_ID are specified in
|
||||
attrib list, then they are ignored [...]
|
||||
|
||||
with:
|
||||
|
||||
If EGL_MAX_PBUFFER_WIDTH, EGL_MAX_PBUFFER_HEIGHT,
|
||||
or EGL_MAX_PBUFFER_PIXELS are specified in attrib list, then they
|
||||
are ignored [...]. EGL_NATIVE_VISUAL_ID is ignored except on
|
||||
a display of type EGL_PLATFORM_X11_EXT when EGL_ALPHA_SIZE is
|
||||
greater than zero.
|
||||
|
||||
Issues
|
||||
|
||||
None.
|
||||
|
||||
Revision History
|
||||
|
||||
Version 1, March 27, 2024 (Eric Engestrom)
|
||||
Initial draft
|
||||
Version 2, May 10, 2024 (David Heidelberg)
|
||||
add EGL_ALPHA_SIZE condition
|
||||
add Extension type and set it to display extension
|
@@ -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",
|
||||
(
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user