Skip to content

Commit c172154

Browse files
committed
Bootstrap DXC Wasm prebuilt in smoke CI
1 parent 00cf7b8 commit c172154

2 files changed

Lines changed: 56 additions & 1 deletion

File tree

.github/workflows/smoke.yml

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ concurrency:
2121
env:
2222
BUILD_TYPE: Release
2323
CMAKE_GENERATOR: Ninja
24-
WEBVULKAN_CACHE_VERSION: v2
24+
WEBVULKAN_CACHE_VERSION: v3
2525
LLVM_PREBUILT_URL: ${{ vars.WEBVULKAN_LLVM_PREBUILT_URL }}
2626
LLVM_PREBUILT_SHA256: ${{ vars.WEBVULKAN_LLVM_PREBUILT_SHA256 }}
27+
DXC_WASM_PREBUILT_URL: https://github.com/Devsh-Graphics-Programming/llvmpipe2wasm/releases/download/dxc-wasm-prebuilt-latest/dxc-wasm-prebuilt.zip
2728

2829
jobs:
2930
in_tree_add_subdirectory:
@@ -72,11 +73,37 @@ jobs:
7273
exit 1
7374
fi
7475
76+
- name: Bootstrap DXC Wasm prebuilt
77+
shell: bash
78+
run: |
79+
set -euo pipefail
80+
dxc_dir="${GITHUB_WORKSPACE}/.3rdparty/dxc-wasm"
81+
dxc_js="${dxc_dir}/dxc.js"
82+
dxc_wasm="${dxc_dir}/dxc.wasm"
83+
if [ ! -f "${dxc_js}" ] || [ ! -f "${dxc_wasm}" ]; then
84+
mkdir -p "${dxc_dir}"
85+
curl -L --fail "${DXC_WASM_PREBUILT_URL}" -o "${RUNNER_TEMP}/dxc-wasm-prebuilt.zip"
86+
python3 - "${RUNNER_TEMP}/dxc-wasm-prebuilt.zip" "${dxc_dir}" <<'PY'
87+
import sys
88+
import zipfile
89+
90+
zip_path = sys.argv[1]
91+
dst_dir = sys.argv[2]
92+
93+
with zipfile.ZipFile(zip_path) as archive:
94+
archive.extractall(dst_dir)
95+
PY
96+
fi
97+
test -f "${dxc_js}"
98+
test -f "${dxc_wasm}"
99+
echo "WEBVULKAN_DXC_WASM_JS=${dxc_js}" >> "${GITHUB_ENV}"
100+
75101
- name: Configure root project
76102
run: |
77103
cmake -S . -B build -G "${CMAKE_GENERATOR}" \
78104
-DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \
79105
-DWEBVULKAN_BUILD_TESTS=ON \
106+
-DWEBVULKAN_DXC_WASM_JS="${WEBVULKAN_DXC_WASM_JS}" \
80107
-DWEBVULKAN_ALLOW_DEP_UPDATES=OFF \
81108
-DLLVM_PROVIDER=prebuilt \
82109
-DLLVM_PREBUILT_URL="${LLVM_PREBUILT_URL}" \
@@ -166,12 +193,38 @@ jobs:
166193
exit 1
167194
fi
168195
196+
- name: Bootstrap DXC Wasm prebuilt
197+
shell: bash
198+
run: |
199+
set -euo pipefail
200+
dxc_dir="${GITHUB_WORKSPACE}/.3rdparty/dxc-wasm"
201+
dxc_js="${dxc_dir}/dxc.js"
202+
dxc_wasm="${dxc_dir}/dxc.wasm"
203+
if [ ! -f "${dxc_js}" ] || [ ! -f "${dxc_wasm}" ]; then
204+
mkdir -p "${dxc_dir}"
205+
curl -L --fail "${DXC_WASM_PREBUILT_URL}" -o "${RUNNER_TEMP}/dxc-wasm-prebuilt.zip"
206+
python3 - "${RUNNER_TEMP}/dxc-wasm-prebuilt.zip" "${dxc_dir}" <<'PY'
207+
import sys
208+
import zipfile
209+
210+
zip_path = sys.argv[1]
211+
dst_dir = sys.argv[2]
212+
213+
with zipfile.ZipFile(zip_path) as archive:
214+
archive.extractall(dst_dir)
215+
PY
216+
fi
217+
test -f "${dxc_js}"
218+
test -f "${dxc_wasm}"
219+
echo "WEBVULKAN_DXC_WASM_JS=${dxc_js}" >> "${GITHUB_ENV}"
220+
169221
- name: Configure sparse tests against package
170222
run: |
171223
cmake -S tests-only/tests -B tests-only/build -G "${CMAKE_GENERATOR}" \
172224
-DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \
173225
-DWEBVULKAN_TEST_MODE=package \
174226
-DWEBVULKAN_TEST_PACKAGE_PREFIX="${GITHUB_WORKSPACE}/package" \
227+
-DWEBVULKAN_DXC_WASM_JS="${WEBVULKAN_DXC_WASM_JS}" \
175228
-DEMSDK_ROOT="${GITHUB_WORKSPACE}/.3rdparty/emsdk" \
176229
-DWEBVULKAN_EMSCRIPTEN_TOOLCHAIN_FILE="${GITHUB_WORKSPACE}/.3rdparty/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake"
177230

tests/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,8 @@ if((NOT WEBVULKAN_DXC_WASM_JS OR WEBVULKAN_DXC_WASM_JS MATCHES "-NOTFOUND$") AND
206206
endif()
207207
if(NOT WEBVULKAN_DXC_WASM_JS OR WEBVULKAN_DXC_WASM_JS MATCHES "-NOTFOUND$")
208208
set(_webvulkan_dxc_wasm_hints
209+
"${CMAKE_CURRENT_LIST_DIR}/../.3rdparty/dxc-wasm/dxc.js"
210+
"${CMAKE_CURRENT_LIST_DIR}/../.3rdparty/dxc-wasm/dxc.mjs"
209211
"${CMAKE_CURRENT_LIST_DIR}/../tmp/dxc-wasm-build/bin/dxc.js"
210212
"${CMAKE_CURRENT_LIST_DIR}/../tmp/dxc-wasm-build/bin/dxc.mjs"
211213
)

0 commit comments

Comments
 (0)