Add AMD FSR2 CI build job and adjust jitter offset sign

This commit is contained in:
Kelsi 2026-03-08 20:27:39 -07:00
parent a12126cc7e
commit 96f7728227
2 changed files with 107 additions and 2 deletions

View file

@ -73,6 +73,109 @@ jobs:
path: build/wowee-*.deb
if-no-files-found: error
build-linux-amd-fsr2:
name: Build (linux-amd-fsr2)
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
cmake \
build-essential \
pkg-config \
libsdl2-dev \
libglew-dev \
libglm-dev \
libssl-dev \
zlib1g-dev \
libvulkan-dev \
vulkan-tools \
glslc \
libavformat-dev \
libavcodec-dev \
libswscale-dev \
libavutil-dev \
libunicorn-dev \
libx11-dev \
wine64
sudo apt-get install -y libstorm-dev || true
- name: Fetch AMD FSR2 SDK
run: |
rm -rf extern/FidelityFX-FSR2
git clone --depth 1 https://github.com/GPUOpen-Effects/FidelityFX-FSR2.git extern/FidelityFX-FSR2
- name: Generate AMD FSR2 Vulkan permutation headers
run: |
set -euo pipefail
SDK_DIR="$PWD/extern/FidelityFX-FSR2"
SHADER_DIR="$SDK_DIR/src/ffx-fsr2-api/shaders"
OUT_DIR="$SDK_DIR/src/ffx-fsr2-api/vk/shaders"
SC="$SDK_DIR/tools/sc/FidelityFX_SC.exe"
BASE_ARGS=(
-reflection
-deps=gcc
-DFFX_GPU=1
-DFFX_FSR2_OPTION_UPSAMPLE_SAMPLERS_USE_DATA_HALF=0
-DFFX_FSR2_OPTION_ACCUMULATE_SAMPLERS_USE_DATA_HALF=0
-DFFX_FSR2_OPTION_REPROJECT_SAMPLERS_USE_DATA_HALF=1
-DFFX_FSR2_OPTION_POSTPROCESSLOCKSTATUS_SAMPLERS_USE_DATA_HALF=0
-DFFX_FSR2_OPTION_UPSAMPLE_USE_LANCZOS_TYPE=2
-compiler=glslang
-e
main
--target-env
vulkan1.1
-S
comp
-Os
-DFFX_GLSL=1
-DFFX_FSR2_OPTION_REPROJECT_USE_LANCZOS_TYPE={0,1}
-DFFX_FSR2_OPTION_HDR_COLOR_INPUT={0,1}
-DFFX_FSR2_OPTION_LOW_RESOLUTION_MOTION_VECTORS={0,1}
-DFFX_FSR2_OPTION_JITTERED_MOTION_VECTORS={0,1}
-DFFX_FSR2_OPTION_INVERTED_DEPTH={0,1}
-DFFX_FSR2_OPTION_APPLY_SHARPENING={0,1}
)
PASSES=(
ffx_fsr2_tcr_autogen_pass
ffx_fsr2_autogen_reactive_pass
ffx_fsr2_accumulate_pass
ffx_fsr2_compute_luminance_pyramid_pass
ffx_fsr2_depth_clip_pass
ffx_fsr2_lock_pass
ffx_fsr2_reconstruct_previous_depth_pass
ffx_fsr2_rcas_pass
)
for pass in "${PASSES[@]}"; do
HALF_ARG="-DFFX_HALF={0,1}"
if [ "$pass" = "ffx_fsr2_compute_luminance_pyramid_pass" ]; then
HALF_ARG="-DFFX_HALF=0"
fi
wine "$SC" "${BASE_ARGS[@]}" "$HALF_ARG" \
"-name=${pass}" \
"-I${SHADER_DIR}" \
"-output=${OUT_DIR}" \
"${SHADER_DIR}/${pass}.glsl"
done
test -f "$OUT_DIR/ffx_fsr2_accumulate_pass_permutations.h"
- name: Configure (AMD ON)
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWOWEE_ENABLE_AMD_FSR2=ON
- name: Build
run: cmake --build build --parallel $(nproc)
build-macos:
name: Build (macOS ${{ matrix.arch }})
runs-on: ${{ matrix.runner }}