From e35a52e86f27ef1ab4ab72718996e4197b855616 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 31 Dec 2022 17:56:49 +0100 Subject: [PATCH] GL: trim whitespace from AbstractShaderProgram::validate(). The test added in previous commit passed on Mesa, but not on SwiftShader. --- src/Magnum/GL/AbstractShaderProgram.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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) {