1616 name : Test Rust Shaders - ${{ matrix.name }}
1717 runs-on : ${{ matrix.os }}
1818 strategy :
19+ fail-fast : false
1920 matrix :
2021 include :
2122 - os : ubuntu-latest
@@ -35,45 +36,80 @@ jobs:
3536 submodules : " recursive"
3637
3738 - name : Install Vulkan SDK
38- 39- with :
40- vulkan_version : 1.3.268.0
41- optional_components : com.lunarg.vulkan.debug
42- install_runtime : true
43- cache : true
44- stripdown : true
39+ if : ${{ runner.os != 'Linux' }}
40+ shell : bash
41+ env :
42+ VULKAN_SDK_VERSION : 1.3.250.1
43+ run : |
44+ if [ "$RUNNER_OS" == "macOS" ]; then
45+ wget "https://sdk.lunarg.com/sdk/download/$VULKAN_SDK_VERSION/mac/vulkansdk-macos-$VULKAN_SDK_VERSION.dmg?Human=true" -O vulkan-sdk.dmg
46+ hdiutil attach vulkan-sdk.dmg
47+ sudo /Volumes/vulkan-sdk/InstallVulkan.app/Contents/MacOS/InstallVulkan --root $GITHUB_WORKSPACE/vulkansdk-macos-$VULKAN_SDK_VERSION --accept-licenses --default-answer --confirm-command install
48+ hdiutil detach /Volumes/vulkansdk-macos-$VULKAN_SDK_VERSION
49+ echo "VULKAN_SDK_PATH=$GITHUB_WORKSPACE/vulkansdk-macos-$VULKAN_SDK_VERSION" >> $GITHUB_ENV
50+ echo "VULKAN_SDK=$VULKAN_SDK_PATH/macOS" >> $GITHUB_ENV
51+ echo "DYLD_LIBRARY_PATH=$VULKAN_SDK/lib:$DYLD_LIBRARY_PATH" >> $GITHUB_ENV
52+ echo "PATH=$VULKAN_SDK/bin:$PATH" >> $GITHUB_ENV
53+ elif [ "$RUNNER_OS" == "Windows" ]; then
54+ wget "https://sdk.lunarg.com/sdk/download/$VULKAN_SDK_VERSION/windows/VulkanSDK-$VULKAN_SDK_VERSION-Installer.exe?Human=true" -O vulkan-sdk.exe
55+ ./vulkan-sdk.exe --accept-licenses --default-answer --confirm-command install
56+ echo "VULKAN_SDK=C:\\VulkanSDK\\$VULKAN_SDK_VERSION" >> $GITHUB_ENV
57+ echo "PATH=$VULKAN_SDK\\Bin;$PATH" >> $GITHUB_ENV
58+ fi
4559
4660 - if : ${{ runner.os == 'Linux' }}
47- name : Install xvfb, llvmpipe and lavapipe
61+ name : Install Vulkan SDK and software renderers on Linux
4862 run : |
4963 sudo apt-get update -y -qq
5064 sudo add-apt-repository ppa:kisak/turtle -y
5165 sudo apt-get update
52- sudo apt install -y xvfb libgl1-mesa-dri libxcb-xfixes0-dev mesa-vulkan-drivers
66+ sudo apt install -y xvfb libgl1-mesa-dri libxcb-xfixes0-dev mesa-vulkan-drivers vulkan-tools libvulkan-dev
5367
5468 - if : ${{ matrix.use_moltenvk == true }}
5569 name : Setup MoltenVK on macOS
5670 run : |
57- # MoltenVK should be installed with the Vulkan SDK
58- # Find and set the ICD path
59- VULKAN_SDK_VERSION=$(ls -1 $HOME/VulkanSDK | head -n 1)
60- echo "VK_ICD_FILENAMES=$HOME/VulkanSDK/$VULKAN_SDK_VERSION/macOS/share/vulkan/icd.d/MoltenVK_icd.json" >> $GITHUB_ENV
71+ echo "VK_ICD_FILENAMES=$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json" >> $GITHUB_ENV
6172
62- - if : ${{ matrix.use_swiftshader == true }}
63- name : Install SwiftShader on macOS
73+ - name : Install SwiftShader
74+ if : ${{ matrix.use_swiftshader == true || runner.os == 'Linux' || runner.os == 'Windows' }}
75+ env :
76+ SWIFTSHADER_WINDOWS_URL : https://github.com/nikitalita/swiftshader-dist-win/releases/download/2021-12-09_00-02/swiftshader-2021-12-09_00-02-subzero.7z.zip
77+ SWIFTSHADER_LINUX_URL : https://github.com/qarmin/gtk_library_store/releases/download/3.24.0/swiftshader2.zip
78+ SWIFTSHADER_MACOS_URL : https://github.com/nikitalita/swiftshader-builds/releases/download/1.0.0/swiftshader-vulkan-r6216.7997cbc34b-macos-10.15.zip
79+ shell : bash
6480 run : |
65- # Based on https://github.com/GDRETools/gdsdecomp/blob/master/.github/actions/install-swiftshader/action.yml
66- git clone https://github.com/google/swiftshader.git
67- cd swiftshader
68- mkdir build && cd build
69- cmake -DSWIFTSHADER_BUILD_TESTS=OFF -DSWIFTSHADER_BUILD_SAMPLES=OFF ..
70- cmake --build . --config Release
71- sudo mkdir -p /usr/local/share/vulkan/icd.d
72- sudo cp Darwin/vk_swiftshader_icd.json /usr/local/share/vulkan/icd.d/
73- sudo mkdir -p /usr/local/lib
74- sudo cp Darwin/libvk_swiftshader.dylib /usr/local/lib/
75- # Set environment variable for SwiftShader ICD
76- echo "VK_ICD_FILENAMES=/usr/local/share/vulkan/icd.d/vk_swiftshader_icd.json" >> $GITHUB_ENV
81+ export SWIFTSHADER_DEST_DIR='${{ github.workspace }}/swiftshader'
82+ mkdir -p $SWIFTSHADER_DEST_DIR
83+ if [ "$RUNNER_OS" == "Linux" ]; then
84+ wget ${{ env.SWIFTSHADER_LINUX_URL }} -O swiftshader.zip
85+ unzip swiftshader.zip -d $SWIFTSHADER_DEST_DIR
86+ rm swiftshader.zip
87+ SWIFTSHADER_LIB_NAME="./libvk_swiftshader.so"
88+ sed -i "s|PATH_TO_CHANGE|$SWIFTSHADER_LIB_NAME|" $SWIFTSHADER_DEST_DIR/vk_swiftshader_icd.json
89+ echo "VK_ICD_FILENAMES=$SWIFTSHADER_DEST_DIR/vk_swiftshader_icd.json" >> $GITHUB_ENV
90+ elif [ "$RUNNER_OS" == "macOS" ]; then
91+ wget ${{ env.SWIFTSHADER_MACOS_URL }} -O swiftshader.zip
92+ unzip swiftshader.zip -d temp-ss-dl/
93+ rm swiftshader.zip
94+ mv temp-ss-dl/lib/libvk_swiftshader.dylib $SWIFTSHADER_DEST_DIR/libvk_swiftshader.dylib
95+ mv temp-ss-dl/share/vulkan/icd.d/vk_swiftshader_icd.json $SWIFTSHADER_DEST_DIR/vk_swiftshader_icd.json
96+ rm -rf temp-ss-dl/
97+ sed -i '' "s/..\/..\/..\/lib\/libvk_swiftshader.dylib/.\/libvk_swiftshader.dylib/" "$SWIFTSHADER_DEST_DIR/vk_swiftshader_icd.json"
98+ echo "VK_ICD_FILENAMES=$SWIFTSHADER_DEST_DIR/vk_swiftshader_icd.json" >> $GITHUB_ENV
99+ elif [ "$RUNNER_OS" == "Windows" ]; then
100+ choco install --yes 7zip wget
101+ wget -O swiftshader.zip ${{env.SWIFTSHADER_WINDOWS_URL}}
102+ 7z x swiftshader.zip -otemp-ss-dl/
103+ rm swiftshader.zip
104+ mv temp-ss-dl/swiftshader-*/swiftshader-*.7z temp-ss-dl/swiftshader.7z
105+ 7z x temp-ss-dl/swiftshader.7z -otemp-ss-dl/swiftshader
106+ rm temp-ss-dl/swiftshader.7z
107+ mv temp-ss-dl/swiftshader/x64/bin/vk_swiftshader.dll $SWIFTSHADER_DEST_DIR/vk_swiftshader.dll
108+ mv temp-ss-dl/swiftshader/x64/bin/vulkan-1.dll $SWIFTSHADER_DEST_DIR/vulkan-1.dll
109+ mv temp-ss-dl/swiftshader/x64/bin/vk_swiftshader_icd.json $SWIFTSHADER_DEST_DIR/vk_swiftshader_icd.json
110+ rm -rf temp-ss-dl/
111+ echo "VK_ICD_FILENAMES=$SWIFTSHADER_DEST_DIR\vk_swiftshader_icd.json" >> $GITHUB_ENV
112+ fi
77113
78114 - name : Install Rust
79115 uses : dtolnay/rust-toolchain@stable
0 commit comments