From fb326ef27f317a9eaa298bb414f4be8808523852 Mon Sep 17 00:00:00 2001 From: Eric Engestrom Date: Sun, 21 Jan 2024 18:10:21 +0000 Subject: [PATCH] ci/deqp: split vk and gl builds Part-of: --- .gitlab-ci/container/build-deqp.sh | 38 +++++++++++++++---- .../container/debian/x86_64_test-android.sh | 1 + .gitlab-ci/container/debian/x86_64_test-gl.sh | 4 +- .gitlab-ci/container/debian/x86_64_test-vk.sh | 1 + .gitlab-ci/container/lava_build.sh | 7 +++- .gitlab-ci/deqp-runner.sh | 8 +++- 6 files changed, 48 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci/container/build-deqp.sh b/.gitlab-ci/container/build-deqp.sh index 673d852dadb..66812ae1e2a 100644 --- a/.gitlab-ci/container/build-deqp.sh +++ b/.gitlab-ci/container/build-deqp.sh @@ -19,7 +19,8 @@ DEQP_VERSION=vulkan-cts-1.3.7.0 # Both list variables would have comments explaining the reasons behind the # patches. -cts_commits_to_backport=( +# shellcheck disable=SC2034 +vk_cts_commits_to_backport=( # Take multiview into account for task shader inv. stats 22aa3f4c59f6e1d4daebd5a8c9c05bce6cd3b63b @@ -33,7 +34,23 @@ cts_commits_to_backport=( c5453824b498c981c6ba42017d119f5de02a3e34 ) -cts_patch_files=( +# shellcheck disable=SC2034 +vk_cts_patch_files=( + # Android specific patches. + build-deqp_Allow-running-on-Android-from-the-command-line.patch + build-deqp_Android-prints-to-stdout-instead-of-logcat.patch + + # Change zlib URL because the one from zlib.net requires a human-verification + # Forward-port of b61f15f09adb6b7c9eefc7f7c44612c0c390abe5 into modern dEQP codebase + build-deqp_Change-zlib-URL-because-the-one-from-zlib.net-requir.patch +) + +# shellcheck disable=SC2034 +gl_cts_commits_to_backport=( +) + +# shellcheck disable=SC2034 +gl_cts_patch_files=( # Android specific patches. build-deqp_Allow-running-on-Android-from-the-command-line.patch build-deqp_Android-prints-to-stdout-instead-of-logcat.patch @@ -58,17 +75,22 @@ pushd /VK-GL-CTS mkdir -p /deqp -for commit in "${cts_commits_to_backport[@]}" +# shellcheck disable=SC2153 +deqp_api=${DEQP_API,,} + +cts_commits_to_backport="${deqp_api}_cts_commits_to_backport[@]" +for commit in "${!cts_commits_to_backport}" do PATCH_URL="https://github.com/KhronosGroup/VK-GL-CTS/commit/$commit.patch" - echo "Apply patch to VK-GL-CTS from $PATCH_URL" + echo "Apply patch to ${DEQP_API} CTS from $PATCH_URL" curl -L --retry 4 -f --retry-all-errors --retry-delay 60 $PATCH_URL | \ git am - done -for patch in "${cts_patch_files[@]}" +cts_patch_files="${deqp_api}_cts_patch_files[@]" +for patch in "${!cts_patch_files}" do - echo "Apply patch to VK-GL-CTS from $patch" + echo "Apply patch to ${DEQP_API} CTS from $patch" git am < $OLDPWD/.gitlab-ci/container/patches/$patch done @@ -76,7 +98,7 @@ done echo "dEQP base version $DEQP_VERSION" echo "The following local patches are applied on top:" git log --reverse --oneline $DEQP_VERSION.. --format=%s | sed 's/^/- /' -} > /deqp/version-log +} > /deqp/version-$deqp_api # --insecure is due to SSL cert failures hitting sourceforge for zlib and # libpng (sigh). The archives get their checksums checked anyway, and git @@ -127,7 +149,7 @@ fi if [ "${DEQP_TARGET}" != 'android' ]; then # Copy out the mustpass lists we want. - mkdir /deqp/mustpass + mkdir -p /deqp/mustpass 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-master.txt diff --git a/.gitlab-ci/container/debian/x86_64_test-android.sh b/.gitlab-ci/container/debian/x86_64_test-android.sh index 74ac1b6182f..e2563c3981e 100644 --- a/.gitlab-ci/container/debian/x86_64_test-android.sh +++ b/.gitlab-ci/container/debian/x86_64_test-android.sh @@ -49,6 +49,7 @@ rm -rf /root/.rustup ############### Build dEQP GL +DEQP_API=GL \ DEQP_TARGET="android" \ EXTRA_CMAKE_ARGS="-DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28" \ . .gitlab-ci/container/build-deqp.sh diff --git a/.gitlab-ci/container/debian/x86_64_test-gl.sh b/.gitlab-ci/container/debian/x86_64_test-gl.sh index fe105f1ea0e..2f940bd2d57 100644 --- a/.gitlab-ci/container/debian/x86_64_test-gl.sh +++ b/.gitlab-ci/container/debian/x86_64_test-gl.sh @@ -77,7 +77,9 @@ PIGLIT_OPTS="-DPIGLIT_BUILD_GLX_TESTS=ON -DPIGLIT_BUILD_CL_TESTS=ON -DPIGLIT_BUI ############### Build dEQP GL -DEQP_TARGET=surfaceless . .gitlab-ci/container/build-deqp.sh +DEQP_API=GL \ +DEQP_TARGET=surfaceless \ +. .gitlab-ci/container/build-deqp.sh ############### Build apitrace diff --git a/.gitlab-ci/container/debian/x86_64_test-vk.sh b/.gitlab-ci/container/debian/x86_64_test-vk.sh index 66b71bfef97..806af571b43 100644 --- a/.gitlab-ci/container/debian/x86_64_test-vk.sh +++ b/.gitlab-ci/container/debian/x86_64_test-vk.sh @@ -103,6 +103,7 @@ PIGLIT_BUILD_TARGETS="piglit_replayer" . .gitlab-ci/container/build-piglit.sh ############### Build dEQP VK +DEQP_API=VK \ . .gitlab-ci/container/build-deqp.sh ############### Build apitrace diff --git a/.gitlab-ci/container/lava_build.sh b/.gitlab-ci/container/lava_build.sh index 4e85a15d54a..9002cee755d 100755 --- a/.gitlab-ci/container/lava_build.sh +++ b/.gitlab-ci/container/lava_build.sh @@ -272,7 +272,12 @@ mv /usr/local/bin/*-runner $ROOTFS/usr/bin/. ############### Build dEQP -DEQP_TARGET=surfaceless . .gitlab-ci/container/build-deqp.sh +DEQP_API=GL \ +DEQP_TARGET=surfaceless \ +. .gitlab-ci/container/build-deqp.sh + +DEQP_API=VK \ +. .gitlab-ci/container/build-deqp.sh mv /deqp $ROOTFS/. diff --git a/.gitlab-ci/deqp-runner.sh b/.gitlab-ci/deqp-runner.sh index e586be3eb1e..ff1af0b963d 100755 --- a/.gitlab-ci/deqp-runner.sh +++ b/.gitlab-ci/deqp-runner.sh @@ -169,7 +169,13 @@ fi uncollapsed_section_switch deqp "deqp: deqp-runner" -cat /deqp/version-log +# Print the detailed version with the list of backports and local patches +for api in vk gl; do + deqp_version_log=/deqp/version-$api + if [ -r "$deqp_version_log" ]; then + cat "$deqp_version_log" + fi +done set +e if [ -z "$DEQP_SUITE" ]; then