Skip to content

Early-inject Phase 0: native routing, UE TAA-off, early_color glue - #61

Open
GorgotsRoman wants to merge 7 commits into
faisalkindi:mainfrom
GorgotsRoman:feature/early-inject-phase0
Open

GorgotsRoman wants to merge 7 commits into
faisalkindi:mainfrom
GorgotsRoman:feature/early-inject-phase0

Conversation

@GorgotsRoman

Copy link
Copy Markdown
Contributor

Summary

  • Native DLSS discipline: prefer Opti / RenoDX / Upstream; warn on Force Feeder; honest Present vs early-color About/Setup copy
  • UE TAA-off seeds (e.g. Ghostrunner) write r.AntiAliasingMethod=0 Engine.ini hints; ME/Gothic/Sims tighten engine_velocity=0 for estimated-MV/OFA
  • Feeder glue: early_color / early_color_cand in feeder_cfg + overrides; Games/Setup status chip (Early color / Present). No bundled .addon64

Stack note

Based on pr/shipping-game-overrides (#59) so this PR currently includes the #57#58#59 tip plus one Phase 0 commit. After #59 merges, rebase onto main for a one-commit review. Avoids the hub monolith/preview/assets/patches addon64 bloat.

Companion Feeder work: jlrouzies-fr/DLSS5-Feeder#76 (early color hunter on the Optimize branch).

Test plan

  • Native DLSS title: Setup defaults to Opti/RenoDX path; Force Feeder shows warning
  • Ghostrunner Shipping Install: override note + Engine.ini TAA-off under Saved/Config when layout found
  • Mass Effect: cfg gets engine_velocity=0, OFA/LightStab seeds
  • Witcher 3: early_color=1 seed; Games chip shows Early color; Feeder overlay can still fallback Present
  • Gothic 3: early_color=0, estimated-MV friendly; no early claim
  • cargo fmt / clippy -D warnings / cargo test
  • Confirm no new files under assets/patches/*.addon64

Game matrix

Role Game Path Check
DX9 Gothic 3 dgVoodoo→Feeder Install, estimated MV, early N/A
DX11 early Witcher 3 / other deferred Feeder early Cand overlay, A/B vs Present
UE Shipping Ghostrunner DX12 Feeder Shipping resolve, TAA-off
Vulkan ME LE kit Soft-warn; early N/A
Native CP2077 / any own DLSS Opti/RenoDX Not forced to Feeder

GorgotsRoman and others added 5 commits September 7, 2026 19:47
Adds settings.json seeding, quality presets, and offline dlss5-feed.cfg /
FX uniform editing. Install writes those defaults; post-install verifies
critical files. Official Feeder release zip only (no bundled overwrite).
Follow-up to closed faisalkindi#55; Feeder-side work lives in jlrouzies-fr/DLSS5-Feeder#76.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add Reset to Feeder defaults (work 100%, ofa off, adaptive reset) and rustfmt the PR branch.

Co-authored-by: Cursor <cursoragent@cursor.com>
Adds dlss5-perf.jsonl nearest-neighbour expected FPS on the Setup knobs
panel (honest estimate; needs in-game samples). Stacked on the Settings /
offline cfg PR. Companion writer: jlrouzies-fr/DLSS5-Feeder#76.

Co-authored-by: Cursor <cursoragent@cursor.com>
Local game_overrides.json seeds Feeder cfg quirks at Install. Cards and
Setup always resolve launcher folders to the canonical Shipping exe via
find_game_exes / resolve_target (reconciled with 32-bit and D3D9/import
rules on main). Stacked on Settings + perf PRs; no bundled Feeder patches.
Follow-up to closed faisalkindi#55.

Co-authored-by: Cursor <cursoragent@cursor.com>
Prefer Opti/RenoDX on native DLSS, seed UE TAA-off and tighter ME velocity overrides, and expose early_color cfg/status without bundling Feeder binaries.

Co-authored-by: Cursor <cursoragent@cursor.com>
@faisalkindi

Copy link
Copy Markdown
Owner

Two things here: one I like, one I want changed before it goes near main.

The stack is now four deep. #61 is based on #59, which contains #58 and #57. That means #61's 4,275-line diff is mostly code I have already reviewed twice, and none of it can merge until the base does. I am not going to review a fourth copy of the same lines — let's land #58 first (it is verified and waiting), then rebase down the chain as you planned.

The part I want changed: writing to the game's Engine.ini.

UE TAA-off seeds (e.g. Ghostrunner) write r.AntiAliasingMethod=0 Engine.ini hints

This tool does not currently modify a game's own configuration files, and I would like to keep that line clean. Everything it writes today is either a file it brought (dxgi.dll, the add-ons, the shaders) or a config for a component it installed (ReShade.ini, OptiScaler.ini, dlss5-feed.cfg). Engine.ini is the player's game settings, edited through the game's own menus, and often synced or regenerated by the launcher.

If it stays, it needs all four of these:

  1. Opt-in, never on a plain Install.
  2. A backup of the original beside it, the way the OptiScaler and ReShade paths keep .bak files.
  3. Reverted by Remove, like everything else the tool writes.
  4. Named in the UI before it happens — "this will change the game's anti-aliasing setting" is not something a user should discover afterwards.

Otherwise I would rather it were a printed instruction than a silent edit: "turn TAA off in this game's settings for a better result" costs the user ten seconds and costs us nothing in trust.

The parts I like: preferring Opti/RenoDX/Upstream on native-DLSS titles and warning on Force Feeder is right — the Feeder is the fallback, not the default, and the tool has never said so clearly enough. The honest Present-versus-early-color status chip is also good; users currently have no way to tell which route they ended up on.

early_color is the piece I cannot judge yet. It depends on the Feeder's own early-color hunter in DLSS5-Feeder#76, which is unmerged. If that PR changes shape upstream, this glue changes with it — so this one should land after the Feeder side is settled, not before. Otherwise the tool ships config keys that no released Feeder reads.

Suggested order: #58#57#59 → (upstream #76 lands) → #61, each rebased to its own diff.

Install only logs a printed instruction (setup_tip); game configs stay untouched per review on faisalkindi#61.

Co-authored-by: Cursor <cursoragent@cursor.com>
@GorgotsRoman

Copy link
Copy Markdown
Contributor Author

Follow-up: no Engine.ini writes

Per your review — this tool no longer touches the game''s Engine.ini.

  • Removed apply_ue_taa_off / Saved/Config merging entirely.
  • taa_off: true now only logs a printed tip on Install (and Setup still shows setup_tip): turn TAA/TSR off in the game''s own options (or set r.AntiAliasingMethod=0 yourself).
  • Tip text explicitly says this tool does not edit Engine.ini.

Agree on merge order: #58#57#59 → (Feeder #76 lands) → #61, each rebased to its own diff. Happy to rebase #61 onto main after the stack lands; early_color glue stays gated on upstream Feeder.

@faisalkindi

Copy link
Copy Markdown
Owner

That is exactly right, and quickly done — thank you.

A printed tip that says what to change and states plainly that the tool does not edit Engine.ini is the correct shape: the user gets the benefit and keeps ownership of their own game settings. Removing apply_ue_taa_off and the Saved/Config merging outright is cleaner than the four-condition version I described, and I prefer it.

Agreed on the order, and on keeping the early_color glue gated behind DLSS5-Feeder#76. Shipping config keys that no released Feeder reads would only generate confused bug reports.

Nothing further from me on this one until the stack below it lands.

Expose Feeder async_feed in Settings/cfg, show an Async ~1f chip when on, and recommend async_feed for Gothic (display lag ~1 frame, not FPS delay).

Co-authored-by: Cursor <cursoragent@cursor.com>
@GorgotsRoman

Copy link
Copy Markdown
Contributor Author

Thin glue for Feeder async feed + HUD (see Feeder PR #76):

  • async_feed in feeder_cfg / Settings checkbox
  • Games chip Async ~1f when cfg on
  • Gothic setup tip recommending async for weak CPU (lag ~1 frame, not FPS delay)

No bundled addon64 — build Feeder build.bat separately.

@faisalkindi

Copy link
Copy Markdown
Owner

Same position as the early_color glue: fine in shape, gated on upstream.

async_feed is a Feeder key, so the tool should only learn to write it once a released Feeder reads it. DLSS5-Feeder#76 is still open, and "build Feeder build.bat separately" is not something this tool can ask of its users — everything it installs comes from a published release, precisely so nobody has to compile anything.

So: keep it in the branch, and when #76 lands and a release ships with async_feed, this glue goes in with the version check that stops it writing a key an older Feeder would ignore.

The "Async ~1f" chip and the Gothic tip are good — being explicit that it is roughly one frame of lag rather than an FPS cost is the right framing, and it is the kind of thing users otherwise learn by guessing.

Still nothing further from me here until #58#57#59 have landed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants