ci: Build kernels and rootfs for x86 devices
authorTomeu Vizoso <tomeu.vizoso@collabora.com>
Fri, 3 Jul 2020 08:04:20 +0000 (10:04 +0200)
committerMarge Bot <eric+marge@anholt.net>
Wed, 29 Jul 2020 12:41:45 +0000 (12:41 +0000)
For testing Mesa on LAVA devices with the amd64 architecture, build
kernels and rootfs in the same way as we do for arm64 and armhf.

Also add a few trivial jobs for a specific AMD Chromebook.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5903>

15 files changed:
.gitlab-ci.yml
.gitlab-ci/container/baremetal_build.sh
.gitlab-ci/container/lava_arm.sh [deleted file]
.gitlab-ci/container/lava_build.sh [new file with mode: 0755]
.gitlab-ci/container/x86_build-base.sh
.gitlab-ci/create-rootfs.sh
.gitlab-ci/deqp-radeonsi-stoney-fails.txt [new file with mode: 0644]
.gitlab-ci/deqp-radeonsi-stoney-skips.txt [new file with mode: 0644]
.gitlab-ci/generate_lava.py
.gitlab-ci/lava-deqp.yml.jinja2
.gitlab-ci/lava-gitlab-ci.yml
.gitlab-ci/lava-tracie.yml.jinja2
.gitlab-ci/test-source-dep.yml
.gitlab-ci/traces.yml
.gitlab-ci/x86_64.config [new file with mode: 0644]

index 0943b5dfb89e7fa1a3847664e18d74da45b701d0..e63539fc1f666b94693915bdde22f22785b47a32 100644 (file)
@@ -30,6 +30,7 @@ stages:
   - radv
   - lima
   - virgl
+  - radeonsi
   - success
 
 # Generic rule to not run the job during scheduled pipelines
@@ -203,7 +204,7 @@ x86_build-base:
     - .fdo.container-build@debian
     - .container
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_build-base "2020-07-28-libdrm"
+    FDO_DISTRIBUTION_TAG: &x86_build-base "2020-07-28-x86-2"
 
 .use-x86_build-base:
   extends:
@@ -221,7 +222,7 @@ x86_build:
   extends:
     - .use-x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_build "2020-07-28-libdrm-2"
+    FDO_DISTRIBUTION_TAG: &x86_build "2020-07-28-x86-2"
 
 .use-x86_build:
   variables:
@@ -235,7 +236,7 @@ i386_build:
   extends:
     - .use-x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &i386_build "2020-07-28-libdrm"
+    FDO_DISTRIBUTION_TAG: &i386_build "2020-07-28-x86-2"
 
 .use-i386_build:
   variables:
@@ -249,7 +250,7 @@ ppc64el_build:
   extends:
     - .use-x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &ppc64el_build "2020-07-28-libdrm"
+    FDO_DISTRIBUTION_TAG: &ppc64el_build "2020-07-28-x86-2"
 
 .use-ppc64el_build:
   variables:
@@ -263,7 +264,7 @@ s390x_build:
   extends:
     - .use-x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &s390x_build "2020-07-28-libdrm"
+    FDO_DISTRIBUTION_TAG: &s390x_build "2020-07-28-x86-2"
 
 .use-s390x_build:
   variables:
@@ -276,7 +277,7 @@ s390x_build:
 x86_test-base:
   extends: x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_test-base "2020-07-28-libdrm"
+    FDO_DISTRIBUTION_TAG: &x86_test-base "2020-07-28-x86-2"
 
 .use-x86_test-base:
   extends:
@@ -293,19 +294,19 @@ x86_test-base:
 x86_test-gl:
   extends: .use-x86_test-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_test-gl "2020-07-28-libdrm"
+    FDO_DISTRIBUTION_TAG: &x86_test-gl "2020-07-28-x86-2"
 
 # Debian 10 based x86 test image for VK
 x86_test-vk:
   extends: .use-x86_test-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_test-vk "2020-07-28-libdrm"
+    FDO_DISTRIBUTION_TAG: &x86_test-vk "2020-07-28-x86-2"
 
 # Debian 9 based x86 build image (old LLVM)
 x86_build_old:
   extends: x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_build_old "2020-07-28-libdrm"
+    FDO_DISTRIBUTION_TAG: &x86_build_old "2020-07-28-x86-2"
     FDO_DISTRIBUTION_VERSION: stretch-slim
 
 .use-x86_build_old:
@@ -518,11 +519,13 @@ meson-testing:
       -D platforms=x11
     GALLIUM_ST: >
       -D dri3=enabled
-    GALLIUM_DRIVERS: "swrast,virgl"
+    GALLIUM_DRIVERS: "swrast,virgl,radeonsi"
     VULKAN_DRIVERS: amd
     BUILDTYPE: "debugoptimized"
     EXTRA_OPTION: >
       -D werror=true
+    UPLOAD_FOR_LAVA: 1
+    DEBIAN_ARCH: amd64
   script:
     - .gitlab-ci/meson-build.sh
     - .gitlab-ci/prepare-artifacts.sh
index e7e92ba2e2ea35f1f849294643be89506b780825..edfd4f980f06b060761b15d37a3fae2f7d0292dc 100644 (file)
@@ -51,7 +51,7 @@ mkdir /var/cache/apt/archives/$arch
 ############### Create rootfs
 KERNEL_URL=https://gitlab.freedesktop.org/drm/msm/-/archive/drm-msm-fixes-2020-06-25/msm-drm-msm-fixes-2020-06-25.tar.gz
 
-DEBIAN_ARCH=$arch INCLUDE_VK_CTS=1 . .gitlab-ci/container/lava_arm.sh
+DEBIAN_ARCH=$arch INCLUDE_VK_CTS=1 . .gitlab-ci/container/lava_build.sh
 
 ############### Store traces
 # Clone the traces-db at container build time so we don't have to pull traces
diff --git a/.gitlab-ci/container/lava_arm.sh b/.gitlab-ci/container/lava_arm.sh
deleted file mode 100755 (executable)
index baee8d8..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-#!/bin/bash
-
-set -e
-set -o xtrace
-
-check_minio()
-{
-    MINIO_PATH="minio-packet.freedesktop.org/mesa-lava/$1/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}"
-    if wget -q --method=HEAD "https://${MINIO_PATH}/done"; then
-        exit
-    fi
-}
-
-# If remote files are up-to-date, skip rebuilding them
-check_minio "mesa/mesa"
-check_minio "${CI_PROJECT_PATH}"
-
-. .gitlab-ci/container/container_pre_build.sh
-
-if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
-    GCC_ARCH="aarch64-linux-gnu"
-    KERNEL_ARCH="arm64"
-    DEFCONFIG="arch/arm64/configs/defconfig"
-    DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb arch/arm64/boot/dts/qcom/apq8016-sbc.dtb"
-    KERNEL_IMAGE_NAME="Image"
-else
-    GCC_ARCH="arm-linux-gnueabihf"
-    KERNEL_ARCH="arm"
-    DEFCONFIG="arch/arm/configs/multi_v7_defconfig"
-    DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
-    KERNEL_IMAGE_NAME="zImage"
-    . .gitlab-ci/create-cross-file.sh armhf
-fi
-
-# Determine if we're in a cross build.
-if [[ -e /cross_file-$DEBIAN_ARCH.txt ]]; then
-    EXTRA_MESON_ARGS="--cross-file /cross_file-$DEBIAN_ARCH.txt"
-    EXTRA_CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=/toolchain-$DEBIAN_ARCH.cmake"
-
-    export ARCH=${KERNEL_ARCH}
-    export CROSS_COMPILE="${GCC_ARCH}-"
-fi
-
-apt-get update
-apt-get install -y automake \
-                   git \
-                   bc \
-                   cmake \
-                   cpio \
-                   wget \
-                   debootstrap \
-                   libboost-dev \
-                   libegl1-mesa-dev \
-                   libgbm-dev \
-                   libgles2-mesa-dev \
-                   libpcre3-dev \
-                   libpng-dev \
-                   libpython3-dev \
-                   libssl-dev \
-                   libvulkan-dev \
-                   libxcb-keysyms1-dev \
-                   python3-dev \
-                   python3-distutils \
-                   python3-serial \
-                   qt5-default \
-                   qt5-qmake \
-                   qtbase5-dev
-
-
-if [[ "$DEBIAN_ARCH" = "armhf" ]]; then
-       apt-get install -y libboost-dev:armhf \
-               libegl1-mesa-dev:armhf \
-               libelf-dev:armhf \
-               libgbm-dev:armhf \
-               libgles2-mesa-dev:armhf \
-               libpcre3-dev:armhf \
-               libpng-dev:armhf \
-               libpython3-dev:armhf \
-               libvulkan-dev:armhf \
-               libxcb-keysyms1-dev:armhf \
-               qtbase5-dev:armhf
-fi
-
-############### Build dEQP runner
-. .gitlab-ci/build-cts-runner.sh
-mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin
-mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
-
-
-############### Build dEQP
-STRIP_CMD="${GCC_ARCH}-strip"
-if [ -n "$INCLUDE_VK_CTS" ]; then
-   DEQP_TARGET=surfaceless . .gitlab-ci/build-deqp-vk.sh
-else
-   . .gitlab-ci/build-deqp-gl.sh
-fi
-
-mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
-
-
-############### Build apitrace
-. .gitlab-ci/build-apitrace.sh
-mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/apitrace
-mv /apitrace/build /lava-files/rootfs-${DEBIAN_ARCH}/apitrace
-rm -rf /apitrace
-
-mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/waffle
-mv /waffle/build /lava-files/rootfs-${DEBIAN_ARCH}/waffle
-rm -rf /waffle
-
-
-############### Build renderdoc
-EXTRA_CMAKE_ARGS+=" -DENABLE_XCB=false"
-. .gitlab-ci/build-renderdoc.sh
-mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/renderdoc
-mv /renderdoc/build /lava-files/rootfs-${DEBIAN_ARCH}/renderdoc
-rm -rf /renderdoc
-
-
-############### Cross-build kernel
-mkdir -p kernel
-wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel
-pushd kernel
-./scripts/kconfig/merge_config.sh ${DEFCONFIG} ../.gitlab-ci/${KERNEL_ARCH}.config
-make ${KERNEL_IMAGE_NAME} dtbs
-for image in ${KERNEL_IMAGE_NAME}; do
-    cp arch/${KERNEL_ARCH}/boot/${image} /lava-files/.
-done
-cp ${DEVICE_TREES} /lava-files/.
-
-if [[ ${DEBIAN_ARCH} = "arm64" ]] && which mkimage > /dev/null; then
-    make Image.lzma
-    mkimage \
-        -f auto \
-        -A arm \
-        -O linux \
-        -d arch/arm64/boot/Image.lzma \
-        -C lzma\
-        -b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \
-        /lava-files/cheza-kernel
-fi
-
-popd
-rm -rf kernel
-
-############### Create rootfs
-set +e
-debootstrap \
-    --variant=minbase \
-    --arch=${DEBIAN_ARCH} \
-     --components main,contrib,non-free \
-    buster \
-    /lava-files/rootfs-${DEBIAN_ARCH}/ \
-    http://deb.debian.org/debian
-
-cat /lava-files/rootfs-${DEBIAN_ARCH}/debootstrap/debootstrap.log
-set -e
-
-cp .gitlab-ci/create-rootfs.sh /lava-files/rootfs-${DEBIAN_ARCH}/.
-chroot /lava-files/rootfs-${DEBIAN_ARCH} sh /create-rootfs.sh
-rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh
-pushd /lava-files/rootfs-${DEBIAN_ARCH}
-  find -H  |  cpio -H newc -o | gzip -c - > /lava-files/lava-rootfs.cpio.gz
-popd
-
-if [ ${DEBIAN_ARCH} = arm64 ]; then
-    # Pull down a specific build of qcomlt/release/qcomlt-5.4 8c79b3d12355
-    # ("Merge tag 'v5.4.23' into release/qcomlt-5.4"), where I used the
-    # .config from
-    # http://snapshots.linaro.org/96boards/dragonboard820c/linaro/debian/457/config-5.4.0-qcomlt-arm64
-    # with the following merged in:
-    #
-    # CONFIG_DRM=y
-    # CONFIG_DRM_MSM=y
-    # CONFIG_ATL1C=y
-    #
-    # Reason: 5.5 has a big stack of oopses and warns on db820c.  4.14-5.4
-    # linaro kernel binaries (see above .config link) have these as modules
-    # and distributed the modules only in the debian system, not the initrd,
-    # so they're very hard to extract (involving simg2img and loopback
-    # mounting).  4.11 is missing d72fea538fe6 ("drm/msm: Fix the check for
-    # the command size") so it can't actually run fredreno.  qcomlt-4.14 is
-    # unstable at boot (~10% instaboot rate).  The 5.4 qcomlt kernel with msm
-    # built in seems like the easiest way to go.
-    wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/Image.gz -O Image.gz \
-         -O /lava-files/db820c-kernel
-    wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/apq8096-db820c.dtb \
-         -O /lava-files/db820c.dtb
-
-    # Make a gzipped copy of the Image for db410c.
-    gzip -k /lava-files/Image
-
-    # Add missing a630 firmware, added to debian packge in apr 2020
-    wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_gmu.bin \
-         -O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_gmu.bin
-    wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_sqe.fw \
-         -O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_sqe.fw
-fi
-
-. .gitlab-ci/container/container_post_build.sh
-
-############### Upload the files!
-if [ -n "$UPLOAD_FOR_LAVA" ]; then
-    ci-fairy minio login $CI_JOB_JWT
-    FILES_TO_UPLOAD="lava-rootfs.cpio.gz \
-                     $KERNEL_IMAGE_NAME \
-                     $(basename -a $DEVICE_TREES)"
-
-    for f in $FILES_TO_UPLOAD; do
-        ci-fairy minio cp /lava-files/$f \
-            minio://${MINIO_PATH}/$f
-    done
-
-    touch /lava-files/done
-    ci-fairy minio cp /lava-files/done minio://${MINIO_PATH}/done
-fi
-
diff --git a/.gitlab-ci/container/lava_build.sh b/.gitlab-ci/container/lava_build.sh
new file mode 100755 (executable)
index 0000000..7a7e997
--- /dev/null
@@ -0,0 +1,240 @@
+#!/bin/bash
+
+set -e
+set -o xtrace
+
+check_minio()
+{
+    MINIO_PATH="minio-packet.freedesktop.org/mesa-lava/$1/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}"
+    if wget -q --method=HEAD "https://${MINIO_PATH}/done"; then
+        exit
+    fi
+}
+
+# If remote files are up-to-date, skip rebuilding them
+check_minio "mesa/mesa"
+check_minio "${CI_PROJECT_PATH}"
+
+. .gitlab-ci/container/container_pre_build.sh
+
+if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
+    GCC_ARCH="aarch64-linux-gnu"
+    KERNEL_ARCH="arm64"
+    DEFCONFIG="arch/arm64/configs/defconfig"
+    DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb arch/arm64/boot/dts/qcom/apq8016-sbc.dtb"
+    KERNEL_IMAGE_NAME="Image"
+elif [[ "$DEBIAN_ARCH" = "armhf" ]]; then
+    GCC_ARCH="arm-linux-gnueabihf"
+    KERNEL_ARCH="arm"
+    DEFCONFIG="arch/arm/configs/multi_v7_defconfig"
+    DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
+    KERNEL_IMAGE_NAME="zImage"
+    . .gitlab-ci/create-cross-file.sh armhf
+else
+    GCC_ARCH="x86_64-linux-gnu"
+    KERNEL_ARCH="x86_64"
+    DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+    DEVICE_TREES=""
+    KERNEL_IMAGE_NAME="bzImage"
+fi
+
+# Determine if we're in a cross build.
+if [[ -e /cross_file-$DEBIAN_ARCH.txt ]]; then
+    EXTRA_MESON_ARGS="--cross-file /cross_file-$DEBIAN_ARCH.txt"
+    EXTRA_CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=/toolchain-$DEBIAN_ARCH.cmake"
+
+    export ARCH=${KERNEL_ARCH}
+    export CROSS_COMPILE="${GCC_ARCH}-"
+fi
+
+apt-get update
+apt-get install -y automake \
+                   git \
+                   bc \
+                   cmake \
+                   cpio \
+                   wget \
+                   debootstrap \
+                   libboost-dev \
+                   libegl1-mesa-dev \
+                   libgbm-dev \
+                   libgles2-mesa-dev \
+                   libpcre3-dev \
+                   libpng-dev \
+                   libpython3-dev \
+                   libssl-dev \
+                   libvulkan-dev \
+                   libxcb-keysyms1-dev \
+                   python3-dev \
+                   python3-distutils \
+                   python3-serial \
+                   qt5-default \
+                   qt5-qmake \
+                   qtbase5-dev
+
+
+if [[ "$DEBIAN_ARCH" = "armhf" ]]; then
+       apt-get install -y libboost-dev:armhf \
+               libegl1-mesa-dev:armhf \
+               libelf-dev:armhf \
+               libgbm-dev:armhf \
+               libgles2-mesa-dev:armhf \
+               libpcre3-dev:armhf \
+               libpng-dev:armhf \
+               libpython3-dev:armhf \
+               libvulkan-dev:armhf \
+               libxcb-keysyms1-dev:armhf \
+               qtbase5-dev:armhf
+fi
+
+############### Build dEQP runner
+. .gitlab-ci/build-cts-runner.sh
+mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin
+mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
+
+
+############### Build dEQP
+STRIP_CMD="${GCC_ARCH}-strip"
+if [ -n "$INCLUDE_VK_CTS" ]; then
+   DEQP_TARGET=surfaceless . .gitlab-ci/build-deqp-vk.sh
+else
+   . .gitlab-ci/build-deqp-gl.sh
+fi
+
+mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
+
+
+############### Build apitrace
+. .gitlab-ci/build-apitrace.sh
+mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/apitrace
+mv /apitrace/build /lava-files/rootfs-${DEBIAN_ARCH}/apitrace
+rm -rf /apitrace
+
+mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/waffle
+mv /waffle/build /lava-files/rootfs-${DEBIAN_ARCH}/waffle
+rm -rf /waffle
+
+
+############### Build renderdoc
+EXTRA_CMAKE_ARGS+=" -DENABLE_XCB=false"
+. .gitlab-ci/build-renderdoc.sh
+mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/renderdoc
+mv /renderdoc/build /lava-files/rootfs-${DEBIAN_ARCH}/renderdoc
+rm -rf /renderdoc
+
+
+############### Build libdrm
+EXTRA_MESON_ARGS+=" -D prefix=/libdrm"
+. .gitlab-ci/build-libdrm.sh
+mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/lib/$GCC_ARCH
+find /libdrm/ -name lib\*\.so\* | xargs cp -t /lava-files/rootfs-${DEBIAN_ARCH}/usr/lib/$GCC_ARCH/.
+rm -rf /libdrm
+
+
+############### Cross-build kernel
+mkdir -p kernel
+wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel
+pushd kernel
+./scripts/kconfig/merge_config.sh ${DEFCONFIG} ../.gitlab-ci/${KERNEL_ARCH}.config
+make ${KERNEL_IMAGE_NAME}
+for image in ${KERNEL_IMAGE_NAME}; do
+    cp arch/${KERNEL_ARCH}/boot/${image} /lava-files/.
+done
+if [[ -n ${DEVICE_TREES} ]]; then
+    make dtbs
+    cp ${DEVICE_TREES} /lava-files/.
+fi
+
+if [[ ${DEBIAN_ARCH} = "arm64" ]] && which mkimage > /dev/null; then
+    make Image.lzma
+    mkimage \
+        -f auto \
+        -A arm \
+        -O linux \
+        -d arch/arm64/boot/Image.lzma \
+        -C lzma\
+        -b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \
+        /lava-files/cheza-kernel
+fi
+
+popd
+rm -rf kernel
+
+############### Create rootfs
+set +e
+debootstrap \
+    --variant=minbase \
+    --arch=${DEBIAN_ARCH} \
+     --components main,contrib,non-free \
+    buster \
+    /lava-files/rootfs-${DEBIAN_ARCH}/ \
+    http://deb.debian.org/debian
+
+cat /lava-files/rootfs-${DEBIAN_ARCH}/debootstrap/debootstrap.log
+set -e
+
+cp .gitlab-ci/create-rootfs.sh /lava-files/rootfs-${DEBIAN_ARCH}/.
+cp .gitlab-ci/container/llvm-snapshot.gpg.key /lava-files/rootfs-${DEBIAN_ARCH}/.
+chroot /lava-files/rootfs-${DEBIAN_ARCH} sh /create-rootfs.sh
+rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh
+rm /lava-files/rootfs-${DEBIAN_ARCH}/llvm-snapshot.gpg.key
+du -ah /lava-files/rootfs-${DEBIAN_ARCH} | sort -h | tail -100
+pushd /lava-files/rootfs-${DEBIAN_ARCH}
+  find -H  |  cpio -H newc -o | gzip -c - > /lava-files/lava-rootfs.cpio.gz
+popd
+
+if [ ${DEBIAN_ARCH} = arm64 ]; then
+    # Pull down a specific build of qcomlt/release/qcomlt-5.4 8c79b3d12355
+    # ("Merge tag 'v5.4.23' into release/qcomlt-5.4"), where I used the
+    # .config from
+    # http://snapshots.linaro.org/96boards/dragonboard820c/linaro/debian/457/config-5.4.0-qcomlt-arm64
+    # with the following merged in:
+    #
+    # CONFIG_DRM=y
+    # CONFIG_DRM_MSM=y
+    # CONFIG_ATL1C=y
+    #
+    # Reason: 5.5 has a big stack of oopses and warns on db820c.  4.14-5.4
+    # linaro kernel binaries (see above .config link) have these as modules
+    # and distributed the modules only in the debian system, not the initrd,
+    # so they're very hard to extract (involving simg2img and loopback
+    # mounting).  4.11 is missing d72fea538fe6 ("drm/msm: Fix the check for
+    # the command size") so it can't actually run fredreno.  qcomlt-4.14 is
+    # unstable at boot (~10% instaboot rate).  The 5.4 qcomlt kernel with msm
+    # built in seems like the easiest way to go.
+    wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/Image.gz -O Image.gz \
+         -O /lava-files/db820c-kernel
+    wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/apq8096-db820c.dtb \
+         -O /lava-files/db820c.dtb
+
+    # Make a gzipped copy of the Image for db410c.
+    gzip -k /lava-files/Image
+
+    # Add missing a630 firmware, added to debian packge in apr 2020
+    wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_gmu.bin \
+         -O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_gmu.bin
+    wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_sqe.fw \
+         -O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_sqe.fw
+fi
+
+. .gitlab-ci/container/container_post_build.sh
+
+############### Upload the files!
+if [ -n "$UPLOAD_FOR_LAVA" ]; then
+    ci-fairy minio login $CI_JOB_JWT
+    FILES_TO_UPLOAD="lava-rootfs.cpio.gz \
+                     $KERNEL_IMAGE_NAME"
+
+    if [[ -n $DEVICE_TREES ]]; then
+        FILES_TO_UPLOAD="$FILES_TO_UPLOAD $(basename -a $DEVICE_TREES)"
+    fi
+
+    for f in $FILES_TO_UPLOAD; do
+        ci-fairy minio cp /lava-files/$f \
+            minio://${MINIO_PATH}/$f
+    done
+
+    touch /lava-files/done
+    ci-fairy minio cp /lava-files/done minio://${MINIO_PATH}/done
+fi
+
index a833dcda4b10f874ae492a336f869cf29234c71f..e6a1db2028f1709b678d7f700ff662e0c0d4d124 100644 (file)
@@ -61,7 +61,9 @@ apt-get install -y --no-remove \
         python-mako \
         python3-mako \
         python3-pil \
+        python3-pip \
         python3-requests \
+        python3-setuptools \
         qemu-user \
         scons \
         wine64-development \
@@ -90,7 +92,6 @@ rm bin/glslangValidator glslang-master-linux-Release.zip
 
 apt-get purge -y \
         gnupg \
-        unzip \
-        wget
+        unzip
 
 . .gitlab-ci/container/container_post_build.sh
index 8422bab11b4bb11358c5232d7e5fa1ec54ecea34..4f4609ed4c6cc37c8e35720452b0451f2a52af0b 100644 (file)
@@ -2,6 +2,27 @@
 
 set -ex
 
+if [ $DEBIAN_ARCH = arm64 ]; then
+    ARCH_PACKAGES="firmware-qcom-media"
+elif [ $DEBIAN_ARCH = amd64 ]; then
+    # Upstream LLVM package repository
+    apt-get -y install --no-install-recommends gnupg ca-certificates
+    apt-key add /llvm-snapshot.gpg.key
+    echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list
+    apt-get update
+
+    ARCH_PACKAGES="libelf1
+                   libllvm9
+                   libxcb-dri2-0
+                   libxcb-dri3-0
+                   libxcb-present0
+                   libxcb-sync1
+                   libxcb-xfixes0
+                   libxshmfence1
+                   firmware-amd-graphics
+                  "
+fi
+
 apt-get -y install --no-install-recommends \
     ca-certificates \
     curl \
@@ -12,7 +33,7 @@ apt-get -y install --no-install-recommends \
     libexpat1 \
     libx11-6 \
     libx11-xcb1 \
-    firmware-qcom-media \
+    $ARCH_PACKAGES \
     netcat-openbsd \
     python3 \
     libpython3.7 \
@@ -57,7 +78,8 @@ cp /usr/share/zoneinfo/Etc/UTC /etc/localtime
 
 UNNEEDED_PACKAGES="libfdisk1
                    tzdata
-                   diffutils"
+                   diffutils
+                   gnupg"
 
 export DEBIAN_FRONTEND=noninteractive
 
diff --git a/.gitlab-ci/deqp-radeonsi-stoney-fails.txt b/.gitlab-ci/deqp-radeonsi-stoney-fails.txt
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/.gitlab-ci/deqp-radeonsi-stoney-skips.txt b/.gitlab-ci/deqp-radeonsi-stoney-skips.txt
new file mode 100644 (file)
index 0000000..69d0087
--- /dev/null
@@ -0,0 +1,11 @@
+# Note: skips lists for CI are just a list of lines that, when
+# non-zero-length and not starting with '#', will regex match to
+# delete lines from the test list.  Be careful.
+
+# Skip the perf/stress tests to keep runtime manageable
+dEQP-GLES[0-9]*.performance.*
+dEQP-GLES[0-9]*.stress.*
+
+# These are really slow on tiling architectures (including llvmpipe).
+dEQP-GLES[0-9]*.functional.flush_finish.*
+
index 61da42877ad8e135dac0ef7c2796b6bc354025f9..6f887c5f90bf16689285e9ed675dfaaff1e06b5c 100755 (executable)
@@ -11,6 +11,7 @@ parser.add_argument("--pipeline-info")
 parser.add_argument("--base-artifacts-url")
 parser.add_argument("--mesa-url")
 parser.add_argument("--device-type")
+parser.add_argument("--dtb", nargs='?', default="")
 parser.add_argument("--kernel-image-name")
 parser.add_argument("--kernel-image-type", nargs='?', default="")
 parser.add_argument("--gpu-version")
@@ -33,6 +34,7 @@ values['pipeline_info'] = args.pipeline_info
 values['base_artifacts_url'] = args.base_artifacts_url
 values['mesa_url'] = args.mesa_url
 values['device_type'] = args.device_type
+values['dtb'] = args.dtb
 values['kernel_image_name'] = args.kernel_image_name
 values['kernel_image_type'] = args.kernel_image_type
 values['gpu_version'] = args.gpu_version
index 92a48ed791557a8a4e250d62cd3d1bdae48e1eac..639f1d1f40e88d38efdb7fd53f5d358ccbc19417 100644 (file)
@@ -30,8 +30,10 @@ actions:
     ramdisk:
       url: {{ base_artifacts_url }}/lava-rootfs.cpio.gz
       compression: gz
+{% if dtb %}
     dtb:
-      url: {{ base_artifacts_url }}/{{ device_type }}.dtb
+      url: {{ base_artifacts_url }}/{{ dtb }}.dtb
+{% endif %}
     os: oe
 - boot:
     timeout:
index 1be28ef6e130c357cb9aeb9007c20cb944462fa5..0055ef524ee138e19a40a40f7a44b41741413ab6 100644 (file)
@@ -1,5 +1,5 @@
 variables:
-  DISTRIBUTION_TAG: "2020-07-28"
+  DISTRIBUTION_TAG: "2020-07-28-x86"
 
 .kernel+rootfs:
   stage: container-2
@@ -10,7 +10,15 @@ variables:
     KERNEL_URL: "https://gitlab.freedesktop.org/tomeu/linux/-/archive/v5.5-panfrost-fixes/linux-v5.5-panfrost-fixes.tar.gz"
     UPLOAD_FOR_LAVA: 1
   script:
-    - .gitlab-ci/container/lava_arm.sh
+    - .gitlab-ci/container/lava_build.sh
+
+kernel+rootfs_amd64:
+  extends:
+    - .use-x86_build-base
+    - .kernel+rootfs
+  image: "$CI_REGISTRY_IMAGE/debian/x86_build-base:$BASE_TAG"
+  variables:
+    DEBIAN_ARCH: "amd64"
 
 kernel+rootfs_arm64:
   extends:
@@ -54,6 +62,7 @@ kernel+rootfs_armhf:
         --base-artifacts-url ${ARTIFACTS_URL} \
         --mesa-url ${MESA_URL} \
         --device-type ${DEVICE_TYPE} \
+        --dtb ${DTB} \
         --env-vars "${ENV_VARS} ${FIXED_ENV_VARS}" \
         --deqp-version ${DEQP_VERSION} \
         --kernel-image-name ${KERNEL_IMAGE_NAME} \
@@ -108,6 +117,26 @@ kernel+rootfs_armhf:
     - kernel+rootfs_arm64
     - meson-arm64
 
+.lava-test:amd64:
+  variables:
+    ARCH: amd64
+    KERNEL_IMAGE_NAME: bzImage
+    KERNEL_IMAGE_TYPE: "type:\ zimage"
+    BOOT_METHOD: u-boot
+    TEST_SUITE: "deqp"
+  extends:
+    - .lava-test
+    - .use-arm_build
+  needs:
+    - kernel+rootfs_amd64
+    - meson-testing
+
+.lava-traces:amd64:
+  variables:
+    TEST_SUITE: "tracie"
+  extends:
+    - .lava-test:amd64
+
 .lava-traces:armhf:
   variables:
     TEST_SUITE: "tracie"
@@ -126,6 +155,7 @@ panfrost-t720-gles2:arm64:
     - .panfrost-rules
   variables:
     DEVICE_TYPE: sun50i-h6-pine-h64
+    DTB: ${DEVICE_TYPE}
     GPU_VERSION: panfrost-t720
     ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T720"
   tags:
@@ -137,6 +167,7 @@ panfrost-t760-gles2:armhf:
     - .panfrost-rules
   variables:
     DEVICE_TYPE: rk3288-veyron-jaq
+    DTB: ${DEVICE_TYPE}
     GPU_VERSION: panfrost-t760
     BOOT_METHOD: depthcharge
     KERNEL_IMAGE_TYPE: ""
@@ -150,6 +181,7 @@ panfrost-t760-gles2:armhf:
     - .panfrost-rules
   variables:
     DEVICE_TYPE: rk3288-veyron-jaq
+    DTB: ${DEVICE_TYPE}
     GPU_VERSION: panfrost-t760
     BOOT_METHOD: depthcharge
     KERNEL_IMAGE_TYPE: ""
@@ -162,6 +194,7 @@ panfrost-t760-gles2:armhf:
     - .panfrost-rules
   variables:
     DEVICE_TYPE: rk3399-gru-kevin
+    DTB: ${DEVICE_TYPE}
     GPU_VERSION: panfrost-t860
     BOOT_METHOD: depthcharge
     KERNEL_IMAGE_TYPE: ""
@@ -197,6 +230,7 @@ panfrost-t860-traces:arm64:
     - .panfrost-rules
   variables:
     DEVICE_TYPE: meson-gxm-khadas-vim2
+    DTB: ${DEVICE_TYPE}
     GPU_VERSION: panfrost-t820
     LAVA_TAGS: panfrost
     ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T820"
@@ -210,6 +244,7 @@ panfrost-t860-traces:arm64:
     - .lima-rules
   variables:
     DEVICE_TYPE: sun8i-h3-libretech-all-h3-cc
+    DTB: ${DEVICE_TYPE}
     GPU_VERSION: lima
     ENV_VARS: "DEQP_PARALLEL=3 DEQP_EXPECTED_RENDERER=Mali400"
   tags:
@@ -221,7 +256,45 @@ panfrost-t860-traces:arm64:
     - .lima-rules
   variables:
     DEVICE_TYPE: meson-gxl-s905x-libretech-cc
+    DTB: ${DEVICE_TYPE}
     GPU_VERSION: lima
     ENV_VARS: "DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=Mali450"
   tags:
     - mesa-ci-aarch64-lava-baylibre
+
+# Commented out while waiting for more DUTs to come online
+.radeonsi-stoney-gles2:amd64:
+  extends:
+    - .lava-test:amd64
+    - .radeonsi-rules
+  variables:
+    DEVICE_TYPE: hp-11A-G6-EE-grunt
+    DTB: ""
+    GPU_VERSION: radeonsi-stoney
+    BOOT_METHOD: depthcharge
+    KERNEL_IMAGE_TYPE: ""
+    ENV_VARS: "DEQP_PARALLEL=4 DEQP_EXPECTED_RENDERER=STONEY NIR_VALIDATE=0"
+  tags:
+    - mesa-ci-aarch64-lava-collabora
+
+# Commented out while waiting for more DUTs to come online
+.radeonsi-stoney-gles3:amd64:
+  extends:
+    - .radeonsi-stoney-gles2:amd64
+  variables:
+    DEQP_VERSION: gles3
+  tags:
+    - mesa-ci-aarch64-lava-collabora
+
+radeonsi-stoney-traces:amd64:
+  extends:
+    - .lava-traces:amd64
+    - .radeonsi-rules
+  variables:
+    DEVICE_TYPE: hp-11A-G6-EE-grunt
+    DTB: ""
+    GPU_VERSION: radeonsi-stoney
+    BOOT_METHOD: depthcharge
+    KERNEL_IMAGE_TYPE: ""
+  tags:
+    - mesa-ci-aarch64-lava-collabora
index f8b6bcb37d87b26ba2516efb48adcafcb9312fb6..0811c6724fe70c36dcf1964f2824e5b6b3b6f476 100644 (file)
@@ -30,8 +30,10 @@ actions:
     ramdisk:
       url: {{ base_artifacts_url }}/lava-rootfs.cpio.gz
       compression: gz
+{% if dtb %}
     dtb:
-      url: {{ base_artifacts_url }}/{{ device_type }}.dtb
+      url: {{ base_artifacts_url }}/{{ dtb }}.dtb
+{% endif %}
     os: oe
 - boot:
     timeout:
index 6a006b8d6c36b61251db20e01d9887d52932edb7..fc65153ad1357e6558d0ed003fcc0dd906981974 100644 (file)
       - src/gallium/winsys/virgl/**/*
       when: on_success
     - when: never
+
+.radeonsi-rules:
+  stage: radeonsi
+  rules:
+    - changes:
+        *mesa_core_file_list
+      when: on_success
+    - changes:
+        *gallium_core_file_list
+      when: on_success
+    - changes:
+      - src/gallium/drivers/radeonsi/**/*
+      - src/gallium/winsys/amdgpu/**/*
+      - src/amd/**/*
+      when: on_success
+    - when: never
index 19949e91e884cf292a08c2daf400610c8db1a9db..5f0e259b4fe0bec14e11cb5066017741f16c5319 100644 (file)
@@ -12,6 +12,8 @@ traces:
         checksum: 95df5e619a36e88fe408e45567a2d149
       - device: gl-panfrost-t760
         checksum: 30663eac9a4767d26fbf9b6db9712d9f
+      - device: gl-radeonsi-stoney
+        checksum: 316650141be869c8afe76b42d3573b49
   - path: glmark2/jellyfish.rdc
     expectations:
       - device: gl-vmware-llvmpipe
@@ -22,6 +24,8 @@ traces:
         checksum: 1d609b089732be5b6e3e78370abcb149
       - device: gl-panfrost-t760
         checksum: f98ef9118eeaba660c15065dac46e580
+      - device: gl-radeonsi-stoney
+        checksum: 2c57f9d33489dd43c8807bd0f06c3ed8
   - path: glxgears/glxgears-2.trace
     expectations:
       - device: gl-vmware-llvmpipe
@@ -32,6 +36,8 @@ traces:
         checksum: bcc73608b6e2b5d92bf926d1c21889c7
       - device: gl-panfrost-t760
         checksum: bcc73608b6e2b5d92bf926d1c21889c7
+      - device: gl-radeonsi-stoney
+        checksum: eb9b3d497be567f02a6e039fa32f2b13
   - path: KhronosGroup-Vulkan-Tools/amd/polaris10/vkcube.gfxr
     expectations:
       - device: vk-amd-polaris10
@@ -54,6 +60,8 @@ traces:
     expectations:
       - device: gl-vmware-llvmpipe
         checksum: d76d0f5b5b064bba3e6a2a122c0799cf
+      - device: gl-radeonsi-stoney
+        checksum: bfd97a7190f2b9de24ddfd446fcc4850
   - path: pathfinder/demo.trace
     expectations:
       - device: gl-vmware-llvmpipe
@@ -62,6 +70,8 @@ traces:
         checksum: c4f5e6bfe0cba230b1aef631c2fa4584
       - device: gl-panfrost-t760
         checksum: c4f5e6bfe0cba230b1aef631c2fa4584
+      - device: gl-radeonsi-stoney
+        checksum: c81c85f9b247dd1b06c3dd5b669cc283
   - path: pathfinder/canvas_moire.trace
     expectations:
       - device: gl-vmware-llvmpipe
@@ -70,6 +80,8 @@ traces:
         checksum: 2fb2c8e83719526cb6c02b6c2e069d61
       - device: gl-panfrost-t760
         checksum: 2fb2c8e83719526cb6c02b6c2e069d61
+      - device: gl-radeonsi-stoney
+        checksum: 78dd2357ad6e5ffc049a75bfb11c5497
   - path: pathfinder/canvas_text.trace
     expectations:
       - device: gl-vmware-llvmpipe
@@ -78,6 +90,8 @@ traces:
         checksum: 939038749a5204ec2b1448d3b9208fb3
       - device: gl-panfrost-t760
         checksum: 939038749a5204ec2b1448d3b9208fb3
+      - device: gl-radeonsi-stoney
+        checksum: 56d1398206ceea45562f80f8ea9d3814
   - path: gputest/furmark.trace
     expectations:
       - device: gl-vmware-llvmpipe
@@ -86,12 +100,16 @@ traces:
         checksum: 87ffd45be95f2d55f82325c86ce32f20
       - device: gl-panfrost-t860
         checksum: dc4ece101ed145228840d1f0654118c6
+      - device: gl-radeonsi-stoney
+        checksum: 1c569668d608c644f353caa177d577c6
   - path: gputest/pixmark-piano.trace
     expectations:
       - device: gl-vmware-llvmpipe
         checksum: 022b43b7fff9e8623dcfcd91e6bbe7aa
       - device: gl-virgl
         checksum: 24eb95484e5b8288b3d5d65117c98641
+      - device: gl-radeonsi-stoney
+        checksum: 061226c3fd179c611b8d60acaa44474f
   - path: gputest/triangle.trace
     expectations:
       - device: gl-vmware-llvmpipe
@@ -102,6 +120,8 @@ traces:
         checksum: 6def0c34ade7d4ec930b45d0eef6e46a
       - device: gl-panfrost-t760
         checksum: 6def0c34ade7d4ec930b45d0eef6e46a
+      - device: gl-radeonsi-stoney
+        checksum: 2d0527e7288a0fc31099404546dadbfb
   - path: humus/Portals.trace
     expectations:
       - device: gl-vmware-llvmpipe
@@ -112,3 +132,197 @@ traces:
         checksum: 5415bbf2a69b605bb1052a0e0b0f7040
       - device: gl-panfrost-t760
         checksum: a41f53e9318cbd32c27b48d304df1ea6
+      - device: gl-radeonsi-stoney
+        checksum: b6f00f39566152c3c8462903b7a1f258
+  - path: glmark2/buffer-columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: ee76b7ffb344d545ee22c1b83d61f893
+  - path: glmark2/buffer-columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 8f90923d9b9daf7b3708f10b3b019af8
+  - path: glmark2/buffer-columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: db55995d943f1284c39637a116ceb645
+  - path: glmark2/bump-bump-render=height.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: da75c0dfbcb27b44fbaed15b2f29509c
+  - path: glmark2/bump-bump-render=high-poly.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: e2e83a59d4eb6763d2fe922932aa14b5
+  - path: glmark2/bump-bump-render=normals.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: b7beae443e41e229d34da46ab2047a98
+  - path: glmark2/conditionals-fragment-steps=0:vertex-steps=0.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: e95f9a5ce73727a92eeb4109d28caba4
+  - path: glmark2/conditionals-fragment-steps=0:vertex-steps=5.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: e9ff7521f88eebd8a6770ab5eb28fad4
+  - path: glmark2/conditionals-fragment-steps=5:vertex-steps=0.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 0381a3eb918cfecec03a64d06158d1a3
+  - path: glmark2/desktop-effect=shadow:windows=4.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: c21cf8fe26107351eaa97725e6f9883f
+  - path: glmark2/effect2d-kernel=0,1,0;1,-4,1;0,1,0.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 2958ae3442ed26b681b6978e278ba10d
+  - path: glmark2/effect2d-kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 2d4384b59505215932dc2f01ae174379
+  - path: glmark2/function-fragment-complexity=low:fragment-steps=5.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: f84fc1a1ff1a8342678bca081f8a5c0d
+  - path: glmark2/function-fragment-complexity=medium:fragment-steps=5.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 4097ffd5e97bd56589dfab374574d116
+  - path: glmark2/glmark2-build-use-vbo-false.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: e344777696ef13adc2bd943dfd4199a2
+  - path: glmark2/glmark2-build-use-vbo-true.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 51da69c3490816c93c130e63686d2483
+  - path: glmark2/ideas-speed=duration.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 966191b52dc4885cfc56c0e7c80856b2
+  - path: glmark2/loop-fragment-loop=false:fragment-steps=5:vertex-steps=5.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 65cfa43254eaa0ca09ceb8792b4e4ee7
+  - path: glmark2/loop-fragment-steps=5:fragment-uniform=false:vertex-steps=5.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 716f1ebf84d9ab30a8c4261ecbed492b
+  - path: glmark2/loop-fragment-steps=5:fragment-uniform=true:vertex-steps=5.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 45061884dc857a9e0c31d0b0c02d4cbe
+  - path: glmark2/pulsar-light=false:quads=5:texture=false.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 605881a1cb0d8d59e28e19663b6f5eb0
+  - path: glmark2/refract.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: db300d3a8afb6cecc19ae8e38c7b87c6
+  - path: glmark2/shading-shading=blinn-phong-inf.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 36b193b33127144f8080aa60d582e65e
+  - path: glmark2/shading-shading=cel.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: faac1e367720e1ccd9820f2b78808294
+  - path: glmark2/shading-shading=gouraud.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 22bd04eb9862eb4ecff525ac83b2826d
+  - path: glmark2/shading-shading=phong.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: fda002d281d57b3eacb5c2c8f619a62d
+  - path: glmark2/shadow.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 4bf5ca9ce641de1031eb8125d80a3005
+  - path: glmark2/terrain.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 52f19a65bd77ae03b5f51ee0038a2982
+  - path: glmark2/texture-texture-filter=linear.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 992eb4af603d68a3920014f64f0973b1
+  - path: glmark2/texture-texture-filter=mipmap.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: c635b1741e4103cf48cd554882e15a4c
+  - path: glmark2/texture-texture-filter=nearest.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: bd00656bf6683dae40bfa26a6416061d
+  - path: godot/Material Testers.x86_64_2020.04.08_13.38_frame799.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 2ddcda6b1c136ce1448714a3ff8432eb
+  - path: gputest/gimark.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 98e742377cef049e98014300a34d7bba
+  - path: gputest/pixmark-julia-fp32.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: ad472cdef2a68ffaabcbf2a694c4aefe
+  - path: gputest/pixmark-julia-fp64.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: b181b0a910f5ae5b161df70f834c3d5f
+  - path: gputest/pixmark-piano.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 061226c3fd179c611b8d60acaa44474f
+  - path: gputest/pixmark-volplosion.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 2fba173643c014bcfa4b31eb55a514b9
+  - path: gputest/plot3d.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 799ce7b2d8050d6ba2e3ae595cf8729e
+  - path: gputest/tessmark.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: d6597f93caa383c492d8290036c60919
+  - path: humus/AmbientAperture.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 56291d097c4be9c079fb771c849c6a2e
+  - path: humus/CelShading.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 7d30dbe3470873c327464ea7ebe6bcf0
+  - path: humus/DynamicBranching3.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 0f02743d054c66f04da404add87d67dc
+  - path: humus/HDR.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: b44ce4cb377321f6423a5a62a9083794
+  - path: humus/RaytracedShadows.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 4209605af96a1d7c20aa7324aa93839f
+  - path: humus/VolumetricFogging2.trace
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 12ad73ad05b01854da65eb0094612ebf
+  - path: supertuxkart/supertuxkart-antediluvian-abyss.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 17f4039392a65ad23133cb2cac82dba4
+  - path: supertuxkart/supertuxkart-menu.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: bc851bb8808b311c2df9c36a6c289e6e
+  - path: supertuxkart/supertuxkart-ravenbridge-mansion.rdc
+    expectations:
+      - device: gl-radeonsi-stoney
+        checksum: 46f08af5c49d711b41d4082f8a5cf6d6
diff --git a/.gitlab-ci/x86_64.config b/.gitlab-ci/x86_64.config
new file mode 100644 (file)
index 0000000..2a28645
--- /dev/null
@@ -0,0 +1,65 @@
+CONFIG_LOCALVERSION="ccu"
+
+CONFIG_DEBUG_KERNEL=y
+
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+
+CONFIG_DRM=y
+CONFIG_DRM_PANEL_SIMPLE=y
+CONFIG_PWM_CROS_EC=y
+CONFIG_BACKLIGHT_PWM=y
+
+# Strip out some stuff we don't need for graphics testing, to reduce
+# the build.
+CONFIG_CAN=n
+CONFIG_WIRELESS=n
+CONFIG_RFKILL=n
+CONFIG_WLAN=n
+
+CONFIG_REGULATOR_FAN53555=y
+CONFIG_REGULATOR=y
+
+CONFIG_REGULATOR_VCTRL=y
+
+CONFIG_KASAN=n
+CONFIG_KASAN_INLINE=n
+CONFIG_STACKTRACE=n
+
+CONFIG_TMPFS=y
+
+CONFIG_PROVE_LOCKING=n
+CONFIG_DEBUG_LOCKDEP=n
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
+
+CONFIG_DETECT_HUNG_TASK=y
+
+CONFIG_USB_USBNET=y
+CONFIG_NETDEVICES=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_RTL8152=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_SMSC95XX=y
+
+CONFIG_FW_LOADER_COMPRESS=y
+
+# options for AMD devices
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
+CONFIG_ACPI_VIDEO=y
+CONFIG_X86_AMD_FREQ_SENSITIVITY=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_AMD=y
+CONFIG_DRM_AMDGPU=y
+CONFIG_DRM_AMDGPU_SI=y
+CONFIG_DRM_AMD_ACP=y
+CONFIG_ACPI_WMI=y
+CONFIG_MXM_WMI=y
+CONFIG_PARPORT=y
+CONFIG_PARPORT_PC=y
+CONFIG_PARPORT_SERIAL=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_CHROME_PLATFORMS=y
+