OSDN Git Service

radeon/video: MJPEG not support stacked video 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     - 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     - LIBTXC_DXTN_VERSION=libtxc_dxtn-1.0.1
24     - LIBVDPAU_VERSION=libvdpau-1.1
25     - LIBVA_VERSION=libva-1.6.2
26     - LIBWAYLAND_VERSION=wayland-1.11.1
27     - WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.8
28     - PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
29     - LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
30
31 matrix:
32   include:
33     - env:
34         - LABEL="make loaders/classic DRI"
35         - BUILD=make
36         - MAKEFLAGS="-j4"
37         - MAKE_CHECK_COMMAND="make check"
38         - DRI_LOADERS="--enable-glx --enable-gbm --enable-egl --with-platforms=x11,drm,surfaceless,wayland --enable-osmesa"
39         - DRI_DRIVERS="i915,i965,radeon,r200,swrast,nouveau"
40         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
41         - GALLIUM_DRIVERS=""
42         - VULKAN_DRIVERS=""
43       addons:
44         apt:
45           packages:
46             - xz-utils
47             - x11proto-xf86vidmode-dev
48             - libexpat1-dev
49             - libx11-xcb-dev
50             - libxdamage-dev
51             - libxfixes-dev
52     - env:
53         # NOTE: Building SWR is 2x (yes two) times slower than all the other
54         # gallium drivers combined.
55         # Start this early so that it doesn't hunder the run time.
56         - LABEL="make Gallium Drivers SWR"
57         - BUILD=make
58         - MAKEFLAGS="-j4"
59         - MAKE_CHECK_COMMAND="true"
60         - LLVM_VERSION=3.9
61         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
62         - OVERRIDE_CC="gcc-4.8"
63         - OVERRIDE_CXX="g++-4.8"
64         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
65         - DRI_DRIVERS=""
66         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
67         - GALLIUM_DRIVERS="swr"
68         - VULKAN_DRIVERS=""
69       addons:
70         apt:
71           sources:
72             - llvm-toolchain-trusty-3.9
73           packages:
74             # LLVM packaging is broken and misses these dependencies
75             - libedit-dev
76             # From sources above
77             - llvm-3.9-dev
78             # Common
79             - xz-utils
80             - x11proto-xf86vidmode-dev
81             - libexpat1-dev
82             - libx11-xcb-dev
83             - libelf-dev
84     - env:
85         - LABEL="make Gallium Drivers Other"
86         - BUILD=make
87         - MAKEFLAGS="-j4"
88         - MAKE_CHECK_COMMAND="true"
89         - LLVM_VERSION=3.9
90         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
91         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
92         - DRI_DRIVERS=""
93         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
94         - GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,etnaviv,imx"
95         - VULKAN_DRIVERS=""
96       addons:
97         apt:
98           sources:
99             - llvm-toolchain-trusty-3.9
100           packages:
101             # LLVM packaging is broken and misses these dependencies
102             - libedit-dev
103             # From sources above
104             - llvm-3.9-dev
105             # Common
106             - xz-utils
107             - x11proto-xf86vidmode-dev
108             - libexpat1-dev
109             - libx11-xcb-dev
110             - libelf-dev
111     - env:
112         # NOTE: Analogous to SWR above, building Clover is quite slow.
113         - LABEL="make Gallium ST Clover"
114         - BUILD=make
115         - MAKEFLAGS="-j4"
116         - MAKE_CHECK_COMMAND="true"
117         - LLVM_VERSION=3.6
118         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
119         - OVERRIDE_CC=gcc-4.7
120         - OVERRIDE_CXX=g++-4.7
121         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
122         - DRI_DRIVERS=""
123         - 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"
124         # i915 most likely doesn't work with OpenCL.
125         # Regardless - we're doing a quick build test here.
126         - GALLIUM_DRIVERS="i915"
127         - VULKAN_DRIVERS=""
128       addons:
129         apt:
130           sources:
131             - llvm-toolchain-trusty-3.6
132           packages:
133             - libclc-dev
134             # LLVM packaging is broken and misses these dependencies
135             - libedit-dev
136             - g++-4.7
137             # From sources above
138             - llvm-3.6-dev
139             - clang-3.6
140             - libclang-3.6-dev
141             # Common
142             - xz-utils
143             - x11proto-xf86vidmode-dev
144             - libexpat1-dev
145             - libx11-xcb-dev
146             - libelf-dev
147     - env:
148         - LABEL="make Gallium ST Other"
149         - BUILD=make
150         - MAKEFLAGS="-j4"
151         - MAKE_CHECK_COMMAND="true"
152         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
153         - DRI_DRIVERS=""
154         - GALLIUM_ST="--enable-dri --disable-opencl --enable-xa --enable-nine --enable-xvmc --enable-vdpau --enable-va --enable-omx --enable-gallium-osmesa"
155         # We need swrast for osmesa and nine.
156         # i915 most likely doesn't work with most ST.
157         # Regardless - we're doing a quick build test here.
158         - GALLIUM_DRIVERS="i915,swrast"
159         - VULKAN_DRIVERS=""
160       addons:
161         apt:
162           packages:
163             # Nine requires gcc 4.6... which is the one we have right ?
164             - libxvmc-dev
165             # Build locally, for now.
166             #- libvdpau-dev
167             #- libva-dev
168             - libomxil-bellagio-dev
169             # LLVM packaging is broken and misses these dependencies
170             - libedit-dev
171             # Common
172             - xz-utils
173             - x11proto-xf86vidmode-dev
174             - libexpat1-dev
175             - libx11-xcb-dev
176             - libelf-dev
177     - env:
178         - LABEL="make Vulkan"
179         - BUILD=make
180         - MAKEFLAGS="-j4"
181         - MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
182         - LLVM_VERSION=3.9
183         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
184         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl --with-platforms=x11,wayland"
185         - DRI_DRIVERS=""
186         - GALLIUM_ST="--enable-dri --enable-dri3 --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
187         - GALLIUM_DRIVERS=""
188         - VULKAN_DRIVERS="intel,radeon"
189       addons:
190         apt:
191           sources:
192             - llvm-toolchain-trusty-3.9
193           packages:
194             # LLVM packaging is broken and misses these dependencies
195             - libedit-dev
196             # From sources above
197             - llvm-3.9-dev
198             # Common
199             - xz-utils
200             - x11proto-xf86vidmode-dev
201             - libexpat1-dev
202             - libx11-xcb-dev
203             - libelf-dev
204     - env:
205         - LABEL="scons"
206         - BUILD=scons
207         - SCONSFLAGS="-j4"
208         # Explicitly disable.
209         - SCONS_TARGET="llvm=0"
210         # Keep it symmetrical to the make build.
211         - SCONS_CHECK_COMMAND="scons llvm=0 check"
212       addons:
213         apt:
214           packages:
215             - scons
216             # Common
217             - xz-utils
218             - x11proto-xf86vidmode-dev
219             - libexpat1-dev
220             - libx11-xcb-dev
221             - libelf-dev
222     - env:
223         - LABEL="scons LLVM"
224         - BUILD=scons
225         - SCONSFLAGS="-j4"
226         - SCONS_TARGET="llvm=1"
227         # Keep it symmetrical to the make build.
228         - SCONS_CHECK_COMMAND="scons llvm=1 check"
229         - LLVM_VERSION=3.3
230         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
231       addons:
232         apt:
233           packages:
234             - scons
235             # LLVM packaging is broken and misses these dependencies
236             - libedit-dev
237             - llvm-3.3-dev
238             # Common
239             - xz-utils
240             - x11proto-xf86vidmode-dev
241             - libexpat1-dev
242             - libx11-xcb-dev
243             - libelf-dev
244     - env:
245         - LABEL="scons SWR"
246         - BUILD=scons
247         - SCONSFLAGS="-j4"
248         - SCONS_TARGET="swr=1"
249         - LLVM_VERSION=3.9
250         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
251         # Keep it symmetrical to the make build. There's no actual SWR, yet.
252         - SCONS_CHECK_COMMAND="true"
253         - OVERRIDE_CC="gcc-4.8"
254         - OVERRIDE_CXX="g++-4.8"
255       addons:
256         apt:
257           sources:
258             - llvm-toolchain-trusty-3.9
259           packages:
260             - scons
261             # LLVM packaging is broken and misses these dependencies
262             - libedit-dev
263             # From sources above
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 $WAYLAND_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   - wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
346   - tar -axvf $WAYLAND_PROTOCOLS_VERSION.tar.xz
347   - (cd $WAYLAND_PROTOCOLS_VERSION && ./configure --prefix=$HOME/prefix && make install)
348
349   # Generate the header since one is missing on the Travis instance
350   - mkdir -p linux
351   - printf "%s\n" \
352            "#ifndef _LINUX_MEMFD_H" \
353            "#define _LINUX_MEMFD_H" \
354            "" \
355            "#define __NR_memfd_create 319" \
356            "#define SYS_memfd_create __NR_memfd_create" \
357            "" \
358            "#define MFD_CLOEXEC             0x0001U" \
359            "#define MFD_ALLOW_SEALING       0x0002U" \
360            "" \
361            "#endif /* _LINUX_MEMFD_H */" > linux/memfd.h
362
363 script:
364   - if test "x$BUILD" = xmake; then
365       test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
366       test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
367       export CC="$CC -isystem`pwd`";
368
369       ./autogen.sh --enable-debug
370         $DRI_LOADERS
371         --with-dri-drivers=$DRI_DRIVERS
372         $GALLIUM_ST
373         --with-gallium-drivers=$GALLIUM_DRIVERS
374         --with-vulkan-drivers=$VULKAN_DRIVERS
375         --disable-llvm-shared-libs
376         &&
377       make && eval $MAKE_CHECK_COMMAND;
378     fi
379
380   - if test "x$BUILD" = xscons; then
381       test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
382       test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
383       scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
384     fi