Skip to content

Add ZeroFG hot-swap and SGSR1 Edge Direction - #116

Closed
hy300leosquizz-ctrl wants to merge 2 commits into
phforner0:mainfrom
hy300leosquizz-ctrl:codex/zerofg-z-rz
Closed

hy300leosquizz-ctrl wants to merge 2 commits into
phforner0:mainfrom
hy300leosquizz-ctrl:codex/zerofg-z-rz

Conversation

@hy300leosquizz-ctrl

Copy link
Copy Markdown
Contributor

Adds optional ZeroFG Zero (RC7) and ReallyZero (RC5+) to Settings and the in-game Frame Generation menu, plus the existing XenDroid SGSR1 Edge Direction filter. ZeroFG stays off by default.

Off / ReallyZero / Zero requests are applied on the native presenter owner thread. Mode changes disconnect and drain the previous session before rebuilding generation state, including when the game is paused. The existing Plus frame-generation engines remain available and mutually exclusive with ZeroFG. Optional handoff capabilities are negotiated when supported so a qualified Source can activate ZeroFG after starting off; ZeroFG's Vulkan 1.3 requirement does not raise the native Plus floor.

The port reuses the independent presenter's active rate-lock, presentation-advance, reanchor, phase-recovery and ordering policies. Queue admission precedes interpolation recording, preserving the new core's retained-history/submission contract. Plus image controls run on both real and synthetic output, with private color-filter resources per output job. SGSR1 Edge Direction is appended as setting value 6; existing values and scaling defaults are preserved.

The first commit vendors the approved engine snapshot 38dcc6f and shipped shader headers, unchanged, with provenance and license. This makes the PR self-contained without depending on an unpublished remote engine commit. The second commit contains host integration, UI, Edge and validation notes. See the integration guide.

Validation:

  • Android Debug APK build passed (JDK 21, NDK 29.0.14206865).
  • 29 JVM tests passed: in-game menu, Keep/Undo, setting catalog and EN/PT strings.
  • JNI declarations/registrations passed (97 native methods); existing native vblank-pacer and frame-statistics tests passed.
  • All 170 imported engine files match the approved snapshot. Existing SGSR1 and SGSR1+dither SPIR-V remain byte-identical; both new Edge shaders pass spirv-val --target-env vulkan1.0.
  • The guest-vblank adaptation passed a CPU model with 240 cases and three falsifier mutants; this is separate from device runtime evidence.

Device qualification remains pending, so this is a draft: exercise Off/RZ/Zero while running and paused, legacy-engine round trips, resize/resume and external displays, and compare SGSR1/Edge on real and synthetic output. The approved ARMSX2 engine results do not establish this new host's cadence, latency or image equivalence. No new Plus performance claim is made.

Preserve engine 38dcc6f and its shipped SPIR-V unchanged; include the thin Xenia adapter and provenance. Checked 170 files against the approved commit and built the Android static library. Host integration and runtime validation are separate.
Reuse the qualified independent presenter with explicit RC7/RC5+ mapping, safe recording/submission order and owner-thread hot-swap. Preserve native Plus filters on real and synthetic output, add Edge with stable setting indices, and retain native fallback. Android Debug build, 29 JVM tests, JNI/native CPU checks and SGSR shader gates pass. Device runtime and latency remain unqualified.
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.

1 participant