Add Vulkan rendering backend, with HDR10 output and raytraced shadows #7656
Workflow file for this run
This file contains hidden or 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: Check a pull request | |
| on: [pull_request] | |
| jobs: | |
| build_linux: | |
| strategy: | |
| matrix: | |
| configuration: [Debug, Release] | |
| compiler: [gcc-9, gcc-13, clang-16] | |
| cmake_options: [""] | |
| include: | |
| # Also include configurations that check if the code compiles without the graphics backends | |
| - configuration: Debug | |
| compiler: gcc-13 | |
| cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=OFF | |
| - configuration: Release | |
| compiler: gcc-13 | |
| cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=OFF | |
| # - configuration: Debug | |
| # compiler: gcc-13 | |
| # cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=ON | |
| # - configuration: Release | |
| # compiler: gcc-13 | |
| # cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=ON | |
| name: Linux | |
| runs-on: ubuntu-latest | |
| container: ghcr.io/scp-fs2open/linux_build:sha-ab87451 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| name: Checkout | |
| with: | |
| submodules: true | |
| fetch-depth: 0 | |
| - name: Set workspace as safe | |
| # This appears to be broken in current actions, so do it manually | |
| run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| - name: ccache | |
| uses: hendrikmuhs/[email protected] | |
| with: | |
| key: ${{ runner.os }}-${{ matrix.configuration }}-${{ matrix.compiler }} | |
| save: false # Caches are created by a separate job and only restored for PRs | |
| verbose: 1 | |
| - name: Configure ccache | |
| run: ccache --set-config=sloppiness=pch_defines,time_macros | |
| - name: Configure CMake | |
| env: | |
| CONFIGURATION: ${{ matrix.configuration }} | |
| COMPILER: ${{ matrix.compiler }} | |
| JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }} | |
| CCACHE_PATH: /usr/local/bin/ccache | |
| ENABLE_QTFRED: OFF | |
| run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh | |
| - name: Compile | |
| working-directory: ./build | |
| run: ninja -k 20 all | |
| - name: Run Tests | |
| working-directory: ./build | |
| env: | |
| CONFIGURATION: ${{ matrix.configuration }} | |
| XDG_RUNTIME_DIR: /root | |
| run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh | |
| - name: Show CCache statistics | |
| run: ccache --show-stats | |
| - name: Run Clang Tidy | |
| # Clang-tidy reuses the precompiled headers so this only makes sense for the clang compilers | |
| if: startsWith(matrix.compiler, 'clang-') | |
| run: $GITHUB_WORKSPACE/ci/linux/clang_tidy.sh ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} | |
| - name: Process clang-tidy warnings | |
| if: startsWith(matrix.compiler, 'clang-') | |
| uses: asarium/clang-tidy-action@v1 | |
| with: | |
| fixesFile: clang-fixes.yaml | |
| build_windows: | |
| strategy: | |
| matrix: | |
| configuration: [Debug, FastDebug, Release] | |
| compiler: [MSVC] | |
| arch: [Win32, x64] | |
| name: Windows | |
| runs-on: windows-2022 | |
| steps: | |
| - name: Prepare Environment | |
| run: choco install ninja | |
| - uses: actions/checkout@v7 | |
| name: Checkout | |
| with: | |
| submodules: true | |
| - name: Set workspace as safe | |
| # This appears to be broken in current actions, so do it manually | |
| run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| - name: Configure CMake | |
| env: | |
| CONFIGURATION: ${{ matrix.configuration }} | |
| COMPILER: ${{ matrix.compiler }} | |
| ARCHITECTURE: ${{ matrix.arch }} | |
| shell: bash | |
| run: | | |
| mkdir build | |
| cd build | |
| if [ "$COMPILER" = "MinGW" ]; then | |
| cmake -DFSO_USE_SPEECH=OFF -DFSO_FATAL_WARNINGS=ON -DFSO_USE_VOICEREC=OFF -DFSO_BUILD_TESTS=ON \ | |
| -DFSO_BUILD_FRED2=OFF -DCMAKE_BUILD_TYPE=$CONFIGURATION -G "Ninja" .. | |
| else | |
| cmake -DFSO_USE_SPEECH=ON -DFSO_FATAL_WARNINGS=ON -DFSO_USE_VOICEREC=OFF -DFSO_BUILD_TESTS=ON \ | |
| -DFORCED_SIMD_INSTRUCTIONS=SSE2 -G "Visual Studio 17 2022" -T "v143" -A "$ARCHITECTURE" \ | |
| -DCMAKE_BUILD_TYPE=$CONFIGURATION .. | |
| fi | |
| - name: Compile | |
| working-directory: ./build | |
| env: | |
| CONFIGURATION: ${{ matrix.configuration }} | |
| COMPILER: ${{ matrix.compiler }} | |
| shell: bash | |
| run: | | |
| if [ "$COMPILER" = "MinGW" ]; then | |
| cmake --build . --config "$CONFIGURATION" | |
| else | |
| cmake --build . --config "$CONFIGURATION" -- /verbosity:minimal | |
| fi | |
| - name: Run Tests | |
| working-directory: ./build | |
| env: | |
| CONFIGURATION: ${{ matrix.configuration }} | |
| COMPILER: ${{ matrix.compiler }} | |
| shell: bash | |
| run: | | |
| if [ "$COMPILER" = "MinGW" ]; then | |
| ./bin/unittests --gtest_shuffle | |
| else | |
| "./bin/$CONFIGURATION/unittests" --gtest_shuffle | |
| fi | |
| build_mac: | |
| strategy: | |
| matrix: | |
| configuration: [Debug, Release] | |
| compiler: [clang] | |
| arch: [x86_64, arm64] | |
| cmake_options: [""] | |
| name: Mac | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| name: Checkout | |
| with: | |
| submodules: true | |
| fetch-depth: 0 | |
| - name: Set workspace as safe | |
| # This appears to be broken in current actions, so do it manually | |
| run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| - name: ccache | |
| uses: hendrikmuhs/[email protected] | |
| with: | |
| key: ${{ runner.os }}-${{ matrix.configuration }}-${{ matrix.compiler }}-${{ matrix.arch }} | |
| save: false # Caches are created by a separate job and only restored for PRs | |
| - name: Configure ccache | |
| run: ccache --set-config=sloppiness=pch_defines,time_macros | |
| - name: Configure CMake | |
| env: | |
| CONFIGURATION: ${{ matrix.configuration }} | |
| COMPILER: ${{ matrix.compiler }} | |
| ARCHITECTURE: ${{ matrix.arch }} | |
| JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }} | |
| CCACHE_PATH: /usr/local/bin/ccache | |
| ENABLE_QTFRED: OFF | |
| run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh | |
| - name: Compile | |
| working-directory: ./build | |
| run: ninja all | |
| - name: Run Tests | |
| working-directory: ./build | |
| env: | |
| CONFIGURATION: ${{ matrix.configuration }} | |
| ARCH: ${{ matrix.arch }} | |
| XDG_RUNTIME_DIR: /root | |
| run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh | |
| - name: Show CCache statistics | |
| run: ccache --show-stats | |
| - name: Run Clang Tidy | |
| # Clang-tidy reuses the precompiled headers so this only makes sense for the clang compilers | |
| if: startsWith(matrix.compiler, 'clang-') | |
| run: $GITHUB_WORKSPACE/ci/linux/clang_tidy.sh ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} | |
| - name: Process clang-tidy warnings | |
| if: startsWith(matrix.compiler, 'clang-') | |
| uses: asarium/clang-tidy-action@v1 | |
| with: | |
| fixesFile: clang-fixes.yaml |