Updated used version of SwiftShader. #359
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test volumetric path tracing renderers | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
env: | |
BUILD_TYPE: Release | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
name: "${{ github.workflow }}" | |
env: | |
sgl_REPO_DIR: ${{ github.workspace }}/sgl-repo | |
sgl_DIR: ${{ github.workspace }}/sgl | |
swiftshader_DIR: ${{ github.workspace }}/swiftshader | |
swiftshader_COMMIT_ID: 23b93c7cfe27e205e178a135a6ea24d1dcba1068 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- uses: actions/checkout@v2 | |
with: | |
repository: chrismile/sgl | |
path: sgl-repo | |
submodules: true | |
- name: Install system packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install git cmake libglm-dev libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev \ | |
libpng-dev libboost-filesystem-dev libtinyxml2-dev libarchive-dev libglew-dev libjsoncpp-dev libeigen3-dev \ | |
python3-dev libzmq3-dev libnetcdf-dev libgtest-dev | |
- name: Install Vulkan SDK | |
shell: bash | |
run: | | |
distro_code_name=$(lsb_release -cs) | |
distro_release=$(lsb_release -rs) | |
os_arch="$(uname -m)" | |
if ! curl -s -I "https://packages.lunarg.com/vulkan/dists/${distro_code_name}/" | grep "2 404" > /dev/null; then | |
echo "Installing Vulkan SDK from a PPA..." | |
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add - | |
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-${distro_code_name}.list \ | |
https://packages.lunarg.com/vulkan/lunarg-vulkan-${distro_code_name}.list | |
sudo apt update | |
sudo apt install -y vulkan-sdk shaderc glslang-dev | |
elif dpkg --compare-versions "$distro_release" "ge" "24.04"; then | |
sudo apt install -y libvulkan-dev libshaderc-dev glslang-dev | |
else | |
echo "Unpacking Vulkan SDK from an archive file..." | |
curl --silent --show-error --fail -O https://sdk.lunarg.com/sdk/download/latest/linux/vulkan-sdk.tar.gz | |
mkdir -p VulkanSDK | |
tar -xf vulkan-sdk.tar.gz -C VulkanSDK | |
# Fix pkgconfig file. | |
shaderc_pkgconfig_file="VulkanSDK/$(ls VulkanSDK)/$os_arch/lib/pkgconfig/shaderc.pc" | |
if [ -f $shaderc_pkgconfig_file ]; then | |
prefix_path=$(realpath "VulkanSDK/$(ls VulkanSDK)/$os_arch") | |
sed -i '3s;.*;prefix=\"'$prefix_path'\";' "$shaderc_pkgconfig_file" | |
sed -i '5s;.*;libdir=${prefix}/lib;' "$shaderc_pkgconfig_file" | |
echo "PKG_CONFIG_PATH=\"$(realpath "VulkanSDK/$(ls VulkanSDK)/$os_arch/lib/pkgconfig")\"" >> $GITHUB_ENV | |
fi | |
fi | |
- name: Configure CMake (sgl) | |
run: | | |
if [ "${{env.PKG_CONFIG_PATH}}" != "" ]; then | |
VK_LAYER_PATH="" | |
source "VulkanSDK/$(ls VulkanSDK)/setup-env.sh" | |
export PKG_CONFIG_PATH="${{env.PKG_CONFIG_PATH}}" | |
else | |
export VULKAN_SDK="/usr" | |
fi | |
cmake ${{env.sgl_REPO_DIR}} -B ${{env.sgl_REPO_DIR}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=${{env.sgl_DIR}} | |
- name: Build (sgl) | |
run: cmake --build ${{env.sgl_REPO_DIR}}/build --config ${{env.BUILD_TYPE}} --parallel 4 | |
- name: Install (sgl) | |
run: cmake --build ${{env.sgl_REPO_DIR}}/build --config ${{env.BUILD_TYPE}} --target install | |
- name: Configure CMake (CloudRendering) | |
run: | | |
if [ "${{env.PKG_CONFIG_PATH}}" != "" ]; then | |
VK_LAYER_PATH="" | |
source "VulkanSDK/$(ls VulkanSDK)/setup-env.sh" | |
export PKG_CONFIG_PATH="${{env.PKG_CONFIG_PATH}}" | |
else | |
export VULKAN_SDK="/usr" | |
fi | |
cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dsgl_DIR=${{env.sgl_DIR}}/lib/cmake/sgl -DUSE_GTEST=On | |
- name: Build (CloudRendering) | |
run: | | |
if [ "${{env.PKG_CONFIG_PATH}}" != "" ]; then | |
VK_LAYER_PATH="" | |
source "VulkanSDK/$(ls VulkanSDK)/setup-env.sh" | |
export PKG_CONFIG_PATH="${{env.PKG_CONFIG_PATH}}" | |
else | |
export VULKAN_SDK="/usr" | |
fi | |
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel 4 | |
- name: Cache SwiftShader binaries | |
id: cache-swiftshader | |
uses: actions/cache@v4 | |
with: | |
path: ${{env.swiftshader_DIR}} | |
key: ${{runner.os}}-swiftshader-${{env.BUILD_TYPE}}-${{env.swiftshader_COMMIT_ID}} | |
- name: Build (SwiftShader) | |
if: steps.cache-swiftshader.outputs.cache-hit != 'true' | |
run: | | |
git clone https://github.com/google/swiftshader.git ${{env.swiftshader_DIR}} | |
git -C ${{env.swiftshader_DIR}} checkout ${{env.swiftshader_COMMIT_ID}} | |
git -C ${{env.swiftshader_DIR}} submodule update --init | |
cmake ${{env.swiftshader_DIR}} -B ${{env.swiftshader_DIR}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | |
cmake --build ${{env.swiftshader_DIR}}/build --config ${{env.BUILD_TYPE}} --parallel 4 | |
- name: Run tests | |
id: tests | |
run: | | |
echo "USER=$USER" >> $GITHUB_ENV | |
#export LD_LIBRARY_PATH="${{env.swiftshader_DIR}}/build/Linux" | |
export VK_ICD_FILENAMES="${{env.swiftshader_DIR}}/build/Linux/vk_swiftshader_icd.json" | |
if [ "${{env.PKG_CONFIG_PATH}}" != "" ]; then | |
VK_LAYER_PATH="" | |
source "VulkanSDK/$(ls VulkanSDK)/setup-env.sh" | |
fi | |
mkdir -p ${{github.workspace}}/Data/CloudDataSets/env_maps | |
wget -O ${{github.workspace}}/Data/CloudDataSets/env_maps/small_empty_room_1_1k.exr https://dl.polyhaven.org/file/ph-assets/HDRIs/exr/1k/small_empty_room_1_1k.exr | |
${{github.workspace}}/build/CloudRendering_test | |
- name: Archive logs and failure case images | |
if: always() && steps.tests.outcome == 'failure' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: vpt-output-images | |
path: | | |
/home/${{env.USER}}/.config/cloud-rendering/Logfile.html | |
${{github.workspace}}/build/*.png |