- .github/workflows/ci.yml: on every push and pull request, fg-test's
scenes on Mesa's lavapipe against tools/check-scenes.py's limits (about
1.5x today's scores, plus at most a fifth of a plain blend's error, plus
BGRA = RGBA), the pacer's test with GCC and Clang -Werror, the example
compiled, and the shaders rebuilt with glslang 16.2.0 (pinned, cached)
and compared with src/framegen/fg_shaders.inc.
- README: what the template gives, both emulators it runs in, the quick
start on lavapipe, the integration with the pacer, the PS5 notes.
- docs/integration.md: the pacer, the frames' format, your own loader,
RADV and ps5vk, the 120 Hz param.json (attribute3 524352) and
PS5VK_PARAM_JSON, ps5vk's binding numbers.
- docs/testing.md: what CI runs and how to run it locally, the baseline
scores on SwiftShader and lavapipe.
- LICENSE.md: copyright swordpdf; .gitignore: *.pyc.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DaNprJCmpBhrkpzRHVPLXM
interpolate_next() makes the first frame's still history and quad motions
visible to its compute reads; the quads' motions are cleared on a reset and a
scene change; the refinement scores an off-screen sample as the candidates
do; the GPU timer's optical flow sum is reset with the rest. Docs and the
example: no frame limit counts as tight, the user's own second limit is
taken in, the multiplier is a most (as many frames as the game's interval
has refreshes, less one).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DaNprJCmpBhrkpzRHVPLXM
set_generated(n) and interpolate_next(cmd, i): the interpolation at any
moment t (the previous frame at x + 2t v, the current one at x - 2(1 - t) v,
the blend weighted to the nearer frame), the first frame of a group keeping
the still history and the quads' motions; fg-test --gen N; the example and
the docs (the multiplier, its input lag, the swapchain's images).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DaNprJCmpBhrkpzRHVPLXM
RPCS3-PS5's frame generation (m74) on its own, as a template: FSR3's optical
flow (FidelityFX SDK 2.3.0, MIT, compiled with glslang) and a candidate-based
interpolation that needs no motion vectors or depth; the Vulkan host class,
the SwiftShader test harness with synthetic and real-frame tests, a present
loop example, and the docs (algorithm, integration with pacing and latency,
testing and results).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DaNprJCmpBhrkpzRHVPLXM