diagnosing-perf-regressions

Diagnose frame rate and load time regressions by bisecting changes against a known-good baseline.

66|4|Updated Feb 26, 2026
One-click install
npx skills add https://github.com/SummerEngine/summer --skill diagnosing-perf-regressions-summerengine
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: diagnosing-perf-regressions
Source: https://github.com/SummerEngine/summer/tree/main/library/skills/diagnosing-perf-regressions
Command: npx skills add https://github.com/SummerEngine/summer --skill diagnosing-perf-regressions-summerengine

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When a game that used to run smoothly suddenly drops in frame rate, frame time, or load time, this Skill finds the specific change that caused the regression instead of guessing or blindly optimizing. ## Core Features & Use Cases - Measured Baselines: Captures FPS, frame time, draw calls, and physics body counts through a RunVerification probe so both the known-good and known-bad states have real numbers. - Guided Bisection: Uses git history to narrow the window between the last good state and HEAD, then tests suspect commits one at a time. - Cliff Matching: Maps symptoms to the four common Godot 4.x performance cliffs: physics body count, shader compilation stalls, draw call/instance count, and transparent overdraw. - Use Case: A scene that ran at 60fps now runs at 31fps after a week of changes. The Skill measures both states, bisects the commits, identifies a spawner with no cap as the cause, reverts it, and re-measures to confirm recovery. ## Quick Start Ask the agent to find out why the game's frame rate dropped since last week and identify which change caused it.

Frequently Asked Questions about diagnosing-perf-regressions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find what caused an FPS drop in my Godot game?

Measure the current FPS with a probe, identify the last known-good commit in git history, then bisect the commits between them while re-measuring. Match the symptom to common causes like physics body count, shader compilation, draw calls, or transparent overdraw.

How to bisect performance regressions with git?

Run git log between the last good commit and HEAD, group commits into suspects such as asset imports, new shaders, or scene additions, then check out midpoints and measure FPS at each step. Revert one suspect at a time and re-measure to confirm the cause.

When should I use regression diagnosis instead of performance tuning?

Use regression diagnosis when the game previously ran well and got worse after changes, since a specific commit caused it. Use general performance tuning when the game has always been slow and there is no known-good baseline to compare against.

Why does my Godot game stutter only on the first effect or shot?

First-use stutters that disappear afterward typically indicate shader compilation stalls, common when a new shader or unique material is not pre-warmed. This pattern appears in shipped builds but often not in the editor.

Can I trust editor FPS numbers when diagnosing performance?

No. The editor runs @tool scripts, debug overlays, and a different render pipeline, so its FPS is misleading. Measure in a RunVerification probe or a built binary, and never profile with --headless since draw calls read zero without a renderer.

What if the game engine is not running when I need to measure?

Start the engine with the summer run command to restore the probe route. Alternatively, invoke the Summer binary directly with the --summer-verify flags to run a probe without the editor, then read the results from the output JSON file.