Skip to content

Commit

Permalink
feat(PerformanceMonitor): make tracy profiler integration configurable
Browse files Browse the repository at this point in the history
  • Loading branch information
BenjaminAmos committed Jul 14, 2024
1 parent 81dd77a commit 6fd43e8
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,12 @@ public class SystemConfig extends AutoConfig {
name("${engine:menu#settings-monitoring-enabled}")
);

public final Setting<Boolean> tracyProfilerEnabled = setting(
type(Boolean.class),
defaultValue(false),
name("${engine:menu#settings-tracy-profiler-enabled}")
);

public final Setting<Boolean> writeSaveGamesEnabled = setting(
type(Boolean.class),
defaultValue(true),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
*/
public final class PerformanceMonitor {
private static PerformanceMonitorInternal instance;
private static boolean tracyEnabled;

static {
instance = new NullPerformanceMonitor();
Expand Down Expand Up @@ -127,6 +128,10 @@ public static TObjectDoubleMap<String> getAllocationMean() {
return instance.getAllocationMean();
}

public static void setTracyEnabled(boolean enabled) {
tracyEnabled = enabled;
}

/**
* Enables or disables the Performance Monitoring system.
* <br><br>
Expand All @@ -139,7 +144,7 @@ public static void setEnabled(boolean enabled) {
if (instance != null) {
instance.shutdown();
}
instance = new PerformanceMonitorImpl();
instance = new PerformanceMonitorImpl(tracyEnabled);
} else if (!enabled && !(instance instanceof NullPerformanceMonitor)) {
if (instance != null) {
instance.shutdown();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public class PerformanceMonitorImpl implements PerformanceMonitorInternal {
private final Thread mainThread;
private final EngineTime timer;

public PerformanceMonitorImpl() {
public PerformanceMonitorImpl(boolean enableTracy) {
activityStack = Queues.newArrayDeque();
executionData = Lists.newLinkedList();
allocationData = Lists.newLinkedList();
Expand All @@ -81,7 +81,7 @@ public PerformanceMonitorImpl() {
timer = (EngineTime) CoreRegistry.get(Time.class);
mainThread = Thread.currentThread();

if (!tracyEnabled) {
if (enableTracy && !tracyEnabled) {
Tracy.startupProfiler();
tracyEnabled = true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,7 @@ protected boolean isEscapeToCloseAllowed() {
*/
public void toggleMetricsMode() {
MetricsMode mode = debugMetricsSystem.toggle();
PerformanceMonitor.setTracyEnabled(systemConfig.tracyProfilerEnabled.get());
PerformanceMonitor.setEnabled(mode.isPerformanceManagerMode());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,7 @@
"settings-debug-mode": "settings-debug-mode",
"settings-language": "settings-language",
"settings-monitoring-enabled": "settings-monitoring-enabled",
"settings-tracy-profiler-enabled": "settings-tracy-profiler-enabled",
"settings-saves-enabled": "settings-saves-enabled",
"settings-seconds-between-saves": "settings-seconds-between-saves",
"settings-title": "settings-title",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,7 @@
"settings-debug-mode": "Debug mode",
"settings-language": "Language",
"settings-monitoring-enabled": "Monitoring",
"settings-tracy-profiler-enabled": "Tracy Profiler",
"settings-saves-enabled": "Game saves",
"settings-seconds-between-saves": "Seconds between saves",
"settings-title": "Settings",
Expand Down

0 comments on commit 6fd43e8

Please sign in to comment.