diff --git a/src/Magnum/GL/AbstractShaderProgram.cpp b/src/Magnum/GL/AbstractShaderProgram.cpp index f8d3a6090..fb9ad3b68 100644 --- a/src/Magnum/GL/AbstractShaderProgram.cpp +++ b/src/Magnum/GL/AbstractShaderProgram.cpp @@ -38,6 +38,7 @@ #include #endif #include +#include #include "Magnum/GL/Context.h" #include "Magnum/GL/Extensions.h" @@ -357,7 +358,11 @@ std::pair AbstractShaderProgram::validate() { glGetProgramInfoLog(_id, message.size(), nullptr, &message[0]); message.resize(Math::max(logLength, 1)-1); - return {success, std::move(message)}; + /* On some drivers (such as SwiftShader) the message contains a newline at + the end, on some (such as Mesa) it doesn't. Same as with link() or + compile() message trimming it doesn't make sense to add driver-specific + workarounds for this, so just trim it always. */ + return {success, Utility::String::trim(std::move(message))}; } AbstractShaderProgram& AbstractShaderProgram::draw(Mesh& mesh) {