Displays performance information in a Godot project during gameplay. Can be used when running from the editor and in exported projects. Inspired by id Tech 6/7's performance overlay.
This repository only contains the add-on. See godot-extended-libraries/godot-debug-menu-demo for the demonstration project.
application/config/version
custom project setting) and graphics settings.External tools such as RTSS or MangoHud provide some insight on how well a project actually runs. However, they lack information on engine-specific things such as per-frame CPU/GPU time and graphics settings.
To determine whether values for Total, CPU and GPU displayed in the debug menu are good or bad, you need to set yourself a target frametime first. Unlike FPS (frames per second), lower frametimes are better.
The frametime is determined by the formula 1000.0 / FPS
where FPS
is your
target FPS. For example, if you aim to have at least 60 FPS at all times on your
current hardware, you should ensure that Total never exceeds 16.66 mspf
(milliseconds per frame). At 30 FPS, this target frametime is 33.33 mspf, and at
120 FPS, it's 8.33 mspf.
When looking at Avg
(average) metrics, it's recommended to keep at least 25%
of headroom to ensure that more demanding situations in the game can match the
target frametime. This also allows the hardware to cool better and have better
battery life if using a framerate cap. This means that if you target 60 FPS,
your average FPS should be at least 75, which is a frametime of 13.33 mspf or
lower.
If the FPS dips below the target due to the frame time being too high, this could be due to a bottleneck in one of 3 areas:
The metrics marked as Worst
are also important, as these denote the time taken
to render the slowest frame in the currently displayed graph (the graph shows
the last 150 rendered frames). You want to make sure this metric stays below
your target frametime as much as possible.
You can find detailed guidance on optimizing a project's performance in the documentation.
Manual installation lets you use pre-release versions of this add-on by
following its master
branch.
git clone https://github.com/godot-extended-libraries/godot-debug-menu.git
Alternatively, you can download a ZIP archive if you do not have Git installed.
addons/
folder to your project folder.Press F3 while the project is running. This cycles between no debug menu, a compact debug menu (only FPS and frametime visible) and a full debug menu.
The key to cycle the debug menu is set to F3 by default. This can be
changed by setting the cycle_debug_menu
action in the Input Map to a different
key. This action is not created by the plugin in the editor, so you will have to
create it in the Project Settings if you wish to override the key.
To toggle the debug menu from code, use:
DebugMenu.style = DebugMenu.Style.HIDDEN
to hide the debug menu.DebugMenu.style = DebugMenu.Style.VISIBLE_COMPACT
to show the compact debug menu.DebugMenu.style = DebugMenu.Style.VISIBLE_DETAILED
to show the detailed debug menu.Copyright © 2023-present Hugo Locurcio and contributors
Unless otherwise specified, files in this repository are licensed under the MIT license. See LICENSE.md for more information.