From 230e6910a6be114f20a50505217449e06a6a0e89 Mon Sep 17 00:00:00 2001 From: Stanley Dimant Date: Tue, 10 Sep 2024 13:30:59 +0200 Subject: [PATCH] reduce warning spam --- MareSynchronos/Services/PlayerPerformanceService.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/MareSynchronos/Services/PlayerPerformanceService.cs b/MareSynchronos/Services/PlayerPerformanceService.cs index dd85eb4..76e75b9 100644 --- a/MareSynchronos/Services/PlayerPerformanceService.cs +++ b/MareSynchronos/Services/PlayerPerformanceService.cs @@ -17,6 +17,7 @@ public class PlayerPerformanceService private readonly ILogger _logger; private readonly MareMediator _mediator; private readonly PlayerPerformanceConfigService _playerPerformanceConfigService; + private Dictionary _warnedForPlayers = new(StringComparer.Ordinal); public PlayerPerformanceService(ILogger logger, MareMediator mediator, PlayerPerformanceConfigService playerPerformanceConfigService, FileCacheManager fileCacheManager, @@ -41,6 +42,7 @@ public class PlayerPerformanceService .Exists(uid => string.Equals(uid, pairHandler.Pair.UserData.Alias, StringComparison.Ordinal) || string.Equals(uid, pairHandler.Pair.UserData.UID, StringComparison.Ordinal))) return true; + var vramUsage = pairHandler.Pair.LastAppliedApproximateVRAMBytes; var triUsage = pairHandler.Pair.LastAppliedDataTris; @@ -51,6 +53,14 @@ public class PlayerPerformanceService bool exceedsVram = CheckForThreshold(config.WarnOnExceedingThresholds, config.VRAMSizeWarningThresholdMiB * 1024 * 1024, vramUsage, config.WarnOnPreferredPermissionsExceedingThresholds, isPrefPerm); + if (_warnedForPlayers.TryGetValue(pairHandler.Pair.UserData.UID, out bool hadWarning) && hadWarning) + { + _warnedForPlayers[pairHandler.Pair.UserData.UID] = exceedsTris || exceedsVram; + return true; + } + + _warnedForPlayers[pairHandler.Pair.UserData.UID] = exceedsTris || exceedsVram; + if (exceedsVram) { _mediator.Publish(new EventMessage(new Event(pairHandler.Pair.PlayerName, pairHandler.Pair.UserData, nameof(PlayerPerformanceService), EventSeverity.Warning,