Browse Source

Don't do shader validation in GL tests on OSX.

Apple wants insane amount of state to return true (bound FB, bound VAO,
etc.). Ugh.
pull/132/head
Vladimír Vondruš 10 years ago
parent
commit
d5fa097143
  1. 14
      src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp
  2. 28
      src/Magnum/Shaders/Test/FlatGLTest.cpp
  3. 21
      src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp
  4. 56
      src/Magnum/Shaders/Test/PhongGLTest.cpp
  5. 14
      src/Magnum/Shaders/Test/VectorGLTest.cpp
  6. 14
      src/Magnum/Shaders/Test/VertexColorGLTest.cpp
  7. 21
      src/Magnum/Test/AbstractShaderProgramGLTest.cpp

14
src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp

@ -42,12 +42,22 @@ DistanceFieldVectorGLTest::DistanceFieldVectorGLTest() {
void DistanceFieldVectorGLTest::compile2D() { void DistanceFieldVectorGLTest::compile2D() {
Shaders::DistanceFieldVector2D shader; Shaders::DistanceFieldVector2D shader;
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void DistanceFieldVectorGLTest::compile3D() { void DistanceFieldVectorGLTest::compile3D() {
Shaders::DistanceFieldVector3D shader; Shaders::DistanceFieldVector3D shader;
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
}}} }}}

28
src/Magnum/Shaders/Test/FlatGLTest.cpp

@ -46,22 +46,42 @@ FlatGLTest::FlatGLTest() {
void FlatGLTest::compile2D() { void FlatGLTest::compile2D() {
Shaders::Flat2D shader; Shaders::Flat2D shader;
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void FlatGLTest::compile3D() { void FlatGLTest::compile3D() {
Shaders::Flat3D shader; Shaders::Flat3D shader;
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void FlatGLTest::compile2DTextured() { void FlatGLTest::compile2DTextured() {
Shaders::Flat2D shader(Shaders::Flat2D::Flag::Textured); Shaders::Flat2D shader(Shaders::Flat2D::Flag::Textured);
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void FlatGLTest::compile3DTextured() { void FlatGLTest::compile3DTextured() {
Shaders::Flat3D shader(Shaders::Flat3D::Flag::Textured); Shaders::Flat3D shader(Shaders::Flat3D::Flag::Textured);
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
}}} }}}

21
src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp

@ -50,7 +50,12 @@ MeshVisualizerGLTest::MeshVisualizerGLTest() {
void MeshVisualizerGLTest::compile() { void MeshVisualizerGLTest::compile() {
Shaders::MeshVisualizer shader; Shaders::MeshVisualizer shader;
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
@ -69,13 +74,23 @@ void MeshVisualizerGLTest::compileWireframeGeometryShader() {
#endif #endif
Shaders::MeshVisualizer shader(Shaders::MeshVisualizer::Flag::Wireframe); Shaders::MeshVisualizer shader(Shaders::MeshVisualizer::Flag::Wireframe);
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
#endif #endif
void MeshVisualizerGLTest::compileWireframeNoGeometryShader() { void MeshVisualizerGLTest::compileWireframeNoGeometryShader() {
Shaders::MeshVisualizer shader(Shaders::MeshVisualizer::Flag::Wireframe|Shaders::MeshVisualizer::Flag::NoGeometryShader); Shaders::MeshVisualizer shader(Shaders::MeshVisualizer::Flag::Wireframe|Shaders::MeshVisualizer::Flag::NoGeometryShader);
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
}}} }}}

56
src/Magnum/Shaders/Test/PhongGLTest.cpp

@ -54,42 +54,82 @@ PhongGLTest::PhongGLTest() {
void PhongGLTest::compile() { void PhongGLTest::compile() {
Shaders::Phong shader; Shaders::Phong shader;
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void PhongGLTest::compileAmbientTexture() { void PhongGLTest::compileAmbientTexture() {
Shaders::Phong shader(Shaders::Phong::Flag::AmbientTexture); Shaders::Phong shader(Shaders::Phong::Flag::AmbientTexture);
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void PhongGLTest::compileDiffuseTexture() { void PhongGLTest::compileDiffuseTexture() {
Shaders::Phong shader(Shaders::Phong::Flag::DiffuseTexture); Shaders::Phong shader(Shaders::Phong::Flag::DiffuseTexture);
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void PhongGLTest::compileSpecularTexture() { void PhongGLTest::compileSpecularTexture() {
Shaders::Phong shader(Shaders::Phong::Flag::SpecularTexture); Shaders::Phong shader(Shaders::Phong::Flag::SpecularTexture);
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void PhongGLTest::compileAmbientDiffuseTexture() { void PhongGLTest::compileAmbientDiffuseTexture() {
Shaders::Phong shader(Shaders::Phong::Flag::AmbientTexture|Shaders::Phong::Flag::DiffuseTexture); Shaders::Phong shader(Shaders::Phong::Flag::AmbientTexture|Shaders::Phong::Flag::DiffuseTexture);
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void PhongGLTest::compileAmbientSpecularTexture() { void PhongGLTest::compileAmbientSpecularTexture() {
Shaders::Phong shader(Shaders::Phong::Flag::AmbientTexture|Shaders::Phong::Flag::SpecularTexture); Shaders::Phong shader(Shaders::Phong::Flag::AmbientTexture|Shaders::Phong::Flag::SpecularTexture);
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void PhongGLTest::compileDiffuseSpecularTexture() { void PhongGLTest::compileDiffuseSpecularTexture() {
Shaders::Phong shader(Shaders::Phong::Flag::DiffuseTexture|Shaders::Phong::Flag::SpecularTexture); Shaders::Phong shader(Shaders::Phong::Flag::DiffuseTexture|Shaders::Phong::Flag::SpecularTexture);
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void PhongGLTest::compileAmbientDiffuseSpecularTexture() { void PhongGLTest::compileAmbientDiffuseSpecularTexture() {
Shaders::Phong shader(Shaders::Phong::Flag::AmbientTexture|Shaders::Phong::Flag::DiffuseTexture|Shaders::Phong::Flag::SpecularTexture); Shaders::Phong shader(Shaders::Phong::Flag::AmbientTexture|Shaders::Phong::Flag::DiffuseTexture|Shaders::Phong::Flag::SpecularTexture);
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
}}} }}}

14
src/Magnum/Shaders/Test/VectorGLTest.cpp

@ -42,12 +42,22 @@ VectorGLTest::VectorGLTest() {
void VectorGLTest::compile2D() { void VectorGLTest::compile2D() {
Shaders::Vector2D shader; Shaders::Vector2D shader;
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void VectorGLTest::compile3D() { void VectorGLTest::compile3D() {
Shaders::Vector3D shader; Shaders::Vector3D shader;
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
}}} }}}

14
src/Magnum/Shaders/Test/VertexColorGLTest.cpp

@ -42,12 +42,22 @@ VertexColorGLTest::VertexColorGLTest() {
void VertexColorGLTest::compile2D() { void VertexColorGLTest::compile2D() {
Shaders::VertexColor2D shader; Shaders::VertexColor2D shader;
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
void VertexColorGLTest::compile3D() { void VertexColorGLTest::compile3D() {
Shaders::VertexColor3D shader; Shaders::VertexColor3D shader;
CORRADE_VERIFY(shader.validate().first); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(shader.validate().first);
}
} }
}}} }}}

21
src/Magnum/Test/AbstractShaderProgramGLTest.cpp

@ -197,7 +197,12 @@ void AbstractShaderProgramGLTest::create() {
MAGNUM_VERIFY_NO_ERROR(); MAGNUM_VERIFY_NO_ERROR();
CORRADE_VERIFY(linked); CORRADE_VERIFY(linked);
CORRADE_VERIFY(valid); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(valid);
}
const Int matrixUniform = program.uniformLocation("matrix"); const Int matrixUniform = program.uniformLocation("matrix");
const Int multiplierUniform = program.uniformLocation("multiplier"); const Int multiplierUniform = program.uniformLocation("multiplier");
@ -252,7 +257,12 @@ void AbstractShaderProgramGLTest::createMultipleOutputs() {
MAGNUM_VERIFY_NO_ERROR(); MAGNUM_VERIFY_NO_ERROR();
CORRADE_VERIFY(linked); CORRADE_VERIFY(linked);
CORRADE_VERIFY(valid); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(valid);
}
#elif !defined(MAGNUM_TARGET_GLES2) #elif !defined(MAGNUM_TARGET_GLES2)
CORRADE_SKIP("Only explicit location specification supported in ES 3.0."); CORRADE_SKIP("Only explicit location specification supported in ES 3.0.");
#else #else
@ -301,7 +311,12 @@ void AbstractShaderProgramGLTest::createMultipleOutputsIndexed() {
MAGNUM_VERIFY_NO_ERROR(); MAGNUM_VERIFY_NO_ERROR();
CORRADE_VERIFY(linked); CORRADE_VERIFY(linked);
CORRADE_VERIFY(valid); {
#ifdef CORRADE_TARGET_APPLE
CORRADE_EXPECT_FAIL("OSX drivers need insane amount of state to validate properly.");
#endif
CORRADE_VERIFY(valid);
}
} }
#endif #endif

Loading…
Cancel
Save