背景
SwiftShader(Vulkan) で CPU Vulkan レンダリングしたい.
Windows でも動かしたいが, Visual Studio でビルドめんどい.
clang-cl + WSL を使ってビルドします.
環境
Windows SDK, MSVC SDK など必要です.
Visual Studio C++ Build Tools + clang-cl + CMake + Ninja で C++ バッチビルドや VSCode 連携環境を整える
https://qiita.com/syoyo/items/bd4f81e7803afb5a3d19
を参考ください.
repo
本家の repo では対応していないので, fork を clone ください.
clang-cl では, /MP
のオプションが対応していないので削除します.
forked swiftshader 自体は対応しましたが, submodule の SPIRV-Tools で対応が必要です.
PR は出しましたが, たぶん取り込まれないでしょう.
build
あとは scripts/bootstrap-clang-cl-wsl.sh
を参考にしてパスなど通して cmake bootstrap するだけです!
rm -rf build-clang-cl-wsl
mkdir build-clang-cl-wsl
# Path containing space does not work well, so use symlink to MSVC_BASE and WINSDK_BASE.
# Assume LLVM_NATIVE_TOOLCHAIN points to linux version of clang+llvm
#
cd build-clang-cl-wsl
cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE="cmake/clang-cl-msvc-wsl.cmake" \
-DHOST_ARCH=x64 \
-DLLVM_NATIVE_TOOLCHAIN="/home/syoyo/local/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04/" \
-DMSVC_BASE:FILEPATH="/home/syoyo/msvc/VC/Tools/MSVC/14.26.28801/" \
-DWINSDK_BASE="/home/syoyo/msvc/kits/10/" \
-DWINSDK_VER="10.0.18362.0" \
..
cmake bootstrap がうまく行けばビルドできるはずです!