WIP: feat(vk): add an optional ANR frame generation provider #244
No reviewers
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/upscaling
beanstalk: approved @ 1697603
beanstalk: approved @ 2c5a62e
beanstalk: approved @ 4fd82b7
beanstalk: approved @ 64d6d09
beanstalk: approved @ 6f91fae
beanstalk: approved @ 70a78f9
beanstalk: approved @ 8d361dc
beanstalk: approved @ 9d8356e
beanstalk: approved @ abf2227
beanstalk: approved @ d82f202
beanstalk: approved @ e5f1e40
beanstalk: approved @ ee8ab5f
ci: approved
good first issue
gpu/amd
gpu/igpu
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
needs measurements
platform/linux
platform/macos
platform/steam-deck
platform/windows
preview
priority
critical
priority
high
priority
low
regression
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
ci: approved
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot!244
Loading…
Reference in a new issue
No description provided.
Delete branch "brunobaccari/Longshot:feat/longshot-anr-framegen"
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?
Why
Players need to choose ANR as an alternative frame-generation provider while retaining the normal Auto and Built-in options. This draft adds the integration and exposes the effective generator and fallback reason; it does not yet demonstrate ANR-generated frames or a performance improvement.
What changed
gpu/vk/vk_anr.cpp, independent of NVIDIA's NGX core and RTX gates. Feed owned temporal depth/motion inputs into the existing frame-generation output and presentation path.--fetch-anr-runtimeflag andscripts/anr_sdk.py. Reuse the existing checked ZIP cache; pin the official FG-V.B15 addon, stage its 19-file runtime subtree, preserve player configuration and modified packages, and emit@@anr-runtime readyonly for verified deployment. Never execute the upstream installer, change graphics options or bundle provider binaries/models.Flags and settings
frame_generation_by=2/ Graphics: Frame generation by → ANR0Auto remains unchanged;1Built-in remains available--fetch-anr-runtime<work>/anr-sdk, and installs its complete runtime subtree in<game>/anr/nr_fg.iniand modified packagesOff, Auto and Built-in do not load ANR. The source documents starting with fixed 2x and a temporal upscaler; actual supported counts and output still need validation against the real provider. The game's base FPS remains separate from generated frames.
Measurements
main:
d9648863ab(2026-11-13)this PR: feat/longshot-anr-framegen @ 073d4836c3d7f617507b960ee04a421150f14dc8
Companion Launcher PR: LongshotLauncher PR #50.
d9648863The branch has been rebased onto the named main. The existing renderer checks at 0a8504b and downloader checks at ee004cf below are historical preparation, not validation or performance measurements of the rebased head. No generated-frame output or FPS improvement is claimed. Local Launcher/game validation is now being prepared; keep this experimental PR in draft until it is complete.
Testing
Tested: 14 targeted renderer checks, strict Windows syntax compilation of
vk_anr.cpp, source/diff checks, and the original cross-ABI fixture at0a8504b. Atee004cf, 22 downloader tests and the 40 adjacent FFX/NGX/make_game tests passed. A real official ZIP was downloaded, verified and installed into a disposable fake-game directory; a second fetch proved cache reuse without network. No DLL or installer was executed. The fixture exercises numeric and resource-pointer arguments, Reset, unsigned 64-bit precision, null/missing values and invalid numeric conversions. The Vulkan resource layout was checked against the public ABI.Not tested: full application build including the opt-in download, full game-free suite on the rebased head, Linux compilation/runtime, real ANR Populate/Init/Create/Evaluate/Shutdown, generated output on the RX 5500 XT, live engine switching, resize/DRS/cuts under the real provider, HDR behavior, quality/ghosting, resource usage, performance or default-state cost in the game. Native Linux currently has an unavailable-provider path; it has not been compiled in this validation.
Needs other testers:
Screenshots
Pending a real in-game run. No mocked menu or synthetic frame is presented as ANR output.
Risk and rollback
The closed provider's Vulkan contract, resource lifetime and output have not yet been validated in the game. Incorrect depth/motion/color inputs may produce artifacts even if evaluation succeeds. Select Auto or Built-in, or remove the optional external package, to return to the normal generator. The downloader leaves manual/modified packages untouched and preserves
nr_fg.ini; deployment failure rolls the old package back and retains its backup if rollback itself fails. Existing defaults and NVIDIA capability gates remain intact.Reviewer notes
Start with the selection/lifecycle gates,
vk_anr.cpp, the owned temporal inputs and the original parameter-ABI fixture. The addon remains external: its binary/model redistribution terms have not been established. The ABI mock proves the cross-compiler callback boundary, not compatibility or performance of the actual ANR DLL. This is intentionally a draft/WIP and must not be marked ready until the missing build and real-provider validation are complete.Issues
Player-requested optional ANR integration. No issue is closed by this draft.
Checklist
For everyone
type(scope): description).main. — Head 073d4836 contains maind9648863; current-head validation remains pending.python -I -B tests/run_all.pyrun and passing (any failure that also fails onmainis named above). — Targeted checks only so far.third_party/untouched (a new folder with aPROVENANCE.mdinstead).If applicable
Assisted-by:/Co-Authored-By:trailers.tests/that reads changed source updated in this PR, not weakened.Added the opt-in official ANR runtime downloader and verified-deployment event in ee004cf. The companion Launcher change will expose it only for supported builders. The 22 ANR tests, 40 adjacent builder checks and an isolated real-addon/cache smoke passed; the full build and actual provider/GPU validation remain pending, so this stays WIP.
ee004cfaf0073d4836c3WIP: feat(vk): add an optional ANR frame generation providerto feat(vk): add an optional ANR frame generation providerfeat(vk): add an optional ANR frame generation providerto WIP: feat(vk): add an optional ANR frame generation providerWIP: feat(vk): add an optional ANR frame generation providerto feat(vk): add an optional ANR frame generation provider073d4836c3b998c8feb1feat(vk): add an optional ANR frame generation providerto WIP: feat(vk): add an optional ANR frame generation providerMay I ask is there HUD ghosting issue with ANR framegen?
View command line instructions
Manual merge helper
Use this merge commit message when completing the merge manually.
Checkout
From your project repository, check out a new branch and test the changes.