Ver Fonte

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
riperiperi há 3 anos atrás
pai
commit
f1943fd0b6
1 ficheiros alterados com 11 adições e 2 exclusões
  1. 11 2
      Ryujinx.Graphics.OpenGL/Program.cs

+ 11 - 2
Ryujinx.Graphics.OpenGL/Program.cs

@@ -10,6 +10,8 @@ namespace Ryujinx.Graphics.OpenGL
 {
 {
     class Program : IProgram
     class Program : IProgram
     {
     {
+        private const int MaxShaderLogLength = 2048;
+
         public int Handle { get; private set; }
         public int Handle { get; private set; }
 
 
         public bool IsLinked
         public bool IsLinked
@@ -115,9 +117,16 @@ namespace Ryujinx.Graphics.OpenGL
 
 
             if (status == 0)
             if (status == 0)
             {
             {
-                // Use GL.GetProgramInfoLog(Handle), it may be too long to print on the log.
                 _status = ProgramLinkStatus.Failure;
                 _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
             else
             {
             {