loader: simplify loader_get_user_preferred_fd()
[mesa.git] / .gitlab-ci / container / x86_test-vk.sh
1 #!/bin/bash
2
3 set -e
4 set -o xtrace
5
6 export DEBIAN_FRONTEND=noninteractive
7
8 apt-get install -y \
9 ca-certificates \
10 gnupg
11
12 # Upstream LLVM package repository
13 apt-key add .gitlab-ci/container/llvm-snapshot.gpg.key
14 echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list
15
16 sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
17 echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
18
19 apt-get update
20
21 apt-get dist-upgrade -y
22
23 apt-get install -y --no-remove \
24 ccache \
25 cmake \
26 g++ \
27 gcc \
28 git \
29 git-lfs \
30 libexpat1 \
31 libgbm-dev \
32 libgles2-mesa-dev \
33 libllvm9 \
34 liblz4-1 \
35 liblz4-dev \
36 libpng-dev \
37 libpng16-16 \
38 libvulkan-dev \
39 libvulkan1 \
40 libwayland-client0 \
41 libwayland-server0 \
42 libxcb-ewmh-dev \
43 libxcb-ewmh2 \
44 libxcb-keysyms1 \
45 libxcb-keysyms1-dev \
46 libxcb-randr0 \
47 libxcb-xfixes0 \
48 libxkbcommon-dev \
49 libxkbcommon0 \
50 libxrandr-dev \
51 libxrandr2 \
52 libxrender-dev \
53 libxrender1 \
54 meson \
55 p7zip \
56 pkg-config \
57 python \
58 python3-distutils \
59 python3-pil \
60 python3-requests \
61 python3-yaml \
62 wget \
63 xauth \
64 xvfb
65
66 # We need multiarch for Wine
67 dpkg --add-architecture i386
68
69 apt-get update
70
71 apt-get install -y --no-remove \
72 wine \
73 wine32 \
74 wine64
75
76 ############### Set up Wine env variables
77
78 export WINEDEBUG="-all"
79 export WINEPREFIX="/dxvk-wine64"
80
81 ############### Install DXVK
82
83 DXVK_VERSION="1.6"
84
85 # We don't want crash dialogs
86 cat >crashdialog.reg <<EOF
87 Windows Registry Editor Version 5.00
88
89 [HKEY_CURRENT_USER\Software\Wine\WineDbg]
90 "ShowCrashDialog"=dword:00000000
91
92 EOF
93
94 # Set the wine prefix and disable the crash dialog
95 wine regedit crashdialog.reg
96 rm crashdialog.reg
97
98 # DXVK's setup often fails with:
99 # "${WINEPREFIX}: Not a valid wine prefix."
100 # and that is just spit because of checking the existance of the
101 # system.reg file, which fails.
102 # Just giving it a bit more of time for it to be created solves the
103 # problem ...
104 test -f "${WINEPREFIX}/system.reg" || sleep 2
105
106 wget "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz"
107 tar xzpf dxvk-"${DXVK_VERSION}".tar.gz
108 dxvk-"${DXVK_VERSION}"/setup_dxvk.sh install
109 rm -rf dxvk-"${DXVK_VERSION}"
110 rm dxvk-"${DXVK_VERSION}".tar.gz
111
112 ############### Install Windows' apitrace binaries
113
114 APITRACE_VERSION="9.0"
115 APITRACE_VERSION_DATE="20191126"
116
117 wget "https://github.com/apitrace/apitrace/releases/download/${APITRACE_VERSION}/apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z"
118 7zr x "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z" \
119 "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64/bin/apitrace.exe" \
120 "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64/bin/d3dretrace.exe"
121 mv "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64" /apitrace-msvc-win64
122 rm "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z"
123
124 # Add the apitrace path to the registry
125 wine \
126 reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment" \
127 /v Path \
128 /t REG_EXPAND_SZ \
129 /d "C:\windows\system32;C:\windows;C:\windows\system32\wbem;Z:\apitrace-msvc-win64\bin" \
130 /f
131
132 ############### Building ...
133
134 . .gitlab-ci/container/container_pre_build.sh
135
136 ############### Build dEQP runner
137
138 . .gitlab-ci/build-cts-runner.sh
139
140 ############### Build Fossilize
141
142 . .gitlab-ci/build-fossilize.sh
143
144 ############### Build dEQP VK
145
146 . .gitlab-ci/build-deqp-vk.sh
147
148 ############### Build gfxreconstruct
149
150 . .gitlab-ci/build-gfxreconstruct.sh
151
152 ############### Build VulkanTools
153
154 . .gitlab-ci/build-vulkantools.sh
155
156 ############### Uninstall the build software
157
158 ccache --show-stats
159
160 apt-get purge -y \
161 ccache \
162 cmake \
163 g++ \
164 gcc \
165 gnupg \
166 libgbm-dev \
167 libgles2-mesa-dev \
168 liblz4-dev \
169 libpng-dev \
170 libvulkan-dev \
171 libxcb-ewmh-dev \
172 libxcb-keysyms1-dev \
173 libxkbcommon-dev \
174 libxrandr-dev \
175 libxrender-dev \
176 meson \
177 p7zip \
178 pkg-config \
179 wget
180
181 apt-get autoremove -y --purge