Idea: AMD FSR 4 / FSR 3.1 as an Upscaler choice (Vulkan, FSR SDK 2.4) #1458
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot#1458
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The idea
Hi! I added AMD FSR to Hookshot's Upscaler row, next to DLSS/DLAA, and wanted to ask if you'd take it as a PR.
What it does
New Upscaler choices: AMD FSR and AMD FSR Native AA, plus two rows: FSR version (Auto / FSR 4 / FSR 3.1) and FSR 4 model (Auto / FP8 / INT8 / INT8 RDNA2 / INT8 Lite).
It reuses the inputs vk_dlss.cpp already builds for DLSS (scene colour, depth, camera + actor motion, camera jitter), so it's a second backend at the same spot, not a new pipeline.
AMD's runtime is the signed FSR SDK 2.4 Vulkan runtime (amd_fidelityfx_loader_vk.dll + amd_fidelityfx_upscaler_vk.dll). It is not in the repo: scripts/ffx_sdk.py fetches it from AMD's GitHub with pinned SHA-256s (like ngx_sdk.py), and make_game.py --fetch-ffx-sdk puts it in the game's ffx folder. Only AMD's four MIT API headers are vendored. Windows only, since AMD only ships the Windows runtime.
On GPUs AMD doesn't list (NVIDIA, Intel), FSR 4 Auto falls back to the INT8 Lite model. A specific model can be forced from the row.
Tested
RTX 3060 Laptop, NVIDIA 617.14, Windows 11, Kokiri Forest.
FSR 4.1.2 INT8 Lite: 960x540 → 1920x1080, ~140 MB VRAM (83 MB context + 58 MB inputs), no failures.
FSR 3.1.6 also runs.
I haven't tested on AMD hardware yet; a Legion Go test is planned.
Branch: https://github.com/roblesleo/Hookshot/tree/fsr. It also has a few fork-only things, like a small build window and a Portuguese menu; a PR would contain only the FSR part.
Questions before I open a PR:
Are you OK with an FSR backend next to DLSS in vk_dlss.cpp, or would you prefer the shared input code split out first?
Is forcing an FSR 4 model on GPUs AMD doesn't list acceptable as an opt-in row, or should it be env-only?
Anything else
No response
Thanks for the offer! AMD FSR 3.1 upscaling and 2x frame interpolation are already in the v2.0.12 branch (#1386), closing at release. FSR 4 is being worked on in the open PR #1008, so the FSR 4 parts (models, the SDK 2.4 runtime) are best coordinated there, ideally as a PR on top of it.
Fixed in v2.0.12 (https://github.com/NotRexed/Hookshot/releases/tag/v2.0.12): AMD FSR 3.1 upscaling and frame generation is an Upscaler choice (#1386); FSR 4 is followed in #1008. Update with the Hookshot Builder (or the game's update offer) and rebuild. If it still happens on v2.0.12, reopen this with your
hookshot_log.txt.