OSDN Git Service

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