diff --git a/src/Magnum/Shaders/Test/LineGLTest.cpp b/src/Magnum/Shaders/Test/LineGLTest.cpp index 6df762a62..64d2abc0a 100644 --- a/src/Magnum/Shaders/Test/LineGLTest.cpp +++ b/src/Magnum/Shaders/Test/LineGLTest.cpp @@ -2854,8 +2854,8 @@ void LineGLTest::renderMulti2D() { /* Dropping the alpha channel, as it's always 1.0 */ Containers::arrayCast(_framebuffer.read(_framebuffer.viewport(), {PixelFormat::RGBA8Unorm}).pixels()), Utility::Path::join(SHADERS_TEST_DIR, "LineTestFiles/multidraw.tga"), - /* Minor differences on NVidia vs Mesa Intel */ - (DebugTools::CompareImageToFile{_manager, 0.67f, 0.00125f})); + /* Minor differences on NVidia vs Mesa Intel, also on ARM Mali */ + (DebugTools::CompareImageToFile{_manager, 0.67f, 0.011f})); /* Object ID -- no need to verify the whole image, just check that pixels on known places have expected values. SwiftShader insists that the read @@ -3085,8 +3085,8 @@ void LineGLTest::renderMulti3D() { /* Dropping the alpha channel, as it's always 1.0 */ Containers::arrayCast(_framebuffer.read(_framebuffer.viewport(), {PixelFormat::RGBA8Unorm}).pixels()), Utility::Path::join(SHADERS_TEST_DIR, "LineTestFiles/multidraw.tga"), - /* Minor differences on NVidia vs Mesa Intel */ - (DebugTools::CompareImageToFile{_manager, 0.67f, 0.00125f})); + /* Minor differences on NVidia vs Mesa Intel, also on ARM Mali */ + (DebugTools::CompareImageToFile{_manager, 0.67f, 0.011f})); /* Object ID -- no need to verify the whole image, just check that pixels on known places have expected values. SwiftShader insists that the read diff --git a/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp b/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp index 630e25733..b579a4d35 100644 --- a/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp +++ b/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp @@ -1054,7 +1054,8 @@ const struct { #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) {"wireframe", "instanced-wireframe2D.tga", MeshVisualizerGL2D::Flag::Wireframe, - 0.0f, 0.0f}, + /* Minor differences on ARM Mali */ + 0.34f, 0.00625f}, #endif {"wireframe w/o GS", "instanced-wireframe-nogeo2D.tga", MeshVisualizerGL2D::Flag::Wireframe|MeshVisualizerGL2D::Flag::NoGeometryShader, @@ -1158,15 +1159,18 @@ constexpr struct { {"bind with offset, instanced object ID", "multidraw-instancedobjectid2D.tga", MeshVisualizerGL2D::Flag::InstancedObjectId, 1, 1, true, 16, - 0.0f, 0.0f}, + /* Minor differences on ARM Mali */ + 0.67f, 0.108f}, {"bind with offset, textured object ID", "multidraw-objectidtexture2D.tga", MeshVisualizerGL2D::Flag::TextureTransformation|MeshVisualizerGL2D::Flag::ObjectIdTexture, 1, 1, true, 16, - 0.0f, 0.0f}, + /* Minor differences on ARM Mali */ + 0.67f, 0.073f}, {"bind with offset, textured array object ID", "multidraw-objectidtexture2D.tga", MeshVisualizerGL2D::Flag::TextureTransformation|MeshVisualizerGL2D::Flag::ObjectIdTexture|MeshVisualizerGL2D::Flag::TextureArrays, 1, 1, true, 16, - 0.0f, 0.0f}, + /* Minor differences on ARM Mali */ + 0.67f, 0.073f}, #ifndef MAGNUM_TARGET_WEBGL {"bind with offset, textured array object ID, shader storage", "multidraw-objectidtexture2D.tga", MeshVisualizerGL2D::Flag::ShaderStorageBuffers|MeshVisualizerGL2D::Flag::TextureTransformation|MeshVisualizerGL2D::Flag::ObjectIdTexture|MeshVisualizerGL2D::Flag::TextureArrays, @@ -1193,15 +1197,18 @@ constexpr struct { {"draw offset, instanced object ID", "multidraw-instancedobjectid2D.tga", MeshVisualizerGL2D::Flag::InstancedObjectId, 2, 3, false, 1, - 0.0f, 0.0f}, + /* Minor differences on ARM Mali */ + 0.67f, 0.108f}, {"draw offset, textured object ID", "multidraw-objectidtexture2D.tga", MeshVisualizerGL2D::Flag::TextureTransformation|MeshVisualizerGL2D::Flag::ObjectIdTexture, 2, 3, false, 1, - 0.0f, 0.0f}, + /* Minor differences on ARM Mali */ + 0.67f, 0.073f}, {"draw offset, textured array object ID", "multidraw-objectidtexture2D.tga", MeshVisualizerGL2D::Flag::TextureTransformation|MeshVisualizerGL2D::Flag::ObjectIdTexture|MeshVisualizerGL2D::Flag::TextureArrays, 2, 3, false, 1, - 0.0f, 0.0f}, + /* Minor differences on ARM Mali */ + 0.67f, 0.073f}, #ifndef MAGNUM_TARGET_WEBGL {"draw offset, textured array object ID, shader storage", "multidraw-objectidtexture2D.tga", MeshVisualizerGL2D::Flag::ShaderStorageBuffers|MeshVisualizerGL2D::Flag::TextureTransformation|MeshVisualizerGL2D::Flag::ObjectIdTexture|MeshVisualizerGL2D::Flag::TextureArrays, @@ -1268,7 +1275,7 @@ constexpr struct { MeshVisualizerGL3D::Flag::Wireframe|MeshVisualizerGL3D::Flag::NoGeometryShader, 1, 1, true, 16, /* Minor differences on ARM Mali */ - 6.0f, 0.04f}, + 6.0f, 0.042f}, {"bind with offset, vertex ID", "multidraw-vertexid3D.tga", MeshVisualizerGL3D::Flag::VertexId, 1, 1, true, 16, @@ -1277,7 +1284,8 @@ constexpr struct { {"bind with offset, instanced object ID", "multidraw-instancedobjectid3D.tga", MeshVisualizerGL3D::Flag::InstancedObjectId, 1, 1, true, 16, - 0.0f, 0.0f}, + /* Minor differences on ARM Mali */ + 0.34f, 0.007f}, {"bind with offset, textured object ID", "multidraw-objectidtexture3D.tga", MeshVisualizerGL3D::Flag::TextureTransformation|MeshVisualizerGL3D::Flag::ObjectIdTexture, 1, 1, true, 16, @@ -1306,7 +1314,7 @@ constexpr struct { MeshVisualizerGL3D::Flag::Wireframe|MeshVisualizerGL3D::Flag::NoGeometryShader, 2, 3, false, 1, /* Minor differences on ARM Mali */ - 6.0f, 0.04f}, + 6.0f, 0.042f}, {"draw offset, vertex ID", "multidraw-vertexid3D.tga", MeshVisualizerGL3D::Flag::VertexId, 2, 3, false, 1, @@ -1315,7 +1323,8 @@ constexpr struct { {"draw offset, instanced object ID", "multidraw-instancedobjectid3D.tga", MeshVisualizerGL3D::Flag::InstancedObjectId, 2, 3, false, 1, - 0.0f, 0.0f}, + /* Minor differences on ARM Mali */ + 0.34f, 0.007f}, {"draw offset, textured object ID", "multidraw-objectidtexture3D.tga", MeshVisualizerGL3D::Flag::TextureTransformation|MeshVisualizerGL3D::Flag::ObjectIdTexture, 2, 3, false, 1, @@ -5417,7 +5426,8 @@ template void MeshVisualizerGLTest::renderSkinnin /* Dropping the alpha channel, as it's always 1.0 */ Containers::arrayCast(_framebuffer.read(_framebuffer.viewport(), {PixelFormat::RGBA8Unorm}).pixels()), Utility::Path::join({_testDir, "MeshVisualizerTestFiles", data.expected}), - (DebugTools::CompareImageToFile{_manager})); + /* Minor differences on ARM Mali */ + (DebugTools::CompareImageToFile{_manager, 1.0f, 0.012f})); } template void MeshVisualizerGLTest::renderSkinningWireframe3D() { @@ -5581,7 +5591,8 @@ template void MeshVisualizerGLTest::renderSkinnin /* Dropping the alpha channel, as it's always 1.0 */ Containers::arrayCast(_framebuffer.read(_framebuffer.viewport(), {PixelFormat::RGBA8Unorm}).pixels()), Utility::Path::join({_testDir, "MeshVisualizerTestFiles", data.expected}), - (DebugTools::CompareImageToFile{_manager})); + /* Minor differences on ARM Mali */ + (DebugTools::CompareImageToFile{_manager, 1.0f, 0.012f})); } #endif @@ -6363,8 +6374,8 @@ template void MeshVisualizerGLTest::renderInstanc /* Dropping the alpha channel, as it's always 1.0 */ Containers::arrayCast(_framebuffer.read(_framebuffer.viewport(), {PixelFormat::RGBA8Unorm}).pixels()), Utility::Path::join(_testDir, "MeshVisualizerTestFiles/skinning-instanced.tga"), - /* SwiftShader has minor differences in the output */ - (DebugTools::CompareImageToFile{_manager, 0.68f, 0.005f})); + /* SwiftShader has minor differences in the output, ARM Mali too */ + (DebugTools::CompareImageToFile{_manager, 1.0f, 0.018f})); } template void MeshVisualizerGLTest::renderInstancedSkinningWireframe3D() { @@ -6523,8 +6534,8 @@ template void MeshVisualizerGLTest::renderInstanc /* Dropping the alpha channel, as it's always 1.0 */ Containers::arrayCast(_framebuffer.read(_framebuffer.viewport(), {PixelFormat::RGBA8Unorm}).pixels()), Utility::Path::join(_testDir, "MeshVisualizerTestFiles/skinning-instanced.tga"), - /* SwiftShader has minor differences in the output */ - (DebugTools::CompareImageToFile{_manager, 0.68f, 0.005f})); + /* SwiftShader has minor differences in the output, ARM Mali too */ + (DebugTools::CompareImageToFile{_manager, 1.0f, 0.018f})); } #endif diff --git a/src/Magnum/Shaders/Test/PhongGLTest.cpp b/src/Magnum/Shaders/Test/PhongGLTest.cpp index 146f703f2..5c5e04a49 100644 --- a/src/Magnum/Shaders/Test/PhongGLTest.cpp +++ b/src/Magnum/Shaders/Test/PhongGLTest.cpp @@ -1078,7 +1078,7 @@ constexpr struct { 2, 2, 1, 1, true, 16, /* Some difference at the UV edge (texture is wrapping in the 2D case while the 2D array has a black area around) */ - 50.34f, 0.131f}, + 50.34f, 0.141f}, #ifndef MAGNUM_TARGET_WEBGL {"bind with offset, texture array, shader storage", "multidraw-textured.tga", {}, @@ -1130,7 +1130,7 @@ constexpr struct { 4, 4, 2, 3, false, 1, /* Some difference at the UV edge (texture is wrapping in the 2D case while the 2D array has a black area around) */ - 50.34f, 0.131f}, + 50.34f, 0.141f}, #ifndef MAGNUM_TARGET_WEBGL {"draw offset, texture array, shader storage", "multidraw-textured.tga", {}, @@ -1138,7 +1138,7 @@ constexpr struct { 0, 2, 0, 0, false, 1, /* Some difference at the UV edge (texture is wrapping in the 2D case while the 2D array has a black area around) */ - 50.34f, 0.131f}, + 50.34f, 0.141f}, #endif {"multidraw, colored", "multidraw.tga", {}, @@ -1182,7 +1182,7 @@ constexpr struct { 4, 4, 2, 3, false, 1, /* Some difference at the UV edge (texture is wrapping in the 2D case while the 2D array has a black area around) */ - 50.34f, 0.131f}, + 50.34f, 0.141f}, #ifndef MAGNUM_TARGET_WEBGL {"multidraw, texture array, shader storage", "multidraw-textured.tga", {}, @@ -1190,7 +1190,7 @@ constexpr struct { 0, 4, 0, 0, false, 1, /* Some difference at the UV edge (texture is wrapping in the 2D case while the 2D array has a black area around) */ - 50.34f, 0.131f}, + 50.34f, 0.141f}, #endif /** @todo test normal and per-draw scaling when there's usable texture */ };