feat(fps): a Dev level of the FPS counter, past Breakdown, with the renderer's own numbers #8

Merged
HumanBean merged 1 commit from HumanBean/Longshot:feat/fps-dev-level into main 2026-11-12 22:14:16 +00:00
Owner

The FPS counter's Breakdown says where a frame's time went, but not what the renderer holds or does: for a
stutter or a bug report you still had to dig the status line out of the log. Dev adds, under the Breakdown:

  • VRAM: used of what the driver allows (VK_EXT_memory_budget), red past it; without a budget, the game's own
  • Textures: how many the renderer holds and their memory
  • Draws, dispatches and render passes a frame
  • Draws skipped a frame (red when any)
  • Texture uploads a second
  • Pipelines built since the start

The values come from the counters the renderer already keeps (draw_stats, draw_stats2, texture_stats,
texture_count/bytes, vram_usage), read by fps_texts every half second and divided by the frames presented in
that time; nothing new is measured per draw. The text helpers are in fps_stats.h, checked by
tests/test_fps_stats.cpp. An options file's levels keep their meaning (Dev is the new last value).


Moved from NotRexed/Hookshot#2906 (closed when the GitHub account was suspended).

The FPS counter's Breakdown says where a frame's time went, but not what the renderer holds or does: for a stutter or a bug report you still had to dig the status line out of the log. Dev adds, under the Breakdown: - VRAM: used of what the driver allows (VK_EXT_memory_budget), red past it; without a budget, the game's own - Textures: how many the renderer holds and their memory - Draws, dispatches and render passes a frame - Draws skipped a frame (red when any) - Texture uploads a second - Pipelines built since the start The values come from the counters the renderer already keeps (draw_stats, draw_stats2, texture_stats, texture_count/bytes, vram_usage), read by fps_texts every half second and divided by the frames presented in that time; nothing new is measured per draw. The text helpers are in fps_stats.h, checked by tests/test_fps_stats.cpp. An options file's levels keep their meaning (Dev is the new last value). --- Moved from NotRexed/Hookshot#2906 (closed when the GitHub account was suspended).
The FPS counter's Breakdown says where a frame's time went, but not what the renderer holds or does: for a
stutter or a bug report you still had to dig the status line out of the log. Dev adds, under the Breakdown:

- VRAM: used of what the driver allows (VK_EXT_memory_budget), red past it; without a budget, the game's own
- Textures: how many the renderer holds and their memory
- Draws, dispatches and render passes a frame
- Draws skipped a frame (red when any)
- Texture uploads a second
- Pipelines built since the start

The values come from the counters the renderer already keeps (draw_stats, draw_stats2, texture_stats,
texture_count/bytes, vram_usage), read by fps_texts every half second and divided by the frames presented in
that time; nothing new is measured per draw. The text helpers are in fps_stats.h, checked by
tests/test_fps_stats.cpp. An options file's levels keep their meaning (Dev is the new last value).
HumanBean deleted branch feat/fps-dev-level 2026-11-12 22:14:16 +00:00
Sign in to join this conversation.
No description provided.