Mesa (master): ci: Build the full VK CTS for baremetal testing.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 9 19:04:02 UTC 2020


Module: Mesa
Branch: master
Commit: dd167788ec1afaa3b960eda16a05621e842f40dd
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dd167788ec1afaa3b960eda16a05621e842f40dd

Author: Eric Anholt <eric at anholt.net>
Date:   Thu May 28 12:50:51 2020 -0700

ci: Build the full VK CTS for baremetal testing.

I'm going to enable the VK CTS on cheza, so swap the deqp we have in the
container.  build-deqp-vk already included GLES deqp binaries and data,
and is a newer branch than the last opengl-es-cts tag.

This brings a few things back over from build-deqp-gl for testlog
extraction, and copyes out the GLES mustpass lists.

Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5266>

---

 .gitlab-ci.yml                          |  4 ++--
 .gitlab-ci/bare-metal/fastboot.sh       |  8 ++++++--
 .gitlab-ci/build-deqp-vk.sh             | 24 ++++++++++++++++++++----
 .gitlab-ci/container/baremetal_build.sh |  2 +-
 .gitlab-ci/container/lava_arm.sh        |  7 ++++++-
 .gitlab-ci/create-rootfs.sh             |  5 +++++
 6 files changed, 40 insertions(+), 10 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a99363bcfe8..2f6c1f11504 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -237,7 +237,7 @@ x86_test-gl:
 x86_test-vk:
   extends: .use-x86_test-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_test-vk "2020-06-02-new-vk-cts"
+    FDO_DISTRIBUTION_TAG: &x86_test-vk "2020-06-02-gles"
 
 # Debian 9 based x86 build image (old LLVM)
 x86_build_old:
@@ -292,7 +292,7 @@ arm64_test:
   extends:
     - .use-arm_test-base
   variables:
-    FDO_DISTRIBUTION_TAG: &arm64_test "2020-06-08"
+    FDO_DISTRIBUTION_TAG: &arm64_test "2020-06-09-cheza-vk"
 
 .use-arm64_test:
   variables:
diff --git a/.gitlab-ci/bare-metal/fastboot.sh b/.gitlab-ci/bare-metal/fastboot.sh
index d9360d2140e..f7db884c9f0 100755
--- a/.gitlab-ci/bare-metal/fastboot.sh
+++ b/.gitlab-ci/bare-metal/fastboot.sh
@@ -51,9 +51,13 @@ set -ex
 mkdir rootfs
 . .gitlab-ci/bare-metal/rootfs-setup.sh rootfs
 
-# Finally, pack it up into a cpio rootfs.
+# Finally, pack it up into a cpio rootfs.  Skip the vulkan CTS since none of
+# these devices use it and it would take up space in the initrd.
 pushd rootfs
-  find -H | cpio -H newc -o | xz --check=crc32 -T4 - > $CI_PROJECT_DIR/rootfs.cpio.gz
+find -H | \
+  egrep -v "external/(openglcts|vulkancts|amber|glslang|spirv-tools)" | \
+  cpio -H newc -o | \
+  xz --check=crc32 -T4 - > $CI_PROJECT_DIR/rootfs.cpio.gz
 popd
 
 cat $BM_KERNEL $BM_DTB > Image.gz-dtb
diff --git a/.gitlab-ci/build-deqp-vk.sh b/.gitlab-ci/build-deqp-vk.sh
index 4751ebfcd55..9142c5220cb 100644
--- a/.gitlab-ci/build-deqp-vk.sh
+++ b/.gitlab-ci/build-deqp-vk.sh
@@ -21,27 +21,43 @@ python3 external/fetch_sources.py --insecure
 
 mkdir -p /deqp
 
+# Save the testlog stylesheets:
+cp doc/testlog-stylesheet/testlog.{css,xsl} /deqp
 popd
 
 pushd /deqp
 cmake -G Ninja \
-      -DDEQP_TARGET=x11_glx \
+      -DDEQP_TARGET=${DEQP_TARGET:-x11_glx} \
       -DCMAKE_BUILD_TYPE=Release \
+      $EXTRA_CMAKE_ARGS \
       /VK-GL-CTS
 ninja
 
-# Copy out the mustpass list we want.
+# Copy out the mustpass lists we want.
 mkdir /deqp/mustpass
 cp /VK-GL-CTS/external/vulkancts/mustpass/master/vk-default.txt \
    /deqp/mustpass/vk-master.txt
 
-rm -rf /deqp/modules/internal
+for gles in gles2 gles3 gles31; do
+    cp \
+        /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/$gles-master.txt \
+        /deqp/mustpass/$gles-master.txt
+done
+
+# Save *some* executor utils, but otherwise strip things down
+# to reduct deqp build size:
+mkdir /deqp/executor.save
+cp /deqp/executor/testlog-to-* /deqp/executor.save
 rm -rf /deqp/executor
+mv /deqp/executor.save /deqp/executor
+
+rm -rf /deqp/modules/internal
 rm -rf /deqp/execserver
 rm -rf /deqp/modules/egl
 rm -rf /deqp/framework
 find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs rm -rf
-strip external/vulkancts/modules/vulkan/deqp-vk
+${STRIP_CMD:-strip} external/vulkancts/modules/vulkan/deqp-vk
+${STRIP_CMD:-strip} modules/*/deqp-*
 du -sh *
 rm -rf /VK-GL-CTS
 popd
diff --git a/.gitlab-ci/container/baremetal_build.sh b/.gitlab-ci/container/baremetal_build.sh
index 09527410182..0f697f0c75c 100644
--- a/.gitlab-ci/container/baremetal_build.sh
+++ b/.gitlab-ci/container/baremetal_build.sh
@@ -32,7 +32,7 @@ mkdir /var/cache/apt/archives/$arch
 
 ############### Create rootfs
 
-DEBIAN_ARCH=$arch . .gitlab-ci/container/lava_arm.sh
+DEBIAN_ARCH=$arch INCLUDE_VK_CTS=1 . .gitlab-ci/container/lava_arm.sh
 
 ccache --show-stats
 
diff --git a/.gitlab-ci/container/lava_arm.sh b/.gitlab-ci/container/lava_arm.sh
index ccebf1b823b..b5412804fbb 100644
--- a/.gitlab-ci/container/lava_arm.sh
+++ b/.gitlab-ci/container/lava_arm.sh
@@ -34,7 +34,12 @@ mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
 
 ############### Build dEQP
 STRIP_CMD="${GCC_ARCH}-strip"
-. .gitlab-ci/build-deqp-gl.sh
+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}/.
 
 
diff --git a/.gitlab-ci/create-rootfs.sh b/.gitlab-ci/create-rootfs.sh
index 6399a88ce3e..46a3dd239df 100644
--- a/.gitlab-ci/create-rootfs.sh
+++ b/.gitlab-ci/create-rootfs.sh
@@ -15,6 +15,11 @@ apt-get -y install --no-install-recommends \
     netcat-openbsd \
     wget \
     xz-utils
+
+if [ -n "$INCLUDE_VK_CTS" ]; then
+    apt-get install -y libvulkan1
+fi
+
 passwd root -d
 chsh -s /bin/sh
 



More information about the mesa-commit mailing list