• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2
3set -e
4set -o xtrace
5
6export DEBIAN_FRONTEND=noninteractive
7
8# Ephemeral packages (installed for this script and removed again at the end)
9STABLE_EPHEMERAL=" \
10      ccache \
11      cmake \
12      g++ \
13      g++-mingw-w64-i686-posix \
14      g++-mingw-w64-x86-64-posix \
15      glslang-tools \
16      libgbm-dev \
17      libgles2-mesa-dev \
18      liblz4-dev \
19      libpciaccess-dev \
20      libudev-dev \
21      libvulkan-dev \
22      libwaffle-dev \
23      libwayland-dev \
24      libx11-xcb-dev \
25      libxcb-ewmh-dev \
26      libxcb-keysyms1-dev \
27      libxkbcommon-dev \
28      libxrandr-dev \
29      libxrender-dev \
30      libzstd-dev \
31      meson \
32      mingw-w64-i686-dev \
33      mingw-w64-tools \
34      mingw-w64-x86-64-dev \
35      p7zip \
36      patch \
37      pkg-config \
38      python3-distutils \
39      wget \
40      xz-utils \
41      "
42
43apt-get install -y --no-remove \
44      $STABLE_EPHEMERAL \
45      libxcb-shm0 \
46      python3-lxml \
47      python3-simplejson \
48      xinit \
49      xserver-xorg-video-amdgpu \
50      xserver-xorg-video-ati
51
52# We need multiarch for Wine
53dpkg --add-architecture i386
54
55apt-get update
56
57apt-get install -y --no-remove \
58      wine \
59      wine32 \
60      wine64
61
62function setup_wine() {
63    export WINEDEBUG="-all"
64    export WINEPREFIX="$1"
65
66    # We don't want crash dialogs
67    cat >crashdialog.reg <<EOF
68Windows Registry Editor Version 5.00
69
70[HKEY_CURRENT_USER\Software\Wine\WineDbg]
71"ShowCrashDialog"=dword:00000000
72
73EOF
74
75    # Set the wine prefix and disable the crash dialog
76    wine regedit crashdialog.reg
77    rm crashdialog.reg
78
79    # An immediate wine command may fail with: "${WINEPREFIX}: Not a
80    # valid wine prefix."  and that is just spit because of checking
81    # the existance of the system.reg file, which fails.  Just giving
82    # it a bit more of time for it to be created solves the problem
83    # ...
84    while ! test -f  "${WINEPREFIX}/system.reg"; do sleep 1; done
85}
86
87############### Install DXVK
88
89DXVK_VERSION="1.8.1"
90
91setup_wine "/dxvk-wine64"
92
93wget "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz"
94tar xzpf dxvk-"${DXVK_VERSION}".tar.gz
95dxvk-"${DXVK_VERSION}"/setup_dxvk.sh install
96rm -rf dxvk-"${DXVK_VERSION}"
97rm dxvk-"${DXVK_VERSION}".tar.gz
98
99############### Install Windows' apitrace binaries
100
101APITRACE_VERSION="10.0"
102APITRACE_VERSION_DATE=""
103
104wget "https://github.com/apitrace/apitrace/releases/download/${APITRACE_VERSION}/apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z"
1057zr x "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z" \
106      "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64/bin/apitrace.exe" \
107      "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64/bin/d3dretrace.exe"
108mv "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64" /apitrace-msvc-win64
109rm "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z"
110
111# Add the apitrace path to the registry
112wine \
113    reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment" \
114    /v Path \
115    /t REG_EXPAND_SZ \
116    /d "C:\windows\system32;C:\windows;C:\windows\system32\wbem;Z:\apitrace-msvc-win64\bin" \
117    /f
118
119############### Building ...
120
121. .gitlab-ci/container/container_pre_build.sh
122
123############### Build libdrm
124
125. .gitlab-ci/container/build-libdrm.sh
126
127############### Build parallel-deqp-runner's hang-detection tool
128
129. .gitlab-ci/container/build-hang-detection.sh
130
131############### Build piglit
132
133PIGLIT_BUILD_TARGETS="piglit_replayer" . .gitlab-ci/container/build-piglit.sh
134
135############### Build Fossilize
136
137. .gitlab-ci/container/build-fossilize.sh
138
139############### Build dEQP VK
140
141. .gitlab-ci/container/build-deqp.sh
142
143############### Build gfxreconstruct
144
145. .gitlab-ci/container/build-gfxreconstruct.sh
146
147############### Build VKD3D-Proton
148
149setup_wine "/vkd3d-proton-wine64"
150
151. .gitlab-ci/container/build-vkd3d-proton.sh
152
153############### Uninstall the build software
154
155ccache --show-stats
156
157apt-get purge -y \
158      $STABLE_EPHEMERAL
159
160apt-get autoremove -y --purge
161