Add AMD FSR3 framegen interface probe and CI validation

This commit is contained in:
Kelsi 2026-03-08 22:47:46 -07:00
parent 7d89aabae5
commit a49decd9a6
10 changed files with 232 additions and 5 deletions

View file

@ -11,6 +11,10 @@ AMD SDK checkout path:
`extern/FidelityFX-FSR2`
FidelityFX SDK checkout path (framegen extern):
`extern/FidelityFX-SDK` (pinned to `v1.1.4` in build scripts and CI)
Detection expects:
- `extern/FidelityFX-FSR2/src/ffx-fsr2-api/ffx_fsr2.h`
@ -21,15 +25,20 @@ Detection expects:
## Build Flags
- `WOWEE_ENABLE_AMD_FSR2=ON` (default): attempt AMD backend integration.
- `WOWEE_ENABLE_AMD_FSR3_FRAMEGEN=ON` (default): build AMD FSR3 framegen interface probe when FidelityFX-SDK headers are present.
- `WOWEE_HAS_AMD_FSR2` compile define:
- `1` when AMD SDK prerequisites are present.
- `0` when missing, in which case internal fallback remains active.
- `WOWEE_HAS_AMD_FSR3_FRAMEGEN` compile define:
- `1` when FidelityFX-SDK FI/OF/FSR3+VK headers are detected.
- `0` when headers are missing (probe target disabled).
## Current Status
- AMD FSR2 Vulkan dispatch path is integrated and used when available.
- UI displays active backend in settings (`AMD FidelityFX SDK` or `Internal fallback`).
- Runtime settings include persisted FSR2 jitter tuning.
- FidelityFX-SDK `v1.1.4` extern is fetched across platforms and validated in Linux CI for Vulkan framegen source presence.
- Startup safety behavior remains enabled:
- persisted FSR2 is deferred until `IN_WORLD`
- startup falls back unless `WOWEE_ALLOW_STARTUP_FSR2=1`
@ -45,6 +54,16 @@ Detection expects:
## CI Notes
- `build-linux-amd-fsr2` clones AMD's repository and configures with `WOWEE_ENABLE_AMD_FSR2=ON`.
- All build jobs clone:
- `GPUOpen-Effects/FidelityFX-FSR2` (`master`)
- `GPUOpen-LibrariesAndSDKs/FidelityFX-SDK` (`v1.1.4`)
- Linux CI additionally checks FidelityFX-SDK Vulkan framegen files:
- `ffx_frameinterpolation_callbacks_glsl.h`
- `ffx_opticalflow_callbacks_glsl.h`
- `CMakeShadersFrameinterpolation.txt`
- `CMakeShadersOpticalflow.txt`
- All CI platform jobs build:
- `wowee_fsr3_framegen_amd_vk_probe`
- Some upstream SDK checkouts do not include generated Vulkan permutation headers.
- WoWee bootstraps those headers from the vendored snapshot so AMD backend builds remain cross-platform and deterministic.
- If SDK headers are missing entirely, WoWee still falls back to the internal backend.