OSDN Git Service

egl/android: fix segfault within swap_buffers
[android-x86/external-mesa.git] / .travis.yml
1 language: c
2
3 sudo: false
4 dist: trusty
5
6 cache:
7   apt: true
8   ccache: true
9
10 env:
11   global:
12     - XORG_RELEASES=http://xorg.freedesktop.org/releases/individual
13     - XCB_RELEASES=http://xcb.freedesktop.org/dist
14     - XORGMACROS_VERSION=util-macros-1.19.0
15     - GLPROTO_VERSION=glproto-1.4.17
16     - DRI2PROTO_VERSION=dri2proto-2.8
17     - LIBPCIACCESS_VERSION=libpciaccess-0.13.4
18     - LIBDRM_VERSION=libdrm-2.4.74
19     - XCBPROTO_VERSION=xcb-proto-1.11
20     - LIBXCB_VERSION=libxcb-1.11
21     - LIBXSHMFENCE_VERSION=libxshmfence-1.2
22     - LIBTXC_DXTN_VERSION=libtxc_dxtn-1.0.1
23     - LIBVDPAU_VERSION=libvdpau-1.1
24     - LIBVA_VERSION=libva-1.6.2
25     - LIBWAYLAND_VERSION=wayland-1.11.1
26     - PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig
27     - LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
28
29 matrix:
30   include:
31     - env:
32         - LABEL="make loaders/classic DRI"
33         - BUILD=make
34         - MAKEFLAGS="-j4"
35         - MAKE_CHECK_COMMAND="make check"
36         - DRI_LOADERS="--enable-glx --enable-gbm --enable-egl --with-platforms=x11,drm,surfaceless,wayland --enable-osmesa"
37         - DRI_DRIVERS="i915,i965,radeon,r200,swrast,nouveau"
38         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
39         - GALLIUM_DRIVERS=""
40         - VULKAN_DRIVERS=""
41       addons:
42         apt:
43           packages:
44             - xz-utils
45             - x11proto-xf86vidmode-dev
46             - libexpat1-dev
47             - libx11-xcb-dev
48     - env:
49         # NOTE: Building SWR is 2x (yes two) times slower than all the other
50         # gallium drivers combined.
51         # Start this early so that it doesn't hunder the run time.
52         - LABEL="make Gallium Drivers SWR"
53         - BUILD=make
54         - MAKEFLAGS="-j4"
55         - MAKE_CHECK_COMMAND="true"
56         - LLVM_VERSION=3.9
57         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
58         - OVERRIDE_CC="gcc-5"
59         - OVERRIDE_CXX="g++-5"
60         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
61         - DRI_DRIVERS=""
62         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
63         - GALLIUM_DRIVERS="swr"
64         - VULKAN_DRIVERS=""
65       addons:
66         apt:
67           sources:
68             - ubuntu-toolchain-r-test
69             - llvm-toolchain-trusty-3.9
70           packages:
71             # LLVM packaging is broken and misses these dependencies
72             - libedit-dev
73             # From sources above
74             - g++-5
75             - llvm-3.9-dev
76             # Common
77             - xz-utils
78             - x11proto-xf86vidmode-dev
79             - libexpat1-dev
80             - libx11-xcb-dev
81             - libelf-dev
82     - env:
83         - LABEL="make Gallium Drivers Other"
84         - BUILD=make
85         - MAKEFLAGS="-j4"
86         - MAKE_CHECK_COMMAND="true"
87         - LLVM_VERSION=3.9
88         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
89         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
90         - DRI_DRIVERS=""
91         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
92         - GALLIUM_DRIVERS="i915,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,etnaviv,imx"
93         - VULKAN_DRIVERS=""
94       addons:
95         apt:
96           sources:
97             - llvm-toolchain-trusty-3.9
98           packages:
99             # LLVM packaging is broken and misses these dependencies
100             - libedit-dev
101             # From sources above
102             - llvm-3.9-dev
103             # Common
104             - xz-utils
105             - x11proto-xf86vidmode-dev
106             - libexpat1-dev
107             - libx11-xcb-dev
108             - libelf-dev
109     - env:
110         # NOTE: Analogous to SWR above, building Clover is quite slow.
111         - LABEL="make Gallium ST Clover"
112         - BUILD=make
113         - MAKEFLAGS="-j4"
114         - MAKE_CHECK_COMMAND="true"
115         - LLVM_VERSION=3.6
116         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
117         - OVERRIDE_CC=gcc-4.7
118         - OVERRIDE_CXX=g++-4.7
119         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
120         - DRI_DRIVERS=""
121         - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
122         # i915 most likely doesn't work with OpenCL.
123         # Regardless - we're doing a quick build test here.
124         - GALLIUM_DRIVERS="i915"
125         - VULKAN_DRIVERS=""
126       addons:
127         apt:
128           sources:
129             - llvm-toolchain-trusty-3.6
130           packages:
131             - libclc-dev
132             # LLVM packaging is broken and misses these dependencies
133             - libedit-dev
134             - g++-4.7
135             # From sources above
136             - llvm-3.6-dev
137             - clang-3.6
138             - libclang-3.6-dev
139             # Common
140             - xz-utils
141             - x11proto-xf86vidmode-dev
142             - libexpat1-dev
143             - libx11-xcb-dev
144             - libelf-dev
145     - env:
146         - LABEL="make Gallium ST Other"
147         - BUILD=make
148         - MAKEFLAGS="-j4"
149         - MAKE_CHECK_COMMAND="true"
150         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
151         - DRI_DRIVERS=""
152         - GALLIUM_ST="--enable-dri --disable-opencl --enable-xa --enable-nine --enable-xvmc --enable-vdpau --enable-va --enable-omx --enable-gallium-osmesa"
153         # We need swrast for osmesa and nine.
154         # i915 most likely doesn't work with most ST.
155         # Regardless - we're doing a quick build test here.
156         - GALLIUM_DRIVERS="i915,swrast"
157         - VULKAN_DRIVERS=""
158       addons:
159         apt:
160           packages:
161             # Nine requires gcc 4.6... which is the one we have right ?
162             - libxvmc-dev
163             # Build locally, for now.
164             #- libvdpau-dev
165             #- libva-dev
166             - libomxil-bellagio-dev
167             # LLVM packaging is broken and misses these dependencies
168             - libedit-dev
169             # Common
170             - xz-utils
171             - x11proto-xf86vidmode-dev
172             - libexpat1-dev
173             - libx11-xcb-dev
174             - libelf-dev
175     - env:
176         - LABEL="make Vulkan"
177         - BUILD=make
178         - MAKEFLAGS="-j4"
179         - MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
180         - LLVM_VERSION=3.9
181         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
182         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl --with-platforms=x11,wayland"
183         - DRI_DRIVERS=""
184         - GALLIUM_ST="--enable-dri --enable-dri3 --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
185         - GALLIUM_DRIVERS=""
186         - VULKAN_DRIVERS="intel,radeon"
187       addons:
188         apt:
189           sources:
190             - llvm-toolchain-trusty-3.9
191           packages:
192             # LLVM packaging is broken and misses these dependencies
193             - libedit-dev
194             # From sources above
195             - llvm-3.9-dev
196             # Common
197             - xz-utils
198             - x11proto-xf86vidmode-dev
199             - libexpat1-dev
200             - libx11-xcb-dev
201             - libelf-dev
202     - env:
203         - LABEL="scons"
204         - BUILD=scons
205         - SCONSFLAGS="-j4"
206         # Explicitly disable.
207         - SCONS_TARGET="llvm=0"
208         # Keep it symmetrical to the make build.
209         - SCONS_CHECK_COMMAND="scons llvm=0 check"
210       addons:
211         apt:
212           packages:
213             - scons
214             # Common
215             - xz-utils
216             - x11proto-xf86vidmode-dev
217             - libexpat1-dev
218             - libx11-xcb-dev
219             - libelf-dev
220     - env:
221         - LABEL="scons LLVM"
222         - BUILD=scons
223         - SCONSFLAGS="-j4"
224         - SCONS_TARGET="llvm=1"
225         # Keep it symmetrical to the make build.
226         - SCONS_CHECK_COMMAND="scons llvm=1 check"
227         - LLVM_VERSION=3.3
228         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
229       addons:
230         apt:
231           packages:
232             - scons
233             # LLVM packaging is broken and misses these dependencies
234             - libedit-dev
235             - llvm-3.3-dev
236             # Common
237             - xz-utils
238             - x11proto-xf86vidmode-dev
239             - libexpat1-dev
240             - libx11-xcb-dev
241             - libelf-dev
242     - env:
243         - LABEL="scons SWR"
244         - BUILD=scons
245         - SCONSFLAGS="-j4"
246         - SCONS_TARGET="swr=1"
247         - LLVM_VERSION=3.9
248         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
249         # Keep it symmetrical to the make build. There's no actual SWR, yet.
250         - SCONS_CHECK_COMMAND="true"
251         - OVERRIDE_CC="gcc-5"
252         - OVERRIDE_CXX="g++-5"
253       addons:
254         apt:
255           sources:
256             - ubuntu-toolchain-r-test
257             - llvm-toolchain-trusty-3.9
258           packages:
259             - scons
260             # LLVM packaging is broken and misses these dependencies
261             - libedit-dev
262             # From sources above
263             - g++-5
264             - llvm-3.9-dev
265             # Common
266             - xz-utils
267             - x11proto-xf86vidmode-dev
268             - libexpat1-dev
269             - libx11-xcb-dev
270             - libelf-dev
271
272 install:
273   - pip install --user mako
274
275   # Since libdrm gets updated in configure.ac regularly, try to pick up the
276   # latest version from there.
277   - for line in `grep "^LIBDRM.*_REQUIRED=" configure.ac`; do
278       old_ver=`echo $LIBDRM_VERSION | sed 's/libdrm-//'`;
279       new_ver=`echo $line | sed 's/.*REQUIRED=//'`;
280       if `echo "$old_ver,$new_ver" | tr ',' '\n' | sort -Vc 2> /dev/null`; then
281         export LIBDRM_VERSION="libdrm-$new_ver";
282       fi;
283     done
284
285   # Install dependencies where we require specific versions (or where
286   # disallowed by Travis CI's package whitelisting).
287
288   - wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
289   - tar -jxvf $XORGMACROS_VERSION.tar.bz2
290   - (cd $XORGMACROS_VERSION && ./configure --prefix=$HOME/prefix && make install)
291
292   - wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
293   - tar -jxvf $GLPROTO_VERSION.tar.bz2
294   - (cd $GLPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
295
296   - wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
297   - tar -jxvf $DRI2PROTO_VERSION.tar.bz2
298   - (cd $DRI2PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
299
300   - wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
301   - tar -jxvf $XCBPROTO_VERSION.tar.bz2
302   - (cd $XCBPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
303
304   - wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
305   - tar -jxvf $LIBXCB_VERSION.tar.bz2
306   - (cd $LIBXCB_VERSION && ./configure --prefix=$HOME/prefix && make install)
307
308   - wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
309   - tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
310   - (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
311
312   - wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
313   - tar -jxvf $LIBDRM_VERSION.tar.bz2
314   - (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api && make install)
315
316   - wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
317   - tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
318   - (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
319
320   # libtxc-dxtn uses the patented S3 Texture Compression
321   # algorithm. Therefore, we don't want to use this library but it is
322   # still possible through setting the USE_TXC_DXTN variable to yes in
323   # the travis web UI.
324   #
325   # According to Wikipedia, the patent expires on October 2, 2017:
326   # https://en.wikipedia.org/wiki/S3_Texture_Compression#Patent
327   - if test "x$USE_TXC_DXTN" = xyes; then
328       wget https://people.freedesktop.org/~cbrill/libtxc_dxtn/$LIBTXC_DXTN_VERSION.tar.bz2;
329       tar -jxvf $LIBTXC_DXTN_VERSION.tar.bz2;
330       (cd $LIBTXC_DXTN_VERSION && ./configure --prefix=$HOME/prefix && make install);
331     fi
332
333   - wget http://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
334   - tar -jxvf $LIBVDPAU_VERSION.tar.bz2
335   - (cd $LIBVDPAU_VERSION && ./configure --prefix=$HOME/prefix && make install)
336
337   - wget http://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
338   - tar -jxvf $LIBVA_VERSION.tar.bz2
339   - (cd $LIBVA_VERSION && ./configure --prefix=$HOME/prefix --disable-wayland --disable-dummy-driver && make install)
340
341   - wget http://wayland.freedesktop.org/releases/$LIBWAYLAND_VERSION.tar.xz
342   - tar -axvf $LIBWAYLAND_VERSION.tar.xz
343   - (cd $LIBWAYLAND_VERSION && ./configure --prefix=$HOME/prefix --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation && make install)
344
345   # Generate the header since one is missing on the Travis instance
346   - mkdir -p linux
347   - printf "%s\n" \
348            "#ifndef _LINUX_MEMFD_H" \
349            "#define _LINUX_MEMFD_H" \
350            "" \
351            "#define __NR_memfd_create 319" \
352            "#define SYS_memfd_create __NR_memfd_create" \
353            "" \
354            "#define MFD_CLOEXEC             0x0001U" \
355            "#define MFD_ALLOW_SEALING       0x0002U" \
356            "" \
357            "#endif /* _LINUX_MEMFD_H */" > linux/memfd.h
358
359 script:
360   - if test "x$BUILD" = xmake; then
361       test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
362       test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
363       export CC="$CC -isystem`pwd`";
364
365       ./autogen.sh --enable-debug
366         $DRI_LOADERS
367         --with-dri-drivers=$DRI_DRIVERS
368         $GALLIUM_ST
369         --with-gallium-drivers=$GALLIUM_DRIVERS
370         --with-vulkan-drivers=$VULKAN_DRIVERS
371         --disable-llvm-shared-libs
372         &&
373       make && eval $MAKE_CHECK_COMMAND;
374     fi
375
376   - if test "x$BUILD" = xscons; then
377       test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
378       test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
379       scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
380     fi