diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_cache.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp index e678b4bb2..747a133fb 100644 --- a/src/video_core/renderer_opengl/gl_shader_cache.cpp +++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp | |||
| @@ -140,13 +140,16 @@ OGLAssemblyProgram CompileProgram(std::string_view code, GLenum target) { | |||
| 140 | glGenProgramsARB(1, &program.handle); | 140 | glGenProgramsARB(1, &program.handle); |
| 141 | glNamedProgramStringEXT(program.handle, target, GL_PROGRAM_FORMAT_ASCII_ARB, | 141 | glNamedProgramStringEXT(program.handle, target, GL_PROGRAM_FORMAT_ASCII_ARB, |
| 142 | static_cast<GLsizei>(code.size()), code.data()); | 142 | static_cast<GLsizei>(code.size()), code.data()); |
| 143 | if (!Settings::values.renderer_debug) { | 143 | if (Settings::values.renderer_debug) { |
| 144 | return program; | 144 | const auto err = reinterpret_cast<const char*>(glGetString(GL_PROGRAM_ERROR_STRING_NV)); |
| 145 | } | 145 | if (err && *err) { |
| 146 | const auto err = reinterpret_cast<const char*>(glGetString(GL_PROGRAM_ERROR_STRING_NV)); | 146 | if (std::strstr(err, "error")) { |
| 147 | if (err && *err) { | 147 | LOG_CRITICAL(Render_OpenGL, "\n{}", err); |
| 148 | LOG_CRITICAL(Render_OpenGL, "{}", err); | 148 | LOG_INFO(Render_OpenGL, "\n{}", code); |
| 149 | LOG_INFO(Render_OpenGL, "{}", code); | 149 | } else { |
| 150 | LOG_WARNING(Render_OpenGL, "\n{}", err); | ||
| 151 | } | ||
| 152 | } | ||
| 150 | } | 153 | } |
| 151 | return program; | 154 | return program; |
| 152 | } | 155 | } |