WIP: feat(dlss): port regular NGX neural rendering controls #619
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!619
Loading…
Reference in a new issue
No description provided.
Delete branch "TheDevil/Longshot:feat/ngx-neural-rendering"
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?
Type: feat · Risk: high · Tested on: Windows renderer builds and game-free fixtures · Needs: fresh compatible unmodified NGX runtime/game and Linux validation
Why
Port experimental Neural Rendering separately from input and pacing so it can be reviewed and reverted on its own. Replaces the NR portion of #173. Based on HypeZ85's Hookshot PR #1590, commit a1f730de8c8e7b2adfbca4e0b8ac4cfbdf72834c. HypeZ85 is valerio85 on Discord; credit belongs to him for the initial NR work.
What changed
Regular NGX feature creation/evaluation, real scene depth/motion, deferred resource lifecycle and locked retry/failure recovery. An optional NR settings page includes model controls, Compare Save/Cancel transactions, original-chromaticity blending, translations and persistent diagnostics. Non-NGX builds retain ordinary rendering.
This initial port is SDR-only and runs before DLSS/DLAA/FSR. Native HDR composition, stage choice and NR scaling are a dependent follow-up. API remains 22. No input, item-wheel or FPS-cap changes.
The patched-runtime bridge has been removed completely: no alternate runtime loader,
RX_VK_DLSS_NR_DIRECT,nr_bridge, or hardcoded registered application ID. Existing main NGX initialization is reused. Supply a compatible unmodified runtime; this project does not ship or download it. Patch details and the old AppID's provenance are unknown, so this PR makes no claims about them.Measurements
Verdict: Windows Vulkan renderer builds with and without NGX. Game-free fixtures exercise settings, menus, routing and lifecycle. No fresh live GPU/visual/performance claim.
Before: main @
2b1d38c682After:
95126d5729Hardware: Windows x64, i7-14700F, 16 GB; GPU/driver not exercised by CPU checks.
Scene: synthetic settings, menu and Vulkan/NGX call fixtures; no gameplay rendered.
Method: renderer-only SDK-on/off builds and production-code fixture execution.
How to reproduce:
python -I -B tests/run_all.py --jobs 5, with official llvm-mingw tools and Vulkan headers available. Renderer-onlyRX_VK_ONLY=1 python -I -B nx2/build.py --standalone --jobs 4, first with LONGSHOT_NGX_SDK, then without it.Full suite: 541 passed, 13 failed, 34 skipped (178 s). All failures also fail on main @
2b1d38c6:tests/test_appimage_player_build.py,tests/test_cpm_discovery.py,tests/test_crash_dialog.py,tests/test_env_on.py,tests/test_lift_cleanup_error.py,tests/test_linux_preflight.py,tests/test_make_game_cache.py,tests/test_oot_state_tap.py,tests/test_readback_late.py,tests/test_tested_configurations.py,tests/test_vk_pgo.py,tests/test_vram_budget_row.py,tests/test_walk_key.py. Main had 530 passed, 14 failed, 34 skipped; test_finish_output passed in this run. No new failing checks.2b1d38c695126d57Flags and settings
dlss5=0by default. No automatic runtime download. Native Linux is opt-in withRX_VK_DLSS_NR_LINUX=1, which only probes native NGX capability; Windows DLLs cannot be used natively. ExistingRX_VK_DLSS=0disables this path.RX_VK_DLSS_NR_DEFAULTdefaults enable only without a saved key,RX_VK_DLSS_NRoverrides enable for a run, andRX_VK_DLSS_NR_INTENSITYoverrides finite intensity 0.0–2.0; overrides preserve saved values. Model/color settings are documented in docs/dlss5-neural-rendering.md. Debug views are session-only; Compare previews are saved only by Save. The test-only rejection switch is compiled only with LONGSHOT_NR_TESTING.Testing
Tested: Windows SDK-on/off renderer compilation, production-code model clamping/edit coalescing, Compare/persistence/navigation, translation lookup, adapter inputs/fallback, retry locking and deferred destruction. Source/SPIR-V correspondence and recorder boundaries checked. Baseline failures are named in the results.
Not tested: fresh running game/host, compatible unmodified NR runtime, GPU timing/quality/VRAM, native Linux build/runtime. Previous combined patched-runtime results are not validation of this regular NGX port. User installation untouched.
Must be tested:
Risks
Experimental runtime contract and model/resource lifecycle can fail or increase GPU time/VRAM. Enable is optional; disable to use ordinary rendering. Runtime/GPU/driver support must be advertised by NGX, never inferred from SR support.
Compatibility: API/save/cache formats unchanged. New optional ini keys preserve preferences during unavailable states. No vendor binary, SDK, game asset or lifted code is distributed. Only source shader companions are committed. Native HDR falls back unchanged in this slice.
Initial full-suite measurements use main @
2b1d38c6. The current head incorporates main @6c9edffeby non-rewriting merge; focused post-merge results are recorded below.Checklist
Everyone
type(scope): description) of the status line's type.main.python -I -B tests/run_all.pypasses (any failure that also fails onmainis named).third_party/untouched (a new folder with aPROVENANCE.mdinstead).When it applies
Upstream refresh
Current head:
d6a6ba99152333a189def02c126105c74a01dd7c. Main snapshot6c9edffeis incorporated by merge, preserving published history. 18 focused checks passed after the merge; zero failures/skips. Earlier full-suite measurements remain tied to their named feature commits above. The literal rebase checklist remains unticked because history was merged, not rewritten. Fresh game/Linux checks remain WIP.Updated the branch to include main @
6c9edffeby non-rewriting merge. Current headd6a6ba9915; 18 focused post-merge checks passed, 0 failed/skipped. Description preserves commit-specific full-suite results and remaining live/Linux validation. Still WIP.This pull request now conflicts with
main: gpu/vk/menu_i18n.h, gpu/vk/vk_menu.cpp and three tests (test_framegen_preset.py, test_menu_keys.py, test_upscaler_round_trip.py), touched onmainby #500, #550, #729, #735, #736. Could you rebase it onto the currentmain? Thank you.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.