From f1943fd0b65b74f164eec1f47a586a463fd4352a Mon Sep 17 00:00:00 2001 From: riperiperi Date: Thu, 9 Feb 2023 02:50:18 +0000 Subject: [PATCH] Log shader compile errors with Warning level (#2617) * Log shader compile errors with Warning level These are infrequent enough that I think it's worth dumping any errors into the log. They also keep causing graphical glitches, and the only indication that anything went wrong is a debug log that is never enabled. * Add maximum length for shader log --- Ryujinx.Graphics.OpenGL/Program.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Ryujinx.Graphics.OpenGL/Program.cs b/Ryujinx.Graphics.OpenGL/Program.cs index 0cc722e6c..a6009108a 100644 --- a/Ryujinx.Graphics.OpenGL/Program.cs +++ b/Ryujinx.Graphics.OpenGL/Program.cs @@ -10,6 +10,8 @@ namespace Ryujinx.Graphics.OpenGL { class Program : IProgram { + private const int MaxShaderLogLength = 2048; + public int Handle { get; private set; } public bool IsLinked @@ -115,9 +117,16 @@ namespace Ryujinx.Graphics.OpenGL if (status == 0) { - // Use GL.GetProgramInfoLog(Handle), it may be too long to print on the log. _status = ProgramLinkStatus.Failure; - Logger.Debug?.Print(LogClass.Gpu, "Shader linking failed."); + + string log = GL.GetProgramInfoLog(Handle); + + if (log.Length > MaxShaderLogLength) + { + log = log.Substring(0, MaxShaderLogLength) + "..."; + } + + Logger.Warning?.Print(LogClass.Gpu, $"Shader linking failed: \n{log}"); } else {