diff --git a/src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp b/src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp index 6319f8d4a..055cde641 100644 --- a/src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp +++ b/src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp @@ -126,15 +126,27 @@ struct DistanceFieldVectorGLTest: GL::OpenGLTester { }; /* - Rendering tests done on: - - - Mesa Intel - - Mesa AMD - - Mesa llvmpipe - - SwiftShader ES2/ES3 - - ARM Mali (Huawei P10) ES2/ES3 - - WebGL 1 / 2 (on Mesa Intel) - - iPhone 6 w/ iOS 12.4 + Rendering tests done: + + [B] base + [O] draw offset + + Mesa Intel BO + ES2 x + ES3 BO + Mesa AMD B + Mesa llvmpipe B + SwiftShader ES2 Bx + ES3 B + ARM Mali (Huawei P10) ES2 Bx + ES3 BO + WebGL (on Mesa Intel) 1.0 Bx + 2.0 BO + NVidia + Intel Windows + AMD macOS + Intel macOS BO + iPhone 6 w/ iOS 12.4 ES3 B */ using namespace Math::Literals; @@ -206,9 +218,13 @@ constexpr struct { Float maxThreshold, meanThreshold; } RenderMultiData[] { {"bind with offset", "multidraw2D-distancefield.tga", "multidraw3D-distancefield.tga", - 1, 1, 16, 0.0f, 0.0f}, + 1, 1, 16, + /* Minor differences on ARM Mali */ + 1.67f, 0.012f}, {"draw offset", "multidraw2D-distancefield.tga", "multidraw3D-distancefield.tga", - 2, 3, 1, 0.0f, 0.0f}, + 2, 3, 1, + /* Minor differences on ARM Mali */ + 1.67f, 0.012f}, }; #endif diff --git a/src/Magnum/Shaders/Test/FlatGLTest.cpp b/src/Magnum/Shaders/Test/FlatGLTest.cpp index 39f2eeaa2..6d5d4f093 100644 --- a/src/Magnum/Shaders/Test/FlatGLTest.cpp +++ b/src/Magnum/Shaders/Test/FlatGLTest.cpp @@ -155,18 +155,30 @@ struct FlatGLTest: GL::OpenGLTester { }; /* - Rendering tests done on: - - - Mesa Intel - - Mesa AMD - - Mesa llvmpipe - - SwiftShader ES2/ES3 - - ARM Mali (Huawei P10) ES2/ES3 (except instancing) - - WebGL 1 / 2 (on Mesa Intel) (except instancing) - - NVidia Windows (except instancing) - - Intel Windows (except instancing) - - AMD on macOS (except instancing) - - iPhone 6 w/ iOS 12.4 (except instancing) + Rendering tests done: + + [B] base + [A] alpha mask + [D] object ID + [I] instancing + [O] draw offset + + Mesa Intel BADIO + ES2 x + ES3 BADIO + Mesa AMD BADI + Mesa llvmpipe BADI + SwiftShader ES2 BADIx + ES3 BADI + ARM Mali (Huawei P10) ES2 BAD x + ES3 BADIO + WebGL (on Mesa Intel) 1.0 BAD x + 2.0 BADIO + NVidia BAD + Intel Windows BAD + AMD macOS BAD + Intel macOS BADIO + iPhone 6 w/ iOS 12.4 ES3 BAD */ using namespace Math::Literals; @@ -274,12 +286,16 @@ constexpr struct { {}, 1, 16, 0.0f, 0.0f}, {"bind with offset, textured", "multidraw-textured2D.tga", "multidraw-textured3D.tga", FlatGL2D::Flag::TextureTransformation|FlatGL2D::Flag::Textured, - 1, 16, 0.0f, 0.0f}, + 1, 16, + /* Minor differences on ARM Mali */ + 2.34f, 0.01f}, {"draw offset, colored", "multidraw2D.tga", "multidraw3D.tga", {}, 3, 1, 0.0f, 0.0f}, {"draw offset, textured", "multidraw-textured2D.tga", "multidraw-textured3D.tga", FlatGL2D::Flag::TextureTransformation|FlatGL2D::Flag::Textured, - 3, 1, 0.0f, 0.0f} + 3, 1, + /* Minor differences on ARM Mali */ + 2.34f, 0.01f} }; #endif diff --git a/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp b/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp index 3aec29ec1..8e7d462c1 100644 --- a/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp +++ b/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp @@ -174,15 +174,29 @@ struct MeshVisualizerGLTest: GL::OpenGLTester { }; /* - Rendering tests done on: - - - Mesa Intel - - Mesa AMD - . Mesa llvmpipe - - SwiftShader ES2/ES3 - - ARM Mali (Huawei P10) ES2/ES3 (except TBN visualization) - - WebGL 1 / 2 (on Mesa Intel) (except primitive/vertex/object ID) - - iPhone 6 w/ iOS 12.4 (except primitive/vertex/object ID) + Rendering tests done: + + [W] wireframe + [D] primitive/vertex/object ID + [T] TBN visualization + [O] draw offset + + Mesa Intel WDTO + ES2 x + ES3 + Mesa AMD WDT + Mesa llvmpipe WDT + SwiftShader ES2 WDxx + ES3 WDx + ARM Mali (Huawei P10) ES2 W xx + ES3 W O (WDT big diffs, needs investigation) + WebGL (on Mesa Intel) 1.0 W xx + 2.0 W x + NVidia + Intel Windows + AMD macOS + Intel macOS WDTO + iPhone 6 w/ iOS 12.4 ES3 W x */ using namespace Math::Literals; @@ -554,25 +568,37 @@ constexpr struct { #ifndef MAGNUM_TARGET_WEBGL {"bind with offset, wireframe", "multidraw-wireframe2D.tga", MeshVisualizerGL2D::Flag::Wireframe, - 1, 1, 16, 0.0f, 0.0f}, + 1, 1, 16, + /* Minor differences on ARM Mali */ + 0.67f, 0.01f}, #endif {"bind with offset, w/o GS", "multidraw-wireframe-nogeo2D.tga", MeshVisualizerGL2D::Flag::Wireframe|MeshVisualizerGL2D::Flag::NoGeometryShader, - 1, 1, 16, 0.0f, 0.0f}, + 1, 1, 16, + /* Minor differences on ARM Mali */ + 0.67f, 0.02f}, {"bind with offset, vertex ID", "multidraw-vertexid2D.tga", MeshVisualizerGL2D::Flag::VertexId, - 1, 1, 16, 0.0f, 0.0f}, + 1, 1, 16, + /* Minor differences on ARM Mali */ + 0.67f, 0.01f}, #ifndef MAGNUM_TARGET_WEBGL {"draw offset, wireframe", "multidraw-wireframe2D.tga", MeshVisualizerGL2D::Flag::Wireframe, - 2, 3, 1, 0.0f, 0.0f}, + 2, 3, 1, + /* Minor differences on ARM Mali */ + 0.67f, 0.01f}, #endif {"draw offset, wireframe w/o GS", "multidraw-wireframe-nogeo2D.tga", MeshVisualizerGL2D::Flag::Wireframe|MeshVisualizerGL2D::Flag::NoGeometryShader, - 2, 3, 1, 0.0f, 0.0f}, + 2, 3, 1, + /* Minor differences on ARM Mali */ + 0.67f, 0.02f}, {"draw offset, vertex ID", "multidraw-vertexid2D.tga", MeshVisualizerGL2D::Flag::VertexId, - 2, 3, 1, 0.0f, 0.0f} + 2, 3, 1, + /* Minor differences on ARM Mali */ + 0.67f, 0.01f}, }; constexpr struct { @@ -593,10 +619,14 @@ constexpr struct { #endif {"bind with offset, wireframe w/o GS", "multidraw-wireframe-nogeo3D.tga", MeshVisualizerGL3D::Flag::Wireframe|MeshVisualizerGL3D::Flag::NoGeometryShader, - 1, 1, 16, 0.0f, 0.0f}, + 1, 1, 16, + /* Minor differences on ARM Mali */ + 6.0f, 0.04f}, {"bind with offset, vertex ID", "multidraw-vertexid3D.tga", MeshVisualizerGL3D::Flag::VertexId, - 1, 1, 16, 0.0f, 0.0f}, + 1, 1, 16, + /* Minor differences on ARM Mali */ + 0.67f, 0.01f}, #ifndef MAGNUM_TARGET_WEBGL {"draw offset, wireframe", "multidraw-wireframe3D.tga", MeshVisualizerGL3D::Flag::Wireframe, @@ -607,10 +637,14 @@ constexpr struct { #endif {"draw offset, wireframe w/o GS", "multidraw-wireframe-nogeo3D.tga", MeshVisualizerGL3D::Flag::Wireframe|MeshVisualizerGL3D::Flag::NoGeometryShader, - 2, 3, 1, 0.0f, 0.0f}, + 2, 3, 1, + /* Minor differences on ARM Mali */ + 6.0f, 0.04f}, {"draw offset, vertex ID", "multidraw-vertexid3D.tga", MeshVisualizerGL3D::Flag::VertexId, - 2, 3, 1, 0.0f, 0.0f} + 2, 3, 1, + /* Minor differences on ARM Mali */ + 0.67f, 0.01f}, }; #endif @@ -3084,8 +3118,8 @@ template void MeshVisualizerGLTest::renderTangent Float maxThreshold = 1.334f, meanThreshold = 0.018f; #ifdef MAGNUM_TARGET_GLES if(!GL::Context::current().isExtensionSupported()) { - maxThreshold = 39.0f; - meanThreshold = 1.207f; + maxThreshold = 58.0f; + meanThreshold = 1.547f; } #endif CORRADE_COMPARE_WITH( diff --git a/src/Magnum/Shaders/Test/PhongGLTest.cpp b/src/Magnum/Shaders/Test/PhongGLTest.cpp index 6c141d5fd..c82f7944f 100644 --- a/src/Magnum/Shaders/Test/PhongGLTest.cpp +++ b/src/Magnum/Shaders/Test/PhongGLTest.cpp @@ -162,18 +162,31 @@ struct PhongGLTest: GL::OpenGLTester { }; /* - Rendering tests done on: - - - Mesa Intel - - Mesa AMD - . Mesa llvmpipe - - SwiftShader ES2/ES3 - - ARM Mali (Huawei P10) ES2/ES3 (except instancing) - - WebGL 1 / 2 (on Mesa Intel) (except instancing) - - NVidia Windows (except instancing) - - Intel Windows (except instancing) - - AMD on macOS (except instancing) - - iPhone 6 w/ iOS 12.4 (except instancing) + Rendering tests done: + + [B] base + [A] alpha mask + [D] object ID + [L] point lights + [I] instancing + [O] draw offset + + Mesa Intel BADLIO + ES2 x + ES3 BADLIO + Mesa AMD BAD I + Mesa llvmpipe BAD I + SwiftShader ES2 BADLIx + ES3 BADLI + ARM Mali (Huawei P10) ES2 BAD x + ES3 BADLIO + WebGL (on Mesa Intel) 1.0 BAD x + 2.0 BADLIO + NVidia BAD + Intel Windows BAD + AMD macOS BAD + Intel macOS BADLIO + iPhone 6 w/ iOS 12.4 ES3 BAD */ constexpr struct { @@ -565,16 +578,24 @@ constexpr struct { } RenderMultiData[] { {"bind with offset, colored", "multidraw.tga", {}, - 2, 1, 1, 16, 0.0f, 0.0f}, + 2, 1, 1, 16, + /* Minor differences on ARM Mali */ + 3.34f, 0.01f}, {"bind with offset, textured", "multidraw-textured.tga", PhongGL::Flag::TextureTransformation|PhongGL::Flag::DiffuseTexture, - 2, 1, 1, 16, 0.0f, 0.0f}, + 2, 1, 1, 16, + /* Minor differences on ARM Mali */ + 4.67f, 0.02f}, {"draw offset, colored", "multidraw.tga", {}, - 4, 2, 3, 1, 0.0f, 0.0f}, + 4, 2, 3, 1, + /* Minor differences on ARM Mali */ + 3.34f, 0.01f}, {"draw offset, textured", "multidraw-textured.tga", PhongGL::Flag::TextureTransformation|PhongGL::Flag::DiffuseTexture, - 4, 2, 3, 1, 0.0f, 0.0f} + 4, 2, 3, 1, + /* Minor differences on ARM Mali */ + 4.67f, 0.02f}, }; #endif @@ -2022,7 +2043,7 @@ template void PhongGLTest::renderShininess() { #elif !(defined(MAGNUM_TARGET_GLES2) && defined(MAGNUM_TARGET_WEBGL)) /* SwiftShader has some minor rounding differences (max = 1.67). ARM Mali G71 has bigger rounding differences. */ - const Float maxThreshold = 12.0f, meanThreshold = 0.043f; + const Float maxThreshold = 221.0f, meanThreshold = 0.106f; #else /* WebGL 1 doesn't have 8bit renderbuffer storage, so it's way worse */ const Float maxThreshold = 16.667f, meanThreshold = 2.583f; diff --git a/src/Magnum/Shaders/Test/VectorGLTest.cpp b/src/Magnum/Shaders/Test/VectorGLTest.cpp index 0d492b8e1..04ba121a9 100644 --- a/src/Magnum/Shaders/Test/VectorGLTest.cpp +++ b/src/Magnum/Shaders/Test/VectorGLTest.cpp @@ -125,15 +125,27 @@ struct VectorGLTest: GL::OpenGLTester { }; /* - Rendering tests done on: - - - Mesa Intel - - Mesa AMD - - Mesa llvmpipe - - SwiftShader ES2/ES3 - - ARM Mali (Huawei P10) ES2/ES3 - - WebGL 1 / 2 (on Mesa Intel) - - iPhone 6 w/ iOS 12.4 + Rendering tests done: + + [B] base + [O] draw offset + + Mesa Intel BO + ES2 x + ES3 BO + Mesa AMD B + Mesa llvmpipe B + SwiftShader ES2 Bx + ES3 B + ARM Mali (Huawei P10) ES2 Bx + ES3 BO + WebGL (on Mesa Intel) 1.0 Bx + 2.0 BO + NVidia + Intel Windows + AMD macOS + Intel macOS BO + iPhone 6 w/ iOS 12.4 ES3 B */ using namespace Math::Literals; @@ -188,9 +200,13 @@ constexpr struct { Float maxThreshold, meanThreshold; } RenderMultiData[] { {"bind with offset", "multidraw2D.tga", "multidraw3D.tga", - 1, 16, 0.0f, 0.0f}, + 1, 16, + /* Minor differences on ARM Mali */ + 1.34f, 0.02f}, {"draw offset", "multidraw2D.tga", "multidraw3D.tga", - 3, 1, 0.0f, 0.0f}, + 3, 1, + /* Minor differences on ARM Mali */ + 1.34f, 0.02f}, }; #endif diff --git a/src/Magnum/Shaders/Test/VertexColorGLTest.cpp b/src/Magnum/Shaders/Test/VertexColorGLTest.cpp index e9011fe62..3179ed70f 100644 --- a/src/Magnum/Shaders/Test/VertexColorGLTest.cpp +++ b/src/Magnum/Shaders/Test/VertexColorGLTest.cpp @@ -112,14 +112,27 @@ struct VertexColorGLTest: GL::OpenGLTester { }; /* - Rendering tests done on: - - - Mesa Intel - - Mesa AMD - - SwiftShader ES2/ES3 - - ARM Mali (Huawei P10) ES2/ES3 - - WebGL 1 / 2 (on Mesa Intel) - - iPhone 6 w/ iOS 12.4 + Rendering tests done: + + [B] base + [O] draw offset + + Mesa Intel BO + ES2 x + ES3 BO + Mesa AMD B + Mesa llvmpipe B + SwiftShader ES2 Bx + ES3 B + ARM Mali (Huawei P10) ES2 Bx + ES3 BO + WebGL (on Mesa Intel) 1.0 Bx + 2.0 BO + NVidia + Intel Windows + AMD macOS + Intel macOS BO + iPhone 6 w/ iOS 12.4 ES3 B */ using namespace Math::Literals; @@ -148,9 +161,13 @@ constexpr struct { Float maxThreshold, meanThreshold; } RenderMultiData[] { {"bind with offset", "multidraw2D.tga", "multidraw3D.tga", - 1, 16, 0.0f, 0.0f}, + 1, 16, + /* Minor differences on ARM Mali */ + 0.34f, 0.01f}, {"draw offset", "multidraw2D.tga", "multidraw3D.tga", - 3, 1, 0.0f, 0.0f} + 3, 1, + /* Minor differences on ARM Mali */ + 0.34f, 0.01f}, }; #endif