mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2024-12-03 23:24:17 +08:00
6f9b9b01c1
This brings in new msm UAPI that we'd like to be testing in turnip. Unfortunately, a530 became flaky across dEQP and piglit. It seems that a GPU hang from a test that we expect to hang will cause a followup hangcheck affecting innocent tests. For example: 22-09-19 18:53:22 R SERIAL> [ 348.839188] msm_mdp 901000.mdp: [drm:a5xx_irq] *ERROR* gpu fault ring 0 fence ff55 status C10001C3 rb 084a/084a ib1 000000000105A000/0000 ib2 000000000105B000/0000 22-09-19 18:53:22 R SERIAL> [ 348.839272] msm_mdp 901000.mdp: [drm:recover_worker] *ERROR* A530: hangcheck recover! 22-09-19 18:53:22 R SERIAL> [ 348.852698] msm_mdp 901000.mdp: [drm:recover_worker] *ERROR* A530: offending task: shader_run:sq0 (/piglit/bin/shader_runner tests/spec/glsl-1.30/execution/clipping/vs-clip-distance-enables.shader_test -auto -fbo) 22-09-19 18:53:22 R SERIAL> [ 348.868680] msm_mdp 901000.mdp: [drm:a5xx_irq] *ERROR* gpu fault ring 0 fence ff55 status C10001C3 rb 084a/084a ib1 000000000105A000/0000 ib2 000000000105B000/0000 22-09-19 18:53:22 R SERIAL> [ 348.879586] msm_mdp 901000.mdp: [drm:recover_worker] *ERROR* A530: hangcheck recover! [...] 22-09-19 18:53:23 R SERIAL> ERROR - Test spec@glsl-1.10@execution@algebraic@glsl-algebraic-logicand-false: Fail: See "//results/piglit.spec@glsl-1.10@execution@algebraic@glsl-algebraic-logicand-false.log" As a result, I've moved a530 to test-manual-mr until it can be stabilized again. This updated kernel also brings in a couple of regression fixes for nouveau gk20a and gm20b. Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Acked-by: Rob Clark <robdclark@chromium.org> Acked-by: David Heidelberg <david.heidelberg@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18624>
461 lines
13 KiB
YAML
461 lines
13 KiB
YAML
# Docker image tag helper templates
|
|
|
|
.incorporate-templates-commit:
|
|
variables:
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.incorporate-base-tag+templates-commit:
|
|
variables:
|
|
FDO_BASE_IMAGE: "${CI_REGISTRY_IMAGE}/${MESA_BASE_IMAGE}:${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.set-image:
|
|
extends:
|
|
- .incorporate-templates-commit
|
|
variables:
|
|
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
|
|
image: "$MESA_IMAGE"
|
|
|
|
.set-image-base-tag:
|
|
extends:
|
|
- .set-image
|
|
- .incorporate-base-tag+templates-commit
|
|
variables:
|
|
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
|
|
|
|
.use-wine:
|
|
variables:
|
|
WINEPATH: "/usr/x86_64-w64-mingw32/bin;/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/10-posix;c:/windows;c:/windows/system32"
|
|
|
|
# Build the CI docker images.
|
|
#
|
|
# MESA_IMAGE_TAG is the tag of the docker image used by later stage jobs. If the
|
|
# image doesn't exist yet, the container stage job generates it.
|
|
#
|
|
# In order to generate a new image, one should generally change the tag.
|
|
# While removing the image from the registry would also work, that's not
|
|
# recommended except for ephemeral images during development: Replacing
|
|
# an image after a significant amount of time might pull in newer
|
|
# versions of gcc/clang or other packages, which might break the build
|
|
# with older commits using the same tag.
|
|
#
|
|
# After merging a change resulting in generating a new image to the
|
|
# main repository, it's recommended to remove the image from the source
|
|
# repository's container registry, so that the image from the main
|
|
# repository's registry will be used there as well.
|
|
|
|
.container:
|
|
stage: container
|
|
extends:
|
|
- .container-rules
|
|
- .incorporate-templates-commit
|
|
- .use-wine
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: bullseye-slim
|
|
FDO_REPO_SUFFIX: $CI_JOB_NAME
|
|
FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
|
|
# no need to pull the whole repo to build the container image
|
|
GIT_STRATEGY: none
|
|
|
|
.use-base-image:
|
|
extends:
|
|
- .container
|
|
- .incorporate-base-tag+templates-commit
|
|
# Don't want the .container rules
|
|
- .build-rules
|
|
|
|
# Debian 11 based x86 build image base
|
|
debian/x86_build-base:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .container
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_build-base ${DEBIAN_BASE_TAG}
|
|
|
|
.use-debian/x86_build-base:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .use-base-image
|
|
variables:
|
|
MESA_BASE_IMAGE: ${DEBIAN_X86_BUILD_BASE_IMAGE}
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_ARTIFACTS_BASE_TAG: *debian-x86_build-base
|
|
needs:
|
|
- debian/x86_build-base
|
|
|
|
# Debian 11 based x86 main build image
|
|
debian/x86_build:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_build ${DEBIAN_BUILD_TAG}
|
|
|
|
.use-debian/x86_build:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_IMAGE_PATH: ${DEBIAN_X86_BUILD_IMAGE_PATH}
|
|
MESA_IMAGE_TAG: *debian-x86_build
|
|
needs:
|
|
- debian/x86_build
|
|
|
|
# Debian 11 based i386 cross-build image
|
|
debian/i386_build:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-i386_build ${DEBIAN_BUILD_TAG}
|
|
|
|
.use-debian/i386_build:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_IMAGE_PATH: "debian/i386_build"
|
|
MESA_IMAGE_TAG: *debian-i386_build
|
|
needs:
|
|
- debian/i386_build
|
|
|
|
# Debian 11 based x86-mingw cross main build image
|
|
debian/x86_build-mingw:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_build_mingw ${DEBIAN_BUILD_MINGW_TAG}
|
|
|
|
.use-debian/x86_build_mingw:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_IMAGE_PATH: ${DEBIAN_X86_BUILD_MINGW_IMAGE_PATH}
|
|
MESA_IMAGE_TAG: *debian-x86_build_mingw
|
|
needs:
|
|
- debian/x86_build-mingw
|
|
|
|
# Debian 11 based ppc64el cross-build image
|
|
debian/ppc64el_build:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-ppc64el_build ${DEBIAN_BUILD_TAG}
|
|
|
|
.use-debian/ppc64el_build:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_IMAGE_PATH: "debian/ppc64el_build"
|
|
MESA_IMAGE_TAG: *debian-ppc64el_build
|
|
needs:
|
|
- debian/ppc64el_build
|
|
|
|
# Debian 11 based s390x cross-build image
|
|
debian/s390x_build:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-s390x_build ${DEBIAN_BUILD_TAG}
|
|
|
|
.use-debian/s390x_build:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_IMAGE_PATH: "debian/s390x_build"
|
|
MESA_IMAGE_TAG: *debian-s390x_build
|
|
needs:
|
|
- debian/s390x_build
|
|
|
|
# Android NDK cross-build image
|
|
debian/android_build:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-android_build ${DEBIAN_BUILD_TAG}
|
|
|
|
.use-debian/android_build:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_IMAGE_PATH: "debian/android_build"
|
|
MESA_IMAGE_TAG: *debian-android_build
|
|
needs:
|
|
- debian/android_build
|
|
|
|
# Debian 11 based x86 test image base
|
|
debian/x86_test-base:
|
|
extends: debian/x86_build-base
|
|
variables:
|
|
KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v5.19-for-mesa-ci-d4efddaec194/linux-v5.17-for-mesa-ci-b78f7870d97b.tar.bz2"
|
|
MESA_IMAGE_TAG: &debian-x86_test-base ${DEBIAN_BASE_TAG}
|
|
|
|
.use-debian/x86_test-base:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .use-base-image
|
|
variables:
|
|
MESA_BASE_IMAGE: ${DEBIAN_X86_TEST_BASE_IMAGE}
|
|
MESA_BASE_TAG: *debian-x86_test-base
|
|
needs:
|
|
- debian/x86_test-base
|
|
|
|
# Debian 11 based x86 test image for GL
|
|
debian/x86_test-gl:
|
|
extends: .use-debian/x86_test-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_test-gl ${DEBIAN_X86_TEST_GL_TAG}
|
|
|
|
.use-debian/x86_test-gl:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_test-base
|
|
MESA_IMAGE_PATH: ${DEBIAN_X86_TEST_IMAGE_PATH}
|
|
MESA_IMAGE_TAG: *debian-x86_test-gl
|
|
needs:
|
|
- debian/x86_test-gl
|
|
|
|
# Debian 11 based x86 test image for VK
|
|
debian/x86_test-vk:
|
|
extends: .use-debian/x86_test-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_test-vk ${DEBIAN_X86_TEST_VK_TAG}
|
|
|
|
.use-debian/x86_test-vk:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_test-base
|
|
MESA_IMAGE_PATH: "debian/x86_test-vk"
|
|
MESA_IMAGE_TAG: *debian-x86_test-vk
|
|
needs:
|
|
- debian/x86_test-vk
|
|
|
|
# Debian 11 based ARM build image
|
|
debian/arm_build:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .container
|
|
tags:
|
|
- aarch64
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-arm_build ${DEBIAN_BASE_TAG}
|
|
|
|
.use-debian/arm_build:
|
|
extends:
|
|
- .set-image
|
|
variables:
|
|
MESA_IMAGE_PATH: "debian/arm_build"
|
|
MESA_IMAGE_TAG: *debian-arm_build
|
|
MESA_ARTIFACTS_TAG: *debian-arm_build
|
|
needs:
|
|
- debian/arm_build
|
|
|
|
|
|
# Fedora 34 based x86 build image
|
|
fedora/x86_build:
|
|
extends:
|
|
- .fdo.container-build@fedora
|
|
- .container
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: 34
|
|
MESA_IMAGE_TAG: &fedora-x86_build ${FEDORA_X86_BUILD_TAG}
|
|
|
|
.use-fedora/x86_build:
|
|
extends:
|
|
- .set-image
|
|
variables:
|
|
MESA_IMAGE_PATH: "fedora/x86_build"
|
|
MESA_IMAGE_TAG: *fedora-x86_build
|
|
needs:
|
|
- fedora/x86_build
|
|
|
|
|
|
.kernel+rootfs:
|
|
extends:
|
|
- .build-rules
|
|
stage: container
|
|
variables:
|
|
GIT_STRATEGY: fetch
|
|
KERNEL_URL: *kernel-rootfs-url
|
|
MESA_ROOTFS_TAG: &kernel-rootfs ${KERNEL_ROOTFS_TAG}
|
|
DISTRIBUTION_TAG: &distribution-tag-arm "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
script:
|
|
- .gitlab-ci/container/lava_build.sh
|
|
|
|
kernel+rootfs_amd64:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
- .kernel+rootfs
|
|
image: "$FDO_BASE_IMAGE"
|
|
variables:
|
|
DEBIAN_ARCH: "amd64"
|
|
DISTRIBUTION_TAG: &distribution-tag-amd64 "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
kernel+rootfs_arm64:
|
|
extends:
|
|
- .use-debian/arm_build
|
|
- .kernel+rootfs
|
|
tags:
|
|
- aarch64
|
|
variables:
|
|
DEBIAN_ARCH: "arm64"
|
|
|
|
kernel+rootfs_armhf:
|
|
extends:
|
|
- kernel+rootfs_arm64
|
|
variables:
|
|
DEBIAN_ARCH: "armhf"
|
|
|
|
# Cannot use anchors defined here from included files, so use extends: instead
|
|
.use-kernel+rootfs-arm:
|
|
variables:
|
|
DISTRIBUTION_TAG: *distribution-tag-arm
|
|
MESA_ROOTFS_TAG: *kernel-rootfs
|
|
|
|
.use-kernel+rootfs-amd64:
|
|
variables:
|
|
DISTRIBUTION_TAG: *distribution-tag-amd64
|
|
MESA_ROOTFS_TAG: *kernel-rootfs
|
|
|
|
# x86 image with ARM64 & armhf kernel & rootfs for baremetal testing
|
|
debian/arm_test:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .container
|
|
# Don't want the .container rules
|
|
- .build-rules
|
|
needs:
|
|
- kernel+rootfs_arm64
|
|
- kernel+rootfs_armhf
|
|
variables:
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
ARTIFACTS_PREFIX: "https://${MINIO_HOST}/mesa-lava"
|
|
ARTIFACTS_SUFFIX: "${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
MESA_ARM_BUILD_TAG: *debian-arm_build
|
|
MESA_IMAGE_TAG: &debian-arm_test ${DEBIAN_BASE_TAG}
|
|
MESA_ROOTFS_TAG: *kernel-rootfs
|
|
|
|
.use-debian/arm_test:
|
|
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
variables:
|
|
MESA_ARM_BUILD_TAG: *debian-arm_build
|
|
MESA_IMAGE_PATH: "debian/arm_test"
|
|
MESA_IMAGE_TAG: *debian-arm_test
|
|
MESA_ROOTFS_TAG: *kernel-rootfs
|
|
needs:
|
|
- debian/arm_test
|
|
|
|
# Native Windows docker builds
|
|
#
|
|
# Unlike the above Linux-based builds - including MinGW builds which
|
|
# cross-compile for Windows - which use the freedesktop ci-templates, we
|
|
# cannot use the same scheme here. As Windows lacks support for
|
|
# Docker-in-Docker, and Podman does not run natively on Windows, we have
|
|
# to open-code much of the same ourselves.
|
|
#
|
|
# This is achieved by first running in a native Windows shell instance
|
|
# (host PowerShell) in the container stage to build and push the image,
|
|
# then in the build stage by executing inside Docker.
|
|
|
|
.windows-docker-vs2019:
|
|
variables:
|
|
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}"
|
|
MESA_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MESA_IMAGE_PATH:${MESA_IMAGE_TAG}"
|
|
|
|
.windows_container_build:
|
|
inherit:
|
|
default: [retry]
|
|
extends:
|
|
- .container
|
|
- .windows-docker-vs2019
|
|
rules:
|
|
- if: '$MICROSOFT_FARM == "offline"'
|
|
when: never
|
|
- !reference [.container-rules, rules]
|
|
variables:
|
|
GIT_STRATEGY: fetch # we do actually need the full repository though
|
|
MESA_BASE_IMAGE: None
|
|
tags:
|
|
- windows
|
|
- shell
|
|
- "2022"
|
|
- mesa
|
|
script:
|
|
- .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $MESA_IMAGE $MESA_UPSTREAM_IMAGE ${DOCKERFILE} ${MESA_BASE_IMAGE}
|
|
|
|
windows_vs2019:
|
|
inherit:
|
|
default: [retry]
|
|
extends:
|
|
- .windows_container_build
|
|
variables:
|
|
MESA_IMAGE_PATH: &windows_vs_image_path ${WINDOWS_X64_VS_PATH}
|
|
MESA_IMAGE_TAG: &windows_vs_image_tag ${WINDOWS_X64_VS_TAG}
|
|
DOCKERFILE: Dockerfile_vs
|
|
MESA_BASE_IMAGE: "mcr.microsoft.com/windows/server:ltsc2022"
|
|
|
|
windows_build_vs2019:
|
|
inherit:
|
|
default: [retry]
|
|
extends:
|
|
- .windows_container_build
|
|
rules:
|
|
- if: '$MICROSOFT_FARM == "offline"'
|
|
when: never
|
|
- !reference [.build-rules, rules]
|
|
variables:
|
|
MESA_IMAGE_PATH: &windows_build_image_path ${WINDOWS_X64_BUILD_PATH}
|
|
MESA_IMAGE_TAG: &windows_build_image_tag ${MESA_BASE_IMAGE_TAG}--${WINDOWS_X64_BUILD_TAG}
|
|
DOCKERFILE: Dockerfile_build
|
|
MESA_BASE_IMAGE_PATH: *windows_vs_image_path
|
|
MESA_BASE_IMAGE_TAG: *windows_vs_image_tag
|
|
MESA_BASE_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_BASE_IMAGE_PATH}:${MESA_BASE_IMAGE_TAG}"
|
|
timeout: 2h 30m # LLVM takes ages
|
|
needs:
|
|
- windows_vs2019
|
|
|
|
windows_test_vs2019:
|
|
inherit:
|
|
default: [retry]
|
|
extends:
|
|
- .windows_container_build
|
|
rules:
|
|
- if: '$MICROSOFT_FARM == "offline"'
|
|
when: never
|
|
- !reference [.build-rules, rules]
|
|
variables:
|
|
MESA_IMAGE_PATH: &windows_test_image_path ${WINDOWS_X64_TEST_PATH}
|
|
MESA_IMAGE_TAG: &windows_test_image_tag ${MESA_BASE_IMAGE_TAG}--${WINDOWS_X64_TEST_TAG}
|
|
DOCKERFILE: Dockerfile_test
|
|
MESA_BASE_IMAGE_PATH: *windows_vs_image_path
|
|
MESA_BASE_IMAGE_TAG: *windows_vs_image_tag
|
|
MESA_BASE_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_BASE_IMAGE_PATH}:${MESA_BASE_IMAGE_TAG}"
|
|
needs:
|
|
- windows_vs2019
|
|
|
|
.use-windows_build_vs2019:
|
|
inherit:
|
|
default: [retry]
|
|
extends: .windows-docker-vs2019
|
|
image: "$MESA_IMAGE"
|
|
variables:
|
|
MESA_IMAGE_PATH: *windows_build_image_path
|
|
MESA_IMAGE_TAG: *windows_build_image_tag
|
|
MESA_BASE_IMAGE_TAG: *windows_vs_image_tag
|
|
needs:
|
|
- windows_build_vs2019
|
|
|
|
.use-windows_test_vs2019:
|
|
inherit:
|
|
default: [retry]
|
|
extends: .windows-docker-vs2019
|
|
image: "$MESA_IMAGE"
|
|
variables:
|
|
MESA_IMAGE_PATH: *windows_test_image_path
|
|
MESA_IMAGE_TAG: *windows_test_image_tag
|
|
MESA_BASE_IMAGE_TAG: *windows_vs_image_tag
|