Просмотр исходного кода

gl_shader_cache: Improve GLASM error print logic

ReinUsesLisp 5 лет назад
Родитель
Сommit
df406246d9
1 измененных файлов с 10 добавлено и 7 удалено
  1. 10 7
      src/video_core/renderer_opengl/gl_shader_cache.cpp

+ 10 - 7
src/video_core/renderer_opengl/gl_shader_cache.cpp

@@ -140,13 +140,16 @@ OGLAssemblyProgram CompileProgram(std::string_view code, GLenum target) {
     glGenProgramsARB(1, &program.handle);
     glNamedProgramStringEXT(program.handle, target, GL_PROGRAM_FORMAT_ASCII_ARB,
                             static_cast<GLsizei>(code.size()), code.data());
-    if (!Settings::values.renderer_debug) {
-        return program;
-    }
-    const auto err = reinterpret_cast<const char*>(glGetString(GL_PROGRAM_ERROR_STRING_NV));
-    if (err && *err) {
-        LOG_CRITICAL(Render_OpenGL, "{}", err);
-        LOG_INFO(Render_OpenGL, "{}", code);
+    if (Settings::values.renderer_debug) {
+        const auto err = reinterpret_cast<const char*>(glGetString(GL_PROGRAM_ERROR_STRING_NV));
+        if (err && *err) {
+            if (std::strstr(err, "error")) {
+                LOG_CRITICAL(Render_OpenGL, "\n{}", err);
+                LOG_INFO(Render_OpenGL, "\n{}", code);
+            } else {
+                LOG_WARNING(Render_OpenGL, "\n{}", err);
+            }
+        }
     }
     return program;
 }