Hotfix — frame pacing & FPS counter
- F1 overlay now reports real guest FPS and frametime. It previously counted vblank ticks + guest swaps on the same counter, inflating the reading (and showing ~1 ms frametimes with VSync off). It now measures presented guest frames over a fixed window, so FPS and frametime stay consistent. A small vblank-rate readout was added for diagnosis.
- The guest is now paced to the display. Previously nothing throttled
IssueSwapto the vblank, so the game free-ran and produced frames that could never be displayed. With VSync on, the command processor now allows at most one swap per vblank tick — the game caps at the configured refresh rate (60 Hz) through natural ring-buffer backpressure. VSync off and fast-forward (F2) remain uncapped. - Host presentation now respects VSync. The Vulkan swapchain used IMMEDIATE mode unconditionally, presenting ~225×/s and wasting GPU work on duplicate frames. With VSync on it now uses FIFO — external FPS counters will correctly show your display's refresh rate.
- The guest-visible vblank counter writeback now reports pure vblank ticks instead of the mixed counter, and F2 fast-forward / shutdown restore your configured VSync setting instead of forcing it on.
Includes all changes from v0.7.1-beta (ultrawide/aspect-ratio fix, bundled shader cache) — see that release for details.