@@ -21,9 +21,10 @@ concurrency:
2121env :
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
2829jobs :
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
0 commit comments