ci: compile deqp for android

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 <tomeu.vizoso@collabora.com>
Signed-off-by: Helen Koike <helen.koike@collabora.com>
Reviewed-by: Sergi Blanch Torné <sergi.blanch.torne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20019>
This commit is contained in:
Helen Koike
2022-11-21 14:31:39 -03:00
parent d024af8d00
commit 54a46c594e

View File

@@ -6,8 +6,8 @@ set -ex
git config --global user.email "mesa@example.com" git config --global user.email "mesa@example.com"
git config --global user.name "Mesa CI" git config --global user.name "Mesa CI"
git clone \ git clone \
https://github.com/KhronosGroup/VK-GL-CTS.git \ https://github.com/helen-fornazier/VK-GL-CTS.git \
-b vulkan-cts-1.3.3.1 \ -b vulkan-cts-1.3.3.1_mesa-android-2023-01-19 \
--depth 1 \ --depth 1 \
/VK-GL-CTS /VK-GL-CTS
pushd /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 \ 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/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 # --insecure is due to SSL cert failures hitting sourceforge for zlib and
# libpng (sigh). The archives get their checksums checked anyway, and git # libpng (sigh). The archives get their checksums checked anyway, and git
# always goes through ssh or https. # always goes through ssh or https.
@@ -35,21 +38,24 @@ cp doc/testlog-stylesheet/testlog.{css,xsl} /deqp
popd popd
pushd /deqp 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 \ if [ "${DEQP_TARGET}" != 'android' ]; then
-DDEQP_TARGET=wayland \ # When including EGL/X11 testing, do that build first and save off its
-DCMAKE_BUILD_TYPE=Release \ # deqp-egl binary.
$EXTRA_CMAKE_ARGS cmake -S /VK-GL-CTS -B . -G Ninja \
ninja modules/egl/deqp-egl -DDEQP_TARGET=x11_egl_glx \
cp /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-wayland -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 \ cmake -S /VK-GL-CTS -B . -G Ninja \
-DDEQP_TARGET=${DEQP_TARGET:-x11_glx} \ -DDEQP_TARGET=${DEQP_TARGET:-x11_glx} \
@@ -57,7 +63,9 @@ cmake -S /VK-GL-CTS -B . -G Ninja \
$EXTRA_CMAKE_ARGS $EXTRA_CMAKE_ARGS
ninja 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. # Copy out the mustpass lists we want.
mkdir /deqp/mustpass 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 >> /deqp/mustpass/vk-master.txt
done done
cp \ if [ "${DEQP_TARGET}" != 'android' ]; then
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \ cp \
/deqp/mustpass/. /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \
cp \ /deqp/mustpass/.
/deqp/external/openglcts/modules/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-master.txt \ cp \
/deqp/mustpass/. /deqp/external/openglcts/modules/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-master.txt \
cp \ /deqp/mustpass/.
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/khronos_mustpass/3.2.6.x/*-master.txt \ cp \
/deqp/mustpass/. /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/khronos_mustpass/3.2.6.x/*-master.txt \
cp \ /deqp/mustpass/.
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass/4.6.1.x/*-master.txt \ cp \
/deqp/mustpass/. /deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass/4.6.1.x/*-master.txt \
cp \ /deqp/mustpass/.
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass_single/4.6.1.x/*-single.txt \ cp \
/deqp/mustpass/. /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 # Save *some* executor utils, but otherwise strip things down
# to reduct deqp build size: # to reduct deqp build size:
mkdir /deqp/executor.save mkdir /deqp/executor.save
cp /deqp/executor/testlog-to-* /deqp/executor.save cp /deqp/executor/testlog-to-* /deqp/executor.save
rm -rf /deqp/executor rm -rf /deqp/executor
mv /deqp/executor.save /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. # 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 rm -rf /deqp/external/openglcts/modules/gl_cts/data/mustpass