Re: [Mesa-dev] [PATCH 1/3] panfrost/ci: Run dEQP with the surfaceless platform
Series A-b On Tue, Sep 10, 2019 at 07:13:07PM +0100, Tomeu Vizoso wrote: > Instead of running it with the Wayland platform, which introduces > unwanted dependencies and complexity. > > Makes tests run 30% faster, as well. > > Signed-off-by: Tomeu Vizoso > --- > .../drivers/panfrost/ci/create-rootfs.sh | 2 +- > .../drivers/panfrost/ci/debian-install.sh | 35 --- > .../drivers/panfrost/ci/deqp-runner.sh| 10 ++ > src/gallium/drivers/panfrost/ci/gitlab-ci.yml | 21 --- > 4 files changed, 44 insertions(+), 24 deletions(-) > > diff --git a/src/gallium/drivers/panfrost/ci/create-rootfs.sh > b/src/gallium/drivers/panfrost/ci/create-rootfs.sh > index e01ccb34cb4a..e84f2271f422 100644 > --- a/src/gallium/drivers/panfrost/ci/create-rootfs.sh > +++ b/src/gallium/drivers/panfrost/ci/create-rootfs.sh > @@ -2,7 +2,7 @@ > > set -ex > > -apt-get -y install --no-install-recommends initramfs-tools libpng16-16 > weston strace libsensors5 > +apt-get -y install --no-install-recommends initramfs-tools libpng16-16 > strace libsensors5 libexpat1 libdrm2 > passwd root -d > chsh -s /bin/sh > ln -s /bin/sh /init > diff --git a/src/gallium/drivers/panfrost/ci/debian-install.sh > b/src/gallium/drivers/panfrost/ci/debian-install.sh > index ec2aa6723a88..4205ae56e35d 100644 > --- a/src/gallium/drivers/panfrost/ci/debian-install.sh > +++ b/src/gallium/drivers/panfrost/ci/debian-install.sh > @@ -28,7 +28,6 @@ apt-get -y install --no-install-recommends \ > python3-jinja2 \ > bison \ > flex \ > - libwayland-dev \ > gettext \ > cmake \ > bc \ > @@ -49,6 +48,7 @@ apt-get -y install --no-install-recommends \ > gdc-9 \ > lld-8 \ > nasm \ > + libegl1-mesa-dev \ > \ > libdrm-dev:${DEBIAN_ARCH} \ > libx11-dev:${DEBIAN_ARCH} \ > @@ -70,31 +70,42 @@ apt-get -y install --no-install-recommends \ > libxrandr-dev:${DEBIAN_ARCH} \ > libxshmfence-dev:${DEBIAN_ARCH} \ > libelf-dev:${DEBIAN_ARCH} \ > - libwayland-dev:${DEBIAN_ARCH} \ > - libwayland-egl-backend-dev:${DEBIAN_ARCH} \ > zlib1g-dev:${DEBIAN_ARCH} \ > libglvnd-core-dev:${DEBIAN_ARCH} \ > - wayland-protocols:${DEBIAN_ARCH} \ > + libgles2-mesa-dev:${DEBIAN_ARCH} \ > + libegl1-mesa-dev:${DEBIAN_ARCH} \ > libpng-dev:${DEBIAN_ARCH} > > - > ### Cross-build dEQP > mkdir -p /artifacts/rootfs/deqp > > -wget > https://github.com/KhronosGroup/VK-GL-CTS/archive/opengl-es-cts-3.2.5.0.zip > -unzip -q opengl-es-cts-3.2.5.0.zip -d / > -rm opengl-es-cts-3.2.5.0.zip > +git config --global user.email "m...@example.com" > +git config --global user.name "Mesa CI" > +# XXX: Use --depth 1 once we can drop the cherry-picks. > +git clone \ > +https://github.com/KhronosGroup/VK-GL-CTS.git \ > +-b opengl-es-cts-3.2.5.1 \ > +/VK-GL-CTS > +cd /VK-GL-CTS > +# Fix surfaceless build > +git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670 > +git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648 > + > +# surfaceless links against libkms and such despite not using it. > +sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake > +sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake > +sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake > > -cd /VK-GL-CTS-opengl-es-cts-3.2.5.0 > python3 external/fetch_sources.py > > cd /artifacts/rootfs/deqp > -cmake -DDEQP_TARGET=wayland \ > +cmake -G Ninja\ > + -DDEQP_TARGET=surfaceless \ >-DCMAKE_BUILD_TYPE=Release \ >-DCMAKE_C_COMPILER=${GCC_ARCH}-gcc \ >-DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++\ > - /VK-GL-CTS-opengl-es-cts-3.2.5.0 > -make -j$(nproc) > + /VK-GL-CTS > +ninja > rm -rf /artifacts/rootfs/deqp/external > rm -rf /artifacts/rootfs/deqp/modules/gles31 > rm -rf /artifacts/rootfs/deqp/modules/internal > diff --git a/src/gallium/drivers/panfrost/ci/deqp-runner.sh > b/src/gallium/drivers/panfrost/ci/deqp-runner.sh > index bf37d75aeabb..11faf2350569 100644 > --- a/src/gallium/drivers/panfrost/ci/deqp-runner.sh > +++ b/src/gallium/drivers/panfrost/ci/deqp-runner.sh > @@ -5,23 +5,18 @@ DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden" > DEQP_OPTIONS="$DEQP_OPTIONS --deqp-log-images=disable" > DEQP_OPTIONS="$DEQP_OPTIONS --deqp-watchdog=enable" > DEQP_OPTIONS="$DEQP_OPTIONS --deqp-crashhandler=enable" > +DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=pbuffer" > > -export XDG_RUNTIME_DIR=/tmp > export LIBGL_DRIVERS_PATH=/mesa/lib/dri/ > export LD_LIBRARY_PATH=/mesa/lib/ > -export XDG_CONFIG_HOME=$(pwd) > export MESA_GLES_VERSION_OVERRIDE=3.0 > > DEVFREQ_GOVERNOR=`echo /sys/devices/platform/*.gpu/devfreq/devfreq0/governor` > echo performance > $DEVFREQ_GOVERNOR > > -echo "[core]\nidle-time=0\nrequire-input=false\n[shell]\nlocking=false" > > weston.ini > - > cd /deqp/modules/gles2 > > # Generate
[Mesa-dev] [PATCH 1/3] panfrost/ci: Run dEQP with the surfaceless platform
Instead of running it with the Wayland platform, which introduces unwanted dependencies and complexity. Makes tests run 30% faster, as well. Signed-off-by: Tomeu Vizoso --- .../drivers/panfrost/ci/create-rootfs.sh | 2 +- .../drivers/panfrost/ci/debian-install.sh | 35 --- .../drivers/panfrost/ci/deqp-runner.sh| 10 ++ src/gallium/drivers/panfrost/ci/gitlab-ci.yml | 21 --- 4 files changed, 44 insertions(+), 24 deletions(-) diff --git a/src/gallium/drivers/panfrost/ci/create-rootfs.sh b/src/gallium/drivers/panfrost/ci/create-rootfs.sh index e01ccb34cb4a..e84f2271f422 100644 --- a/src/gallium/drivers/panfrost/ci/create-rootfs.sh +++ b/src/gallium/drivers/panfrost/ci/create-rootfs.sh @@ -2,7 +2,7 @@ set -ex -apt-get -y install --no-install-recommends initramfs-tools libpng16-16 weston strace libsensors5 +apt-get -y install --no-install-recommends initramfs-tools libpng16-16 strace libsensors5 libexpat1 libdrm2 passwd root -d chsh -s /bin/sh ln -s /bin/sh /init diff --git a/src/gallium/drivers/panfrost/ci/debian-install.sh b/src/gallium/drivers/panfrost/ci/debian-install.sh index ec2aa6723a88..4205ae56e35d 100644 --- a/src/gallium/drivers/panfrost/ci/debian-install.sh +++ b/src/gallium/drivers/panfrost/ci/debian-install.sh @@ -28,7 +28,6 @@ apt-get -y install --no-install-recommends \ python3-jinja2 \ bison \ flex \ - libwayland-dev \ gettext \ cmake \ bc \ @@ -49,6 +48,7 @@ apt-get -y install --no-install-recommends \ gdc-9 \ lld-8 \ nasm \ + libegl1-mesa-dev \ \ libdrm-dev:${DEBIAN_ARCH} \ libx11-dev:${DEBIAN_ARCH} \ @@ -70,31 +70,42 @@ apt-get -y install --no-install-recommends \ libxrandr-dev:${DEBIAN_ARCH} \ libxshmfence-dev:${DEBIAN_ARCH} \ libelf-dev:${DEBIAN_ARCH} \ - libwayland-dev:${DEBIAN_ARCH} \ - libwayland-egl-backend-dev:${DEBIAN_ARCH} \ zlib1g-dev:${DEBIAN_ARCH} \ libglvnd-core-dev:${DEBIAN_ARCH} \ - wayland-protocols:${DEBIAN_ARCH} \ + libgles2-mesa-dev:${DEBIAN_ARCH} \ + libegl1-mesa-dev:${DEBIAN_ARCH} \ libpng-dev:${DEBIAN_ARCH} - ### Cross-build dEQP mkdir -p /artifacts/rootfs/deqp -wget https://github.com/KhronosGroup/VK-GL-CTS/archive/opengl-es-cts-3.2.5.0.zip -unzip -q opengl-es-cts-3.2.5.0.zip -d / -rm opengl-es-cts-3.2.5.0.zip +git config --global user.email "m...@example.com" +git config --global user.name "Mesa CI" +# XXX: Use --depth 1 once we can drop the cherry-picks. +git clone \ +https://github.com/KhronosGroup/VK-GL-CTS.git \ +-b opengl-es-cts-3.2.5.1 \ +/VK-GL-CTS +cd /VK-GL-CTS +# Fix surfaceless build +git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670 +git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648 + +# surfaceless links against libkms and such despite not using it. +sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake +sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake +sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake -cd /VK-GL-CTS-opengl-es-cts-3.2.5.0 python3 external/fetch_sources.py cd /artifacts/rootfs/deqp -cmake -DDEQP_TARGET=wayland \ +cmake -G Ninja\ + -DDEQP_TARGET=surfaceless \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_COMPILER=${GCC_ARCH}-gcc \ -DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++\ - /VK-GL-CTS-opengl-es-cts-3.2.5.0 -make -j$(nproc) + /VK-GL-CTS +ninja rm -rf /artifacts/rootfs/deqp/external rm -rf /artifacts/rootfs/deqp/modules/gles31 rm -rf /artifacts/rootfs/deqp/modules/internal diff --git a/src/gallium/drivers/panfrost/ci/deqp-runner.sh b/src/gallium/drivers/panfrost/ci/deqp-runner.sh index bf37d75aeabb..11faf2350569 100644 --- a/src/gallium/drivers/panfrost/ci/deqp-runner.sh +++ b/src/gallium/drivers/panfrost/ci/deqp-runner.sh @@ -5,23 +5,18 @@ DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden" DEQP_OPTIONS="$DEQP_OPTIONS --deqp-log-images=disable" DEQP_OPTIONS="$DEQP_OPTIONS --deqp-watchdog=enable" DEQP_OPTIONS="$DEQP_OPTIONS --deqp-crashhandler=enable" +DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=pbuffer" -export XDG_RUNTIME_DIR=/tmp export LIBGL_DRIVERS_PATH=/mesa/lib/dri/ export LD_LIBRARY_PATH=/mesa/lib/ -export XDG_CONFIG_HOME=$(pwd) export MESA_GLES_VERSION_OVERRIDE=3.0 DEVFREQ_GOVERNOR=`echo /sys/devices/platform/*.gpu/devfreq/devfreq0/governor` echo performance > $DEVFREQ_GOVERNOR -echo "[core]\nidle-time=0\nrequire-input=false\n[shell]\nlocking=false" > weston.ini - cd /deqp/modules/gles2 # Generate test case list file -weston --tty=7 & -sleep 1 # Give some time for Weston to start up ./deqp-gles2 $DEQP_OPTIONS --deqp-runmode=stdout-caselist | grep "TEST: dEQP-GLES2" | cut -d ' ' -f 2 > /tmp/case-list.txt # Disable for now tests that are very slow, either by just using lots