Skip to content

Updated license of sgl. #356

Updated license of sgl.

Updated license of sgl. #356

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: de870ac7518fe2b6bb651ecc22fc36647cf7b986
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