OSDN Git Service

radv: enable POLARIS12 support.
[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         # XXX: we want to test the WSI, but those are enabled via the EGL toggles
183         # XXX: Platform X11 dependencies are checked when --enable-glx is set
184         - DRI_LOADERS="--enable-glx --disable-gbm --enable-egl --with-platforms=x11,wayland"
185         - DRI_DRIVERS=""
186         # XXX: enable DRI for EGL above
187         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
188         - GALLIUM_DRIVERS=""
189         - VULKAN_DRIVERS="intel,radeon"
190       addons:
191         apt:
192           sources:
193             - llvm-toolchain-trusty-3.9
194           packages:
195             # LLVM packaging is broken and misses these dependencies
196             - libedit-dev
197             # From sources above
198             - llvm-3.9-dev
199             # Common
200             - xz-utils
201             - x11proto-xf86vidmode-dev
202             - libexpat1-dev
203             - libx11-xcb-dev
204             - libelf-dev
205     - env:
206         - LABEL="scons"
207         - BUILD=scons
208         - SCONSFLAGS="-j4"
209         # Explicitly disable.
210         - SCONS_TARGET="llvm=0"
211         # Keep it symmetrical to the make build.
212         - SCONS_CHECK_COMMAND="scons llvm=0 check"
213       addons:
214         apt:
215           packages:
216             - scons
217             # Common
218             - xz-utils
219             - x11proto-xf86vidmode-dev
220             - libexpat1-dev
221             - libx11-xcb-dev
222             - libelf-dev
223     - env:
224         - LABEL="scons LLVM"
225         - BUILD=scons
226         - SCONSFLAGS="-j4"
227         - SCONS_TARGET="llvm=1"
228         # Keep it symmetrical to the make build.
229         - SCONS_CHECK_COMMAND="scons llvm=1 check"
230         - LLVM_VERSION=3.3
231         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
232       addons:
233         apt:
234           packages:
235             - scons
236             # LLVM packaging is broken and misses these dependencies
237             - libedit-dev
238             - llvm-3.3-dev
239             # Common
240             - xz-utils
241             - x11proto-xf86vidmode-dev
242             - libexpat1-dev
243             - libx11-xcb-dev
244             - libelf-dev
245     - env:
246         - LABEL="scons SWR"
247         - BUILD=scons
248         - SCONSFLAGS="-j4"
249         - SCONS_TARGET="swr=1"
250         - LLVM_VERSION=3.9
251         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
252         # Keep it symmetrical to the make build. There's no actual SWR, yet.
253         - SCONS_CHECK_COMMAND="true"
254         - OVERRIDE_CC="gcc-5"
255         - OVERRIDE_CXX="g++-5"
256       addons:
257         apt:
258           sources:
259             - ubuntu-toolchain-r-test
260             - llvm-toolchain-trusty-3.9
261           packages:
262             - scons
263             # LLVM packaging is broken and misses these dependencies
264             - libedit-dev
265             # From sources above
266             - g++-5
267             - llvm-3.9-dev
268             # Common
269             - xz-utils
270             - x11proto-xf86vidmode-dev
271             - libexpat1-dev
272             - libx11-xcb-dev
273             - libelf-dev
274
275 install:
276   - pip install --user mako
277
278   # Since libdrm gets updated in configure.ac regularly, try to pick up the
279   # latest version from there.
280   - for line in `grep "^LIBDRM.*_REQUIRED=" configure.ac`; do
281       old_ver=`echo $LIBDRM_VERSION | sed 's/libdrm-//'`;
282       new_ver=`echo $line | sed 's/.*REQUIRED=//'`;
283       if `echo "$old_ver,$new_ver" | tr ',' '\n' | sort -Vc 2> /dev/null`; then
284         export LIBDRM_VERSION="libdrm-$new_ver";
285       fi;
286     done
287
288   # Install dependencies where we require specific versions (or where
289   # disallowed by Travis CI's package whitelisting).
290
291   - wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
292   - tar -jxvf $XORGMACROS_VERSION.tar.bz2
293   - (cd $XORGMACROS_VERSION && ./configure --prefix=$HOME/prefix && make install)
294
295   - wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
296   - tar -jxvf $GLPROTO_VERSION.tar.bz2
297   - (cd $GLPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
298
299   - wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
300   - tar -jxvf $DRI2PROTO_VERSION.tar.bz2
301   - (cd $DRI2PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
302
303   - wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
304   - tar -jxvf $XCBPROTO_VERSION.tar.bz2
305   - (cd $XCBPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
306
307   - wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
308   - tar -jxvf $LIBXCB_VERSION.tar.bz2
309   - (cd $LIBXCB_VERSION && ./configure --prefix=$HOME/prefix && make install)
310
311   - wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
312   - tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
313   - (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
314
315   - wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
316   - tar -jxvf $LIBDRM_VERSION.tar.bz2
317   - (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api && make install)
318
319   - wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
320   - tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
321   - (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
322
323   # libtxc-dxtn uses the patented S3 Texture Compression
324   # algorithm. Therefore, we don't want to use this library but it is
325   # still possible through setting the USE_TXC_DXTN variable to yes in
326   # the travis web UI.
327   #
328   # According to Wikipedia, the patent expires on October 2, 2017:
329   # https://en.wikipedia.org/wiki/S3_Texture_Compression#Patent
330   - if test "x$USE_TXC_DXTN" = xyes; then
331       wget https://people.freedesktop.org/~cbrill/libtxc_dxtn/$LIBTXC_DXTN_VERSION.tar.bz2;
332       tar -jxvf $LIBTXC_DXTN_VERSION.tar.bz2;
333       (cd $LIBTXC_DXTN_VERSION && ./configure --prefix=$HOME/prefix && make install);
334     fi
335
336   - wget http://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
337   - tar -jxvf $LIBVDPAU_VERSION.tar.bz2
338   - (cd $LIBVDPAU_VERSION && ./configure --prefix=$HOME/prefix && make install)
339
340   - wget http://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
341   - tar -jxvf $LIBVA_VERSION.tar.bz2
342   - (cd $LIBVA_VERSION && ./configure --prefix=$HOME/prefix --disable-wayland --disable-dummy-driver && make install)
343
344   - wget http://wayland.freedesktop.org/releases/$LIBWAYLAND_VERSION.tar.xz
345   - tar -axvf $LIBWAYLAND_VERSION.tar.xz
346   - (cd $LIBWAYLAND_VERSION && ./configure --prefix=$HOME/prefix --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation && make install)
347
348   # Generate the header since one is missing on the Travis instance
349   - mkdir -p linux
350   - printf "%s\n" \
351            "#ifndef _LINUX_MEMFD_H" \
352            "#define _LINUX_MEMFD_H" \
353            "" \
354            "#define __NR_memfd_create 319" \
355            "#define SYS_memfd_create __NR_memfd_create" \
356            "" \
357            "#define MFD_CLOEXEC             0x0001U" \
358            "#define MFD_ALLOW_SEALING       0x0002U" \
359            "" \
360            "#endif /* _LINUX_MEMFD_H */" > linux/memfd.h
361
362 script:
363   - if test "x$BUILD" = xmake; then
364       test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
365       test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
366       export CC="$CC -isystem`pwd`";
367
368       ./autogen.sh --enable-debug
369         $DRI_LOADERS
370         --with-dri-drivers=$DRI_DRIVERS
371         $GALLIUM_ST
372         --with-gallium-drivers=$GALLIUM_DRIVERS
373         --with-vulkan-drivers=$VULKAN_DRIVERS
374         --disable-llvm-shared-libs
375         &&
376       make && eval $MAKE_CHECK_COMMAND;
377     fi
378
379   - if test "x$BUILD" = xscons; then
380       test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
381       test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
382       scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
383     fi