Files
Swordpdf--ps5-framegen/examples
swordpdfandClaude Opus 5.5 11937f654f PS5SX2's changes: ps5vk's compact bindings, the frames' format, the tick-based pacer (AI-assisted)
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
2026-10-08 22:31:15 +03:00
..