The Gauntlet: interactive on-screen stress benchmark with baseline recording #340
Labels
No labels
Alpha Release Requirement
Bugfix
Demo Target
Documentation
Major Feature
Minor Feature
priority:tier1-active
priority:tier2-foundation
priority:tier3-future
priority:tier4-deferred
Refactoring & Cleanup
system:animation
system:documentation
system:grid
system:input
system:performance
system:procgen
system:python-binding
system:rendering
system:ui-hierarchy
Tiny Feature
workflow:blocked
workflow:needs-benchmark
workflow:needs-documentation
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
john/McRogueFace#340
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
An interactive, on-screen benchmark app that stress-tests the engine and baselines performance, designed 2026-07-02 (spec:
tests/benchmarks/gauntlet/DESIGN.md, committed with the implementation).Shape
Six themed trials, each ramping load geometrically on one subsystem until the 16.67 ms frame budget breaks (p95 over a 2 s hold window); max sustained load = the trial's score:
grid.step()(entity step/render)Live HUD on every trial: frame-time sparkline with budget hairline, FPS readout, p95, draw calls, load level. Menu + results screens; results diff against a stored baseline (
tests/benchmarks/baseline/gauntlet/baseline.json, schema v1 with version/commit/platform) with per-trial deltas and a geometric-mean GAUNTLET SCORE + letter grades.Modes: interactive (
gauntlet_main.py) and unattended baseline run (run_gauntlet.py).Uses the existing
mcrfpy.get_metrics()surface; complements the Phase 5.2 scripted benchmarks (tests/benchmarks/) — this is the watchable, whole-engine composite, those are the per-subsystem microbenches.Related: #255 (perf tracking), #329 (entity indexing — Entity Swarm will feel this), #117, #124.