diff --git a/CompatBot/EventHandlers/LogParsing/LogParser.LogSections.cs b/CompatBot/EventHandlers/LogParsing/LogParser.LogSections.cs index f7db1e9a..3da48688 100644 --- a/CompatBot/EventHandlers/LogParsing/LogParser.LogSections.cs +++ b/CompatBot/EventHandlers/LogParsing/LogParser.LogSections.cs @@ -205,6 +205,7 @@ internal partial class LogParser ["RSX: Unsupported device"] = UnsupportedDevice(), ["RSX: Your GPU does not support"] = UnsupportedDeviceFeatures(), ["RSX: GPU/driver lacks support"] = UnsupportedDriverFeatures(), + ["RSX: Descriptor pool creation failed"] = RsxFragmentationError(), ["RSX: Swapchain:"] = SwapchainMode(), ["RSX: ** Using"] = VkExtensions(), ["RSX: [CAPS] Using"] = GlExtensions(), diff --git a/CompatBot/EventHandlers/LogParsing/LogParser.RegexPatterns.cs b/CompatBot/EventHandlers/LogParsing/LogParser.RegexPatterns.cs index c0cf8531..495a2226 100644 --- a/CompatBot/EventHandlers/LogParsing/LogParser.RegexPatterns.cs +++ b/CompatBot/EventHandlers/LogParsing/LogParser.RegexPatterns.cs @@ -287,10 +287,12 @@ internal partial class LogParser private static partial Regex ShaderLinkageFailed(); [GeneratedRegex(@"RSX: Unsupported device: (?.+)\..+?$", DefaultOptions)] private static partial Regex UnsupportedDevice(); - [GeneratedRegex(@"RSX: Your GPU does not support (?.+)\..+?$", DefaultOptions)] + [GeneratedRegex(@"RSX: Your GPU does not support (?.+)( in shaders)?\..+?$", DefaultOptions)] private static partial Regex UnsupportedDeviceFeatures(); [GeneratedRegex(@"RSX: GPU/driver lacks support for (?.+)\..+?$", DefaultOptions)] private static partial Regex UnsupportedDriverFeatures(); + [GeneratedRegex(@"Descriptor pool creation failed with (?fragmentation error).+?$", DefaultOptions)] + private static partial Regex RsxFragmentationError(); [GeneratedRegex(@"RSX: Swapchain: present mode (?\d+?) in use.+?$", DefaultOptions)] private static partial Regex SwapchainMode(); [GeneratedRegex(@"RSX: \*\* Using (?\w+?)\r?$", DefaultOptions)] diff --git a/CompatBot/Utils/Extensions/DiscordClientExtensions.cs b/CompatBot/Utils/Extensions/DiscordClientExtensions.cs index e8d5720a..936daee1 100644 --- a/CompatBot/Utils/Extensions/DiscordClientExtensions.cs +++ b/CompatBot/Utils/Extensions/DiscordClientExtensions.cs @@ -114,7 +114,7 @@ public static class DiscordClientExtensions return null; var embedBuilder = await MakeReportTemplateAsync(client, infraction, filterId, message, severity, actionList).ConfigureAwait(false); - var reportText = string.IsNullOrEmpty(trigger) ? "" : $"Triggered by: `{matchedOn ?? trigger}`{Environment.NewLine}"; + var reportText = string.IsNullOrEmpty(trigger) ? "" : $"Triggered by: `{matchedOn?.Trim(40) ?? trigger}`{Environment.NewLine}"; if (!string.IsNullOrEmpty(context)) reportText += $"Triggered in: ```{context.Sanitize()}```{Environment.NewLine}"; embedBuilder.Description = reportText + embedBuilder.Description; diff --git a/CompatBot/Utils/ResultFormatters/LogParserResultFormatter.GeneralNotesSection.cs b/CompatBot/Utils/ResultFormatters/LogParserResultFormatter.GeneralNotesSection.cs index f0fa3506..5838d5bc 100644 --- a/CompatBot/Utils/ResultFormatters/LogParserResultFormatter.GeneralNotesSection.cs +++ b/CompatBot/Utils/ResultFormatters/LogParserResultFormatter.GeneralNotesSection.cs @@ -356,7 +356,7 @@ internal static partial class LogParserResult } items["supported_gpu"] = supportedGpu ? EnabledMark : DisabledMark; - if (!string.IsNullOrEmpty(items["shader_compile_error"])) + if (items["shader_compile_error"] is {Length: >0}) { if (unsupportedGpuDriver) notes.Add("❌ Shader compilation error on unsupported GPU driver"); @@ -365,6 +365,10 @@ internal static partial class LogParserResult else notes.Add("❌ Shader compilation error on unsupported GPU"); } + if (items["rsx_fragmentation_error"] is { Length: > 0 }) + { + notes.Add("⚠️ Descriptor pool fragmentation error. May indicate insufficient VRAM size or driver issues."); + } if (!string.IsNullOrEmpty(items["enqueue_buffer_error"]) && state.ValueHitStats.TryGetValue("enqueue_buffer_error", out var enqueueBufferErrorCount)