egl: drop unused _EGLDriver from SwapInterval()
[mesa.git] / .gitlab-ci / lava-gitlab-ci.yml
index 64d84ada31d2d23e2eda3deb34649ccbc8147b62..4916904d8f8975df556256ccbfb5d98ec9397d99 100644 (file)
@@ -1,21 +1,69 @@
+variables:
+  DISTRIBUTION_TAG: "2020-08-03-nfs-2"
+
+.kernel+rootfs:
+  stage: container-2
+  extends:
+    - .ci-run-policy
+  variables:
+    GIT_STRATEGY: fetch
+    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_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:
+    - .use-arm_build
+    - .kernel+rootfs
+  tags:
+    - aarch64
+  variables:
+    DEBIAN_ARCH: "arm64"
+
+kernel+rootfs_armhf:
+  extends:
+    - kernel+rootfs_arm64
+  variables:
+    DEBIAN_ARCH: "armhf"
+
 .lava-test:
   extends:
     - .ci-run-policy
-  stage: test
+  # Cancel job if a newer commit is pushed to the same branch
+  interruptible: true
   variables:
     GIT_STRATEGY: none # testing doesn't build anything from source
     ENV_VARS: "DEQP_PARALLEL=6"
+    FIXED_ENV_VARS: "CI_PIPELINE_ID=${CI_PIPELINE_ID} CI_JOB_ID=${CI_JOB_ID} CI_PROJECT_PATH=${CI_PROJECT_PATH} CI_JOB_JWT=${CI_JOB_JWT} TRACIE_NO_UNIT_TESTS=1 TRACIE_UPLOAD_TO_MINIO=1"
     DEQP_VERSION: gles2
+    ARTIFACTS_PREFIX: "https://minio-packet.freedesktop.org/mesa-lava/"
+    MESA_URL: "https://minio-packet.freedesktop.org/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}/mesa-${ARCH}.tar.gz"
   script:
-    - BUILD_JOB_ID=`cat artifacts/build_job_id.txt`
+    # Try to use the kernel and rootfs built in mainline first, to save cycles
+    - >
+      if wget -q --method=HEAD "${ARTIFACTS_PREFIX}/mesa/mesa/${DISTRIBUTION_TAG}/${ARCH}/done"; then
+        ARTIFACTS_URL="${ARTIFACTS_PREFIX}/mesa/mesa/${DISTRIBUTION_TAG}/${ARCH}"
+      else
+        ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${CI_PROJECT_PATH}/${DISTRIBUTION_TAG}/${ARCH}"
+      fi
     - >
       artifacts/generate_lava.py \
-        --template artifacts/lava-deqp.yml.jinja2 \
+        --template artifacts/lava-${TEST_SUITE}.yml.jinja2 \
         --pipeline-info "$CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \
-        --base-artifacts-url $CI_PROJECT_URL/-/jobs/$BUILD_JOB_ID/artifacts/raw/artifacts \
+        --base-artifacts-url ${ARTIFACTS_URL} \
+        --mesa-url ${MESA_URL} \
         --device-type ${DEVICE_TYPE} \
-        --env-vars "${ENV_VARS}" \
-        --arch ${ARCH} \
+        --dtb ${DTB} \
+        --env-vars "${ENV_VARS} ${FIXED_ENV_VARS}" \
         --deqp-version ${DEQP_VERSION} \
         --kernel-image-name ${KERNEL_IMAGE_NAME} \
         --kernel-image-type "${KERNEL_IMAGE_TYPE}" \
         --lava-tags "${LAVA_TAGS}" \
         --ci-node-index "${CI_NODE_INDEX}" \
         --ci-node-total "${CI_NODE_TOTAL}"
-    - lava_job_id=`lavacli jobs submit lava-deqp.yml`
+    - lava_job_id=`lavacli jobs submit lava-${TEST_SUITE}.yml` || lavacli jobs submit lava-${TEST_SUITE}.yml
     - echo $lava_job_id
     - rm -rf artifacts/*
-    - cp lava-deqp.yml artifacts/.
-    - lavacli jobs logs $lava_job_id | tee artifacts/lava-deqp-$lava_job_id.log
+    - cp lava-${TEST_SUITE}.yml artifacts/.
+    - lavacli jobs logs $lava_job_id | tee artifacts/lava-${TEST_SUITE}-$lava_job_id.log
     - lavacli jobs show $lava_job_id
-    - result=`lavacli results $lava_job_id 0_deqp deqp | head -1`
+    - result=`lavacli results $lava_job_id 0_${TEST_SUITE} ${TEST_SUITE} | head -1`
     - echo $result
     - '[[ "$result" == "pass" ]]'
   artifacts:
+    name: "mesa_${CI_JOB_NAME}"
     when: always
     paths:
       - artifacts/
     KERNEL_IMAGE_NAME: zImage
     KERNEL_IMAGE_TYPE: "type:\ zimage"
     BOOT_METHOD: u-boot
+    TEST_SUITE: "deqp"
   extends:
     - .lava-test
     - .use-arm_build
-  dependencies:
-    - meson-armhf
   needs:
+    - kernel+rootfs_armhf
     - meson-armhf
 
 .lava-test:arm64:
     KERNEL_IMAGE_NAME: Image
     KERNEL_IMAGE_TYPE: "type:\ image"
     BOOT_METHOD: u-boot
+    TEST_SUITE: "deqp"
   extends:
     - .lava-test
     - .use-arm_build
   dependencies:
     - meson-arm64
   needs:
+    - kernel+rootfs_arm64
     - meson-arm64
 
-panfrost-t720-gles2:arm64:
-  extends: .lava-test: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"
+  extends:
+    - .lava-test:armhf
+
+.lava-traces:arm64:
+  variables:
+    TEST_SUITE: "tracie"
+  extends:
+    - .lava-test:arm64
+
+.panfrost-t720-gles2:arm64:
+  extends:
+    - .lava-test: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"
+    ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T720"
   tags:
-    - lava-sun50i-h6-pine-h64
+    - mesa-ci-aarch64-lava-collabora
 
-panfrost-t760-gles2:armhf:
-  extends: .lava-test:armhf
+.panfrost-t760-gles2:armhf:
+  extends:
+    - .lava-test:armhf
+    - .panfrost-rules
   variables:
     DEVICE_TYPE: rk3288-veyron-jaq
+    DTB: ${DEVICE_TYPE}
     GPU_VERSION: panfrost-t760
     BOOT_METHOD: depthcharge
     KERNEL_IMAGE_TYPE: ""
-    ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6"
+    ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T760"
   tags:
-    - lava-rk3288-veyron-jaq
+    - mesa-ci-aarch64-lava-collabora
 
-panfrost-t860-gles2:arm64:
-  extends: .lava-test:arm64
+.panfrost-t760-traces:armhf:
+  extends:
+    - .lava-traces:armhf
+    - .panfrost-rules
   variables:
-    DEVICE_TYPE: rk3399-gru-kevin
-    GPU_VERSION: panfrost-t860
+    DEVICE_TYPE: rk3288-veyron-jaq
+    DTB: ${DEVICE_TYPE}
+    GPU_VERSION: panfrost-t760
     BOOT_METHOD: depthcharge
     KERNEL_IMAGE_TYPE: ""
-    ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6"
+    ENV_VARS: "PAN_MESA_DEBUG=deqp MESA_GLES_VERSION_OVERRIDE=3.1 MESA_GL_VERSION_OVERRIDE=3.3 MESA_GLSL_VERSION_OVERRIDE=330"
   tags:
-    - lava-rk3399-gru-kevin
+    - mesa-ci-aarch64-lava-collabora
 
-panfrost-t860-gles3:arm64:
-  extends: .lava-test:arm64
+.lava-rk3399-gru-kevin:
+  extends:
+    - .panfrost-rules
   variables:
     DEVICE_TYPE: rk3399-gru-kevin
+    DTB: ${DEVICE_TYPE}
     GPU_VERSION: panfrost-t860
     BOOT_METHOD: depthcharge
     KERNEL_IMAGE_TYPE: ""
-    DEQP_VERSION: gles3
-    ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6"
-    CI_NODE_INDEX: 1
-    CI_NODE_TOTAL: 5
   tags:
-    - lava-rk3399-gru-kevin
+    - mesa-ci-aarch64-lava-collabora
+
+panfrost-t860-gles2:arm64:
+  extends:
+    - .lava-test:arm64
+    - .lava-rk3399-gru-kevin
+  variables:
+    ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
+
+panfrost-t860-gles3:arm64:
+  parallel: 2
+  extends:
+    - .lava-test:arm64
+    - .lava-rk3399-gru-kevin
+  variables:
+    DEQP_VERSION: gles3
+    ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
+
+panfrost-t860-traces:arm64:
+  extends:
+    - .lava-traces:arm64
+    - .lava-rk3399-gru-kevin
+  variables:
+    ENV_VARS: "PAN_MESA_DEBUG=deqp MESA_GLES_VERSION_OVERRIDE=3.1 MESA_GL_VERSION_OVERRIDE=3.3 MESA_GLSL_VERSION_OVERRIDE=330"
 
 .panfrost-t820-gles2:arm64:
-  extends: .lava-test:arm64
+  extends:
+    - .lava-test: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"
+    ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T820"
   tags:
-    - lava-meson-gxm-khadas-vim2
+    - mesa-ci-aarch64-lava-baylibre
 
 .lima-mali400-test:armhf:
   parallel: 2
-  extends: .lava-test:armhf
+  extends:
+    - .lava-test:armhf
+    - .lima-rules
   variables:
     DEVICE_TYPE: sun8i-h3-libretech-all-h3-cc
+    DTB: ${DEVICE_TYPE}
     GPU_VERSION: lima
-    ENV_VARS: "DEQP_PARALLEL=3"
+    ENV_VARS: "DEQP_PARALLEL=3 DEQP_EXPECTED_RENDERER=Mali400"
   tags:
-    - lava-sun8i-h3-libretech-all-h3-cc
+    - mesa-ci-aarch64-lava-baylibre
 
-lima-mali450-test:arm64:
-  extends: .lava-test:arm64
+.lima-mali450-test:arm64:
+  extends:
+    - .lava-test:arm64
+    - .lima-rules
   variables:
     DEVICE_TYPE: meson-gxl-s905x-libretech-cc
+    DTB: ${DEVICE_TYPE}
     GPU_VERSION: lima
-    ENV_VARS: "DEQP_PARALLEL=6"
+    ENV_VARS: "DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=Mali450"
   tags:
-    - lava-meson-gxl-s905x-libretech-cc
+    - mesa-ci-aarch64-lava-baylibre
 
-.freedreno-a307-gles2:
-  extends: .lava-test:arm64
+# Commented out while waiting for more DUTs to come online
+.radeonsi-stoney-gles2:amd64:
+  extends:
+    - .lava-test:amd64
+    - .radeonsi-rules
   variables:
-    DEVICE_TYPE: apq8016-sbc
-    GPU_VERSION: freedreno-a307
-    ENV_VARS: "DEQP_PARALLEL=4"
-    KERNEL_IMAGE_NAME: db410c.img
-    BOOT_METHOD: fastboot
+    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:
-    - lava-mesa-db410c
+    - mesa-ci-aarch64-lava-collabora
 
-.freedreno-a307-gles3:
-  parallel: 6
-  extends: .freedreno-a307-gles2
+# 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