Align FSR3 SDK detection/docs with legacy and Kits layouts

This commit is contained in:
Kelsi 2026-03-09 01:09:37 -07:00
parent e26cc28cb0
commit afaafa7470
3 changed files with 23 additions and 11 deletions

View file

@ -90,16 +90,22 @@ endif()
# AMD FidelityFX SDK (FSR3 frame generation interfaces) detection under extern/FidelityFX-SDK
set(WOWEE_AMD_FFX_SDK_DIR ${CMAKE_SOURCE_DIR}/extern/FidelityFX-SDK/sdk)
set(WOWEE_AMD_FFX_SDK_KITS_DIR ${CMAKE_SOURCE_DIR}/extern/FidelityFX-SDK/Kits/FidelityFX)
set(WOWEE_AMD_FFX_SDK_FI_HEADER ${WOWEE_AMD_FFX_SDK_DIR}/include/FidelityFX/host/ffx_frameinterpolation.h)
set(WOWEE_AMD_FFX_SDK_OF_HEADER ${WOWEE_AMD_FFX_SDK_DIR}/include/FidelityFX/host/ffx_opticalflow.h)
set(WOWEE_AMD_FFX_SDK_FSR3_HEADER ${WOWEE_AMD_FFX_SDK_DIR}/include/FidelityFX/host/ffx_fsr3upscaler.h)
set(WOWEE_AMD_FFX_SDK_VK_HEADER ${WOWEE_AMD_FFX_SDK_DIR}/include/FidelityFX/host/backends/vk/ffx_vk.h)
set(WOWEE_AMD_FFX_SDK_KITS_FG_HEADER ${WOWEE_AMD_FFX_SDK_KITS_DIR}/framegeneration/include/ffx_framegeneration.h)
if(WOWEE_ENABLE_AMD_FSR3_FRAMEGEN
AND EXISTS ${WOWEE_AMD_FFX_SDK_FI_HEADER}
set(WOWEE_AMD_FFX_SDK_LEGACY_READY FALSE)
if(EXISTS ${WOWEE_AMD_FFX_SDK_FI_HEADER}
AND EXISTS ${WOWEE_AMD_FFX_SDK_OF_HEADER}
AND EXISTS ${WOWEE_AMD_FFX_SDK_FSR3_HEADER}
AND EXISTS ${WOWEE_AMD_FFX_SDK_VK_HEADER})
set(WOWEE_AMD_FFX_SDK_LEGACY_READY TRUE)
endif()
if(WOWEE_ENABLE_AMD_FSR3_FRAMEGEN AND WOWEE_AMD_FFX_SDK_LEGACY_READY)
message(STATUS "AMD FidelityFX-SDK framegen headers detected at ${WOWEE_AMD_FFX_SDK_DIR}")
add_compile_definitions(WOWEE_HAS_AMD_FSR3_FRAMEGEN=1)
add_library(wowee_fsr3_framegen_amd_vk_probe STATIC
@ -134,7 +140,14 @@ if(WOWEE_ENABLE_AMD_FSR3_FRAMEGEN
else()
add_compile_definitions(WOWEE_HAS_AMD_FSR3_FRAMEGEN=0)
if(WOWEE_ENABLE_AMD_FSR3_FRAMEGEN)
message(WARNING "AMD FidelityFX-SDK framegen headers not found at ${WOWEE_AMD_FFX_SDK_DIR}; FSR3 framegen interface probe disabled.")
if(EXISTS ${WOWEE_AMD_FFX_SDK_KITS_FG_HEADER})
message(STATUS "FidelityFX-SDK Kits layout detected at ${WOWEE_AMD_FFX_SDK_KITS_DIR}, "
"but legacy sdk/include headers required by WoWee FSR3 probe/wrapper are not present. "
"FSR3 framegen interface probe disabled.")
else()
message(WARNING "AMD FidelityFX-SDK framegen headers not found at ${WOWEE_AMD_FFX_SDK_DIR}; "
"FSR3 framegen interface probe disabled.")
endif()
endif()
endif()

View file

@ -293,9 +293,9 @@ make -j$(nproc)
- GitHub Actions builds on every push: Linux (x86-64, ARM64), Windows (x86-64, ARM64 via MSYS2), macOS (ARM64)
- All build jobs are AMD-FSR2-only (`WOWEE_ENABLE_AMD_FSR2=ON`) and explicitly build `wowee_fsr2_amd_vk`
- Each job clones AMD's FSR2 SDK and FidelityFX-SDK (`v1.1.4`)
- Linux CI asserts FidelityFX-SDK Vulkan framegen files are present (FI/OF GLSL callbacks + Vulkan shader manifests)
- All CI platform jobs explicitly build `wowee_fsr3_framegen_amd_vk_probe`
- Each job clones AMD's FSR2 SDK and FidelityFX-SDK (`Kelsidavis/FidelityFX-SDK`, `main` by default)
- Linux CI checks FidelityFX-SDK framegen files and supports both legacy (`sdk/...`) and Kits layouts
- CI builds `wowee_fsr3_framegen_amd_vk_probe` when that target is generated for the detected SDK layout
- If FSR2 generated Vulkan permutation headers are absent upstream, WoWee bootstraps them from `third_party/fsr2_vk_permutations`
- Container build via `container/build-in-container.sh` (Podman)

View file

@ -78,7 +78,7 @@ Runtime note:
- 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.
- FidelityFX-SDK extern is fetched across platforms (default: `Kelsidavis/FidelityFX-SDK` on `main`).
- Startup safety behavior remains enabled:
- persisted FSR2 is deferred until `IN_WORLD`
- startup falls back unless `WOWEE_ALLOW_STARTUP_FSR2=1`
@ -96,14 +96,13 @@ Runtime note:
- `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:
- `Kelsidavis/FidelityFX-SDK` (`main`) by default
- Linux CI additionally checks FidelityFX-SDK framegen files (legacy `sdk/...` and Kits layouts):
- `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`
- CI builds `wowee_fsr3_framegen_amd_vk_probe` when that target is generated by CMake for the detected SDK layout.
- 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.