Idea: AMD FSR 4 / FSR 3.1 as an Upscaler choice (Vulkan, FSR SDK 2.4) #1458

Closed
opened 2026-11-10 03:41:42 +00:00 by roblesleo · 2 comments
roblesleo commented 2026-11-10 03:41:42 +00:00 (Migrated from github.com)

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

### 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_
NotRexed commented 2026-11-10 03:49:48 +00:00 (Migrated from github.com)

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.

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.
NotRexed commented 2026-11-10 10:08:05 +00:00 (Migrated from github.com)

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.

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`.
Commenting is not possible because the repository is archived.
No milestone
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Hookshot#1458
No description provided.