Re: [Mesa-dev] [PATCH 1/3] panfrost/ci: Run dEQP with the surfaceless platform

2019-09-11 Thread Alyssa Rosenzweig
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

2019-09-10 Thread Tomeu Vizoso
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