OSDN Git Service

intel/fs: Use a pure vertical stride for large register strides
[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     - WAYLAND_RELEASES=http://wayland.freedesktop.org/releases
15     - XORGMACROS_VERSION=util-macros-1.19.0
16     - GLPROTO_VERSION=glproto-1.4.17
17     - DRI2PROTO_VERSION=dri2proto-2.8
18     - LIBPCIACCESS_VERSION=libpciaccess-0.13.4
19     - LIBDRM_VERSION=libdrm-2.4.74
20     - XCBPROTO_VERSION=xcb-proto-1.11
21     - LIBXCB_VERSION=libxcb-1.11
22     - LIBXSHMFENCE_VERSION=libxshmfence-1.2
23     - LIBVDPAU_VERSION=libvdpau-1.1
24     - LIBVA_VERSION=libva-1.6.2
25     - LIBWAYLAND_VERSION=wayland-1.11.1
26     - WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.8
27     - PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
28     - LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
29     - PATH="$HOME/prefix/bin:$PATH"
30
31 matrix:
32   include:
33     - env:
34         - LABEL="meson Vulkan"
35         - BUILD=meson
36         - MESON_OPTIONS="-Ddri-drivers= -Dgallium-drivers="
37       addons:
38         apt:
39           sources:
40             - llvm-toolchain-trusty-3.9
41           packages:
42             # LLVM packaging is broken and misses these dependencies
43             - libedit-dev
44             # From sources above
45             - llvm-3.9-dev
46             # Common
47             - xz-utils
48             - libexpat1-dev
49             - libelf-dev
50             - python3-pip
51     - env:
52         - LABEL="meson loaders/classic DRI"
53         - BUILD=meson
54         - MESON_OPTIONS="-Dvulkan-drivers= -Dgallium-drivers="
55       addons:
56         apt:
57           packages:
58             - xz-utils
59             - x11proto-xf86vidmode-dev
60             - libexpat1-dev
61             - libx11-xcb-dev
62             - libxdamage-dev
63             - libxfixes-dev
64             - python3-pip
65     - env:
66         - LABEL="make loaders/classic DRI"
67         - BUILD=make
68         - MAKEFLAGS="-j4"
69         - MAKE_CHECK_COMMAND="make check"
70         - DRI_LOADERS="--enable-glx --enable-gbm --enable-egl --with-platforms=x11,drm,surfaceless,wayland --enable-osmesa"
71         - DRI_DRIVERS="i915,i965,radeon,r200,swrast,nouveau"
72         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
73         - GALLIUM_DRIVERS=""
74         - VULKAN_DRIVERS=""
75         - LIBUNWIND_FLAGS="--disable-libunwind"
76       addons:
77         apt:
78           packages:
79             - xz-utils
80             - x11proto-xf86vidmode-dev
81             - libexpat1-dev
82             - libx11-xcb-dev
83             - libxdamage-dev
84             - libxfixes-dev
85     - env:
86         # NOTE: Building SWR is 2x (yes two) times slower than all the other
87         # gallium drivers combined.
88         # Start this early so that it doesn't hunder the run time.
89         - LABEL="make Gallium Drivers SWR"
90         - BUILD=make
91         - MAKEFLAGS="-j4"
92         - MAKE_CHECK_COMMAND="true"
93         - LLVM_VERSION=3.9
94         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
95         - OVERRIDE_CC="gcc-4.8"
96         - OVERRIDE_CXX="g++-4.8"
97         # New binutils linker is required for llvm-3.9
98         - OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
99         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
100         - DRI_DRIVERS=""
101         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
102         - GALLIUM_DRIVERS="swr"
103         - VULKAN_DRIVERS=""
104         - LIBUNWIND_FLAGS="--enable-libunwind"
105       addons:
106         apt:
107           sources:
108             - llvm-toolchain-trusty-3.9
109           packages:
110             - binutils-2.26
111             # LLVM packaging is broken and misses these dependencies
112             - libedit-dev
113             # From sources above
114             - llvm-3.9-dev
115             # Common
116             - xz-utils
117             - x11proto-xf86vidmode-dev
118             - libexpat1-dev
119             - libx11-xcb-dev
120             - libelf-dev
121             - libunwind8-dev
122     - env:
123         - LABEL="make Gallium Drivers Other"
124         - BUILD=make
125         - MAKEFLAGS="-j4"
126         - MAKE_CHECK_COMMAND="true"
127         - LLVM_VERSION=3.9
128         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
129         # New binutils linker is required for llvm-3.9
130         - OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
131         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
132         - DRI_DRIVERS=""
133         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
134         - GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,etnaviv,imx"
135         - VULKAN_DRIVERS=""
136         - LIBUNWIND_FLAGS="--enable-libunwind"
137       addons:
138         apt:
139           sources:
140             - llvm-toolchain-trusty-3.9
141           packages:
142             - binutils-2.26
143             # LLVM packaging is broken and misses these dependencies
144             - libedit-dev
145             # From sources above
146             - llvm-3.9-dev
147             # Common
148             - xz-utils
149             - x11proto-xf86vidmode-dev
150             - libexpat1-dev
151             - libx11-xcb-dev
152             - libelf-dev
153             - libunwind8-dev
154     - env:
155         # NOTE: Analogous to SWR above, building Clover is quite slow.
156         - LABEL="make Gallium ST Clover LLVM-3.9"
157         - BUILD=make
158         - MAKEFLAGS="-j4"
159         - MAKE_CHECK_COMMAND="true"
160         - LLVM_VERSION=3.9
161         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
162         - OVERRIDE_CC=gcc-4.7
163         - OVERRIDE_CXX=g++-4.7
164         # New binutils linker is required for llvm-3.9
165         - OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
166         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
167         - DRI_DRIVERS=""
168         - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
169         - GALLIUM_DRIVERS="r600,radeonsi"
170         - VULKAN_DRIVERS=""
171         - LIBUNWIND_FLAGS="--enable-libunwind"
172       addons:
173         apt:
174           sources:
175             - llvm-toolchain-trusty-3.9
176           packages:
177             - binutils-2.26
178             - libclc-dev
179             # LLVM packaging is broken and misses these dependencies
180             - libedit-dev
181             - g++-4.7
182             # From sources above
183             - llvm-3.9-dev
184             - clang-3.9
185             - libclang-3.9-dev
186             # Common
187             - xz-utils
188             - x11proto-xf86vidmode-dev
189             - libexpat1-dev
190             - libx11-xcb-dev
191             - libelf-dev
192             - libunwind8-dev
193     - env:
194         # NOTE: Analogous to SWR above, building Clover is quite slow.
195         - LABEL="make Gallium ST Clover LLVM-4.0"
196         - BUILD=make
197         - MAKEFLAGS="-j4"
198         - MAKE_CHECK_COMMAND="true"
199         - LLVM_VERSION=4.0
200         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
201         - OVERRIDE_CC=gcc-4.8
202         - OVERRIDE_CXX=g++-4.8
203         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
204         - DRI_DRIVERS=""
205         - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
206         - GALLIUM_DRIVERS="r600,radeonsi"
207         - VULKAN_DRIVERS=""
208         - LIBUNWIND_FLAGS="--enable-libunwind"
209       addons:
210         apt:
211           sources:
212             - llvm-toolchain-trusty-4.0
213           packages:
214             - libclc-dev
215             # LLVM packaging is broken and misses these dependencies
216             - libedit-dev
217             - g++-4.8
218             # From sources above
219             - llvm-4.0-dev
220             - clang-4.0
221             - libclang-4.0-dev
222             # Common
223             - xz-utils
224             - x11proto-xf86vidmode-dev
225             - libexpat1-dev
226             - libx11-xcb-dev
227             - libelf-dev
228             - libunwind8-dev
229     - env:
230         # NOTE: Analogous to SWR above, building Clover is quite slow.
231         - LABEL="make Gallium ST Clover LLVM-5.0"
232         - BUILD=make
233         - MAKEFLAGS="-j4"
234         - MAKE_CHECK_COMMAND="true"
235         - LLVM_VERSION=5.0
236         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
237         - OVERRIDE_CC=gcc-4.8
238         - OVERRIDE_CXX=g++-4.8
239         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
240         - DRI_DRIVERS=""
241         - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
242         - GALLIUM_DRIVERS="r600,radeonsi"
243         - VULKAN_DRIVERS=""
244         - LIBUNWIND_FLAGS="--enable-libunwind"
245       addons:
246         apt:
247           sources:
248             - llvm-toolchain-trusty-5.0
249           packages:
250             - libclc-dev
251             # LLVM packaging is broken and misses these dependencies
252             - libedit-dev
253             - g++-4.8
254             # From sources above
255             - llvm-5.0-dev
256             - clang-5.0
257             - libclang-5.0-dev
258             # Common
259             - xz-utils
260             - x11proto-xf86vidmode-dev
261             - libexpat1-dev
262             - libx11-xcb-dev
263             - libelf-dev
264             - libunwind8-dev
265     - env:
266         - LABEL="make Gallium ST Other"
267         - BUILD=make
268         - MAKEFLAGS="-j4"
269         - MAKE_CHECK_COMMAND="true"
270         - LLVM_VERSION=3.3
271         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
272         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
273         - DRI_DRIVERS=""
274         - GALLIUM_ST="--enable-dri --disable-opencl --enable-xa --enable-nine --enable-xvmc --enable-vdpau --enable-va --enable-omx-bellagio --enable-gallium-osmesa"
275         # We need swrast for osmesa and nine.
276         # i915 most likely doesn't work with most ST.
277         # Regardless - we're doing a quick build test here.
278         - GALLIUM_DRIVERS="i915,swrast"
279         - VULKAN_DRIVERS=""
280         - LIBUNWIND_FLAGS="--enable-libunwind"
281       addons:
282         apt:
283           packages:
284             # We actually want to test against llvm-3.3
285             - llvm-3.3-dev
286             # Nine requires gcc 4.6... which is the one we have right ?
287             - libxvmc-dev
288             # Build locally, for now.
289             #- libvdpau-dev
290             #- libva-dev
291             - libomxil-bellagio-dev
292             # LLVM packaging is broken and misses these dependencies
293             - libedit-dev
294             # Common
295             - xz-utils
296             - x11proto-xf86vidmode-dev
297             - libexpat1-dev
298             - libx11-xcb-dev
299             - libelf-dev
300             - libunwind8-dev
301     - env:
302         - LABEL="make Vulkan"
303         - BUILD=make
304         - MAKEFLAGS="-j4"
305         - MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
306         - LLVM_VERSION=3.9
307         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
308         # New binutils linker is required for llvm-3.9
309         - OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
310         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl --with-platforms=x11,wayland"
311         - DRI_DRIVERS=""
312         - GALLIUM_ST="--enable-dri --enable-dri3 --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
313         - GALLIUM_DRIVERS=""
314         - VULKAN_DRIVERS="intel,radeon"
315         - LIBUNWIND_FLAGS="--disable-libunwind"
316       addons:
317         apt:
318           sources:
319             - llvm-toolchain-trusty-3.9
320           packages:
321             - binutils-2.26
322             # LLVM packaging is broken and misses these dependencies
323             - libedit-dev
324             # From sources above
325             - llvm-3.9-dev
326             # Common
327             - xz-utils
328             - x11proto-xf86vidmode-dev
329             - libexpat1-dev
330             - libx11-xcb-dev
331             - libelf-dev
332     - env:
333         - LABEL="scons"
334         - BUILD=scons
335         - SCONSFLAGS="-j4"
336         # Explicitly disable.
337         - SCONS_TARGET="llvm=0"
338         # Keep it symmetrical to the make build.
339         - SCONS_CHECK_COMMAND="scons llvm=0 check"
340       addons:
341         apt:
342           packages:
343             - scons
344             # Common
345             - xz-utils
346             - x11proto-xf86vidmode-dev
347             - libexpat1-dev
348             - libx11-xcb-dev
349             - libelf-dev
350     - env:
351         - LABEL="scons LLVM"
352         - BUILD=scons
353         - SCONSFLAGS="-j4"
354         - SCONS_TARGET="llvm=1"
355         # Keep it symmetrical to the make build.
356         - SCONS_CHECK_COMMAND="scons llvm=1 check"
357         - LLVM_VERSION=3.3
358         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
359       addons:
360         apt:
361           packages:
362             - scons
363             # LLVM packaging is broken and misses these dependencies
364             - libedit-dev
365             - llvm-3.3-dev
366             # Common
367             - xz-utils
368             - x11proto-xf86vidmode-dev
369             - libexpat1-dev
370             - libx11-xcb-dev
371             - libelf-dev
372     - env:
373         - LABEL="scons SWR"
374         - BUILD=scons
375         - SCONSFLAGS="-j4"
376         - SCONS_TARGET="swr=1"
377         - LLVM_VERSION=3.9
378         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
379         # Keep it symmetrical to the make build. There's no actual SWR, yet.
380         - SCONS_CHECK_COMMAND="true"
381         - OVERRIDE_CC="gcc-4.8"
382         - OVERRIDE_CXX="g++-4.8"
383       addons:
384         apt:
385           sources:
386             - llvm-toolchain-trusty-3.9
387           packages:
388             - scons
389             # LLVM packaging is broken and misses these dependencies
390             - libedit-dev
391             # From sources above
392             - llvm-3.9-dev
393             # Common
394             - xz-utils
395             - x11proto-xf86vidmode-dev
396             - libexpat1-dev
397             - libx11-xcb-dev
398             - libelf-dev
399
400 install:
401   - pip install --user mako
402
403   # Install the latest meson from pip, since the version in the ubuntu repos is
404   # often quite old.
405   - if test "x$BUILD" = xmeson; then
406       pip3 install --user meson;
407     fi
408
409   # Since libdrm gets updated in configure.ac regularly, try to pick up the
410   # latest version from there.
411   - for line in `grep "^LIBDRM.*_REQUIRED=" configure.ac`; do
412       old_ver=`echo $LIBDRM_VERSION | sed 's/libdrm-//'`;
413       new_ver=`echo $line | sed 's/.*REQUIRED=//'`;
414       if `echo "$old_ver,$new_ver" | tr ',' '\n' | sort -Vc 2> /dev/null`; then
415         export LIBDRM_VERSION="libdrm-$new_ver";
416       fi;
417     done
418
419   # Install dependencies where we require specific versions (or where
420   # disallowed by Travis CI's package whitelisting).
421
422   - wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
423   - tar -jxvf $XORGMACROS_VERSION.tar.bz2
424   - (cd $XORGMACROS_VERSION && ./configure --prefix=$HOME/prefix && make install)
425
426   - wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
427   - tar -jxvf $GLPROTO_VERSION.tar.bz2
428   - (cd $GLPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
429
430   - wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
431   - tar -jxvf $DRI2PROTO_VERSION.tar.bz2
432   - (cd $DRI2PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
433
434   - wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
435   - tar -jxvf $XCBPROTO_VERSION.tar.bz2
436   - (cd $XCBPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
437
438   - wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
439   - tar -jxvf $LIBXCB_VERSION.tar.bz2
440   - (cd $LIBXCB_VERSION && ./configure --prefix=$HOME/prefix && make install)
441
442   - wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
443   - tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
444   - (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
445
446   - wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
447   - tar -jxvf $LIBDRM_VERSION.tar.bz2
448   - (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api && make install)
449
450   - wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
451   - tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
452   - (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
453
454   - wget http://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
455   - tar -jxvf $LIBVDPAU_VERSION.tar.bz2
456   - (cd $LIBVDPAU_VERSION && ./configure --prefix=$HOME/prefix && make install)
457
458   - wget http://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
459   - tar -jxvf $LIBVA_VERSION.tar.bz2
460   - (cd $LIBVA_VERSION && ./configure --prefix=$HOME/prefix --disable-wayland --disable-dummy-driver && make install)
461
462   - wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
463   - tar -axvf $LIBWAYLAND_VERSION.tar.xz
464   - (cd $LIBWAYLAND_VERSION && ./configure --prefix=$HOME/prefix --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation && make install)
465
466   - wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
467   - tar -axvf $WAYLAND_PROTOCOLS_VERSION.tar.xz
468   - (cd $WAYLAND_PROTOCOLS_VERSION && ./configure --prefix=$HOME/prefix && make install)
469
470   # Meson requires ninja >= 1.6, but trusty has 1.3.x
471   - wget https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-linux.zip;
472   - unzip ninja-linux.zip
473   - mv ninja $HOME/prefix/bin/
474
475   # Generate the header since one is missing on the Travis instance
476   - mkdir -p linux
477   - printf "%s\n" \
478            "#ifndef _LINUX_MEMFD_H" \
479            "#define _LINUX_MEMFD_H" \
480            "" \
481            "#define __NR_memfd_create 319" \
482            "#define SYS_memfd_create __NR_memfd_create" \
483            "" \
484            "#define MFD_CLOEXEC             0x0001U" \
485            "#define MFD_ALLOW_SEALING       0x0002U" \
486            "" \
487            "#endif /* _LINUX_MEMFD_H */" > linux/memfd.h
488
489 script:
490   - if test "x$BUILD" = xmake; then
491       test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
492       test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
493       test -n "$OVERRIDE_PATH" && export PATH="$OVERRIDE_PATH:$PATH";
494
495       export CFLAGS="$CFLAGS -isystem`pwd`";
496
497       ./autogen.sh --enable-debug
498         $LIBUNWIND_FLAGS
499         $DRI_LOADERS
500         --with-dri-drivers=$DRI_DRIVERS
501         $GALLIUM_ST
502         --with-gallium-drivers=$GALLIUM_DRIVERS
503         --with-vulkan-drivers=$VULKAN_DRIVERS
504         --disable-llvm-shared-libs
505         &&
506       make && eval $MAKE_CHECK_COMMAND;
507     fi
508
509   - if test "x$BUILD" = xscons; then
510       test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
511       test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
512       scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
513     fi
514
515   - if test "x$BUILD" = xmeson; then
516       export CFLAGS="$CFLAGS -isystem`pwd`";
517       meson _build $MESON_OPTIONS;
518       ninja -C _build;
519     fi