LoginSignup
1
0

More than 3 years have passed since last update.

SwiftShader(Vulkan only) を clang-cl でビルドする

Posted at

背景

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 がうまく行けばビルドできるはずです!

:tada:

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0