From 54a46c594ebe883f6bdc0ff2554183fb93488730 Mon Sep 17 00:00:00 2001 From: Helen Koike Date: Mon, 21 Nov 2022 14:31:39 -0300 Subject: [PATCH] ci: compile deqp for android MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To allow testing mesa on android, we need deqp compiled for it, so we can add android on the ci. Add patch that redirect logs to stdout instead of logcat. Compile deqp to allow running it directly from command line instead of Android activity. Co-developed-by: Tomeu Vizoso Signed-off-by: Helen Koike Reviewed-by: Sergi Blanch Torné Part-of: --- .gitlab-ci/container/build-deqp.sh | 86 +++++++++++++++++------------- 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/.gitlab-ci/container/build-deqp.sh b/.gitlab-ci/container/build-deqp.sh index 3a134d690b3..2827aab3953 100644 --- a/.gitlab-ci/container/build-deqp.sh +++ b/.gitlab-ci/container/build-deqp.sh @@ -6,8 +6,8 @@ set -ex git config --global user.email "mesa@example.com" git config --global user.name "Mesa CI" git clone \ - https://github.com/KhronosGroup/VK-GL-CTS.git \ - -b vulkan-cts-1.3.3.1 \ + https://github.com/helen-fornazier/VK-GL-CTS.git \ + -b vulkan-cts-1.3.3.1_mesa-android-2023-01-19 \ --depth 1 \ /VK-GL-CTS pushd /VK-GL-CTS @@ -23,6 +23,9 @@ curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ "https://github.com/KhronosGroup/VK-GL-CTS/commit/4fa2b40411921b304f5dad8d106b212ad5b0f172.patch" | git am - +# https://github.com/KhronosGroup/VK-GL-CTS/pull/360 +sed -i -e 's#http://zlib.net/zlib-1.2.12.tar.gz#http://zlib.net/fossils/zlib-1.2.12.tar.gz#g' external/fetch_sources.py + # --insecure is due to SSL cert failures hitting sourceforge for zlib and # libpng (sigh). The archives get their checksums checked anyway, and git # always goes through ssh or https. @@ -35,21 +38,24 @@ cp doc/testlog-stylesheet/testlog.{css,xsl} /deqp popd pushd /deqp -# When including EGL/X11 testing, do that build first and save off its -# deqp-egl binary. -cmake -S /VK-GL-CTS -B . -G Ninja \ - -DDEQP_TARGET=x11_egl_glx \ - -DCMAKE_BUILD_TYPE=Release \ - $EXTRA_CMAKE_ARGS -ninja modules/egl/deqp-egl -cp /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-x11 -cmake -S /VK-GL-CTS -B . -G Ninja \ - -DDEQP_TARGET=wayland \ - -DCMAKE_BUILD_TYPE=Release \ - $EXTRA_CMAKE_ARGS -ninja modules/egl/deqp-egl -cp /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-wayland +if [ "${DEQP_TARGET}" != 'android' ]; then + # When including EGL/X11 testing, do that build first and save off its + # deqp-egl binary. + cmake -S /VK-GL-CTS -B . -G Ninja \ + -DDEQP_TARGET=x11_egl_glx \ + -DCMAKE_BUILD_TYPE=Release \ + $EXTRA_CMAKE_ARGS + ninja modules/egl/deqp-egl + cp /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-x11 + + cmake -S /VK-GL-CTS -B . -G Ninja \ + -DDEQP_TARGET=wayland \ + -DCMAKE_BUILD_TYPE=Release \ + $EXTRA_CMAKE_ARGS + ninja modules/egl/deqp-egl + cp /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-wayland +fi cmake -S /VK-GL-CTS -B . -G Ninja \ -DDEQP_TARGET=${DEQP_TARGET:-x11_glx} \ @@ -57,7 +63,9 @@ cmake -S /VK-GL-CTS -B . -G Ninja \ $EXTRA_CMAKE_ARGS ninja -mv /deqp/modules/egl/deqp-egl-x11 /deqp/modules/egl/deqp-egl +if [ "${DEQP_TARGET}" != 'android' ]; then + mv /deqp/modules/egl/deqp-egl-x11 /deqp/modules/egl/deqp-egl +fi # Copy out the mustpass lists we want. mkdir /deqp/mustpass @@ -66,28 +74,30 @@ for mustpass in $(< /VK-GL-CTS/external/vulkancts/mustpass/main/vk-default.txt) >> /deqp/mustpass/vk-master.txt done -cp \ - /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \ - /deqp/mustpass/. -cp \ - /deqp/external/openglcts/modules/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-master.txt \ - /deqp/mustpass/. -cp \ - /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/khronos_mustpass/3.2.6.x/*-master.txt \ - /deqp/mustpass/. -cp \ - /deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass/4.6.1.x/*-master.txt \ - /deqp/mustpass/. -cp \ - /deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass_single/4.6.1.x/*-single.txt \ - /deqp/mustpass/. +if [ "${DEQP_TARGET}" != 'android' ]; then + cp \ + /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \ + /deqp/mustpass/. + cp \ + /deqp/external/openglcts/modules/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-master.txt \ + /deqp/mustpass/. + cp \ + /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/khronos_mustpass/3.2.6.x/*-master.txt \ + /deqp/mustpass/. + cp \ + /deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass/4.6.1.x/*-master.txt \ + /deqp/mustpass/. + cp \ + /deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass_single/4.6.1.x/*-single.txt \ + /deqp/mustpass/. -# 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 + # 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 +fi # Remove other mustpass files, since we saved off the ones we wanted to conventient locations above. rm -rf /deqp/external/openglcts/modules/gl_cts/data/mustpass