mirror of
https://github.com/Swordpdf/ps5-framegen.git
synced 2026-10-17 15:01:29 +02:00
What PS5SX2 2.00 added on top of the template's m74, made general: - create() renumbers each pass's bindings 0..n-1 in the SPIR-V, the set layout and the writes. ps5vk sizes a set's table to its highest binding number and keeps it in a byte, so FSR3's sparse numbers (up to 405) made vkCreateComputePipelines fail there. Output is bit-identical on SwiftShader and lavapipe. - create(..., frame_format): the game's frames may be B8G8R8A8_UNORM, for renderers that draw them in a BGRA swapchain's format (fg-test FG_TEST_BGRA=1 checks the picture is the same). - PS5_FRAMEGEN_VULKAN_HEADER: build against your own Vulkan header or loader. - src/ps5_framegen_pacing.h: the pacer, counted in the source's ticks (an emulated machine's vblanks, or a game loop's) instead of the wall clock, which fed itself at 60 Hz. It generates only with two refreshes a frame or more, at a steady frame rate, after 8 frames of warm-up, with the safety net that pauses generation when it costs an emulator its speed. tests/test_pacing.cpp: its 911 checks. - examples/present_loop.cpp drives the pacer, the multiplier from the ticks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DaNprJCmpBhrkpzRHVPLXM