Commit 1ea9aaad by Jamie Madill

Add suppressions for several Intel failures.

Also add a new test for UBOs to end2end_tests. BUG=540538 Change-Id: I6ffa6ba061a2c33811c65719deaa4302f1dbd704 Reviewed-on: https://chromium-review.googlesource.com/304521Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: 's avatarJamie Madill <jmadill@chromium.org>
parent b3fbd867
...@@ -172,6 +172,13 @@ TEST_P(BlendMinMaxTest, RGBA32f) ...@@ -172,6 +172,13 @@ TEST_P(BlendMinMaxTest, RGBA32f)
return; return;
} }
// TODO(jmadill): Figure out why this is broken on Intel
if (isIntel() && (GetParam() == ES2_D3D11() || GetParam() == ES2_D3D9()))
{
std::cout << "Test skipped on Intel OpenGL." << std::endl;
return;
}
runTest(GL_RGBA32F); runTest(GL_RGBA32F);
} }
...@@ -184,7 +191,7 @@ TEST_P(BlendMinMaxTest, RGBA16F) ...@@ -184,7 +191,7 @@ TEST_P(BlendMinMaxTest, RGBA16F)
} }
// TODO(jmadill): figure out why this fails // TODO(jmadill): figure out why this fails
if (isIntel() && GetParam() == ES2_D3D11()) if (isIntel() && (GetParam() == ES2_D3D11() || GetParam() == ES2_D3D9()))
{ {
std::cout << "Test skipped on Intel due to failures." << std::endl; std::cout << "Test skipped on Intel due to failures." << std::endl;
return; return;
......
...@@ -238,6 +238,13 @@ TEST_P(ClearTestES3, BadFBOSerialBug) ...@@ -238,6 +238,13 @@ TEST_P(ClearTestES3, BadFBOSerialBug)
// Test that SRGB framebuffers clear to the linearized clear color // Test that SRGB framebuffers clear to the linearized clear color
TEST_P(ClearTestES3, SRGBClear) TEST_P(ClearTestES3, SRGBClear)
{ {
// TODO(jmadill): figure out why this fails
if (isIntel() && GetParam() == ES3_OPENGL())
{
std::cout << "Test skipped on Intel due to failures." << std::endl;
return;
}
// First make a simple framebuffer, and clear it // First make a simple framebuffer, and clear it
glBindFramebuffer(GL_FRAMEBUFFER, mFBO); glBindFramebuffer(GL_FRAMEBUFFER, mFBO);
...@@ -267,6 +274,13 @@ TEST_P(ClearTestES3, MixedSRGBClear) ...@@ -267,6 +274,13 @@ TEST_P(ClearTestES3, MixedSRGBClear)
} }
#endif #endif
// TODO(jmadill): figure out why this fails
if (isIntel() && GetParam() == ES3_OPENGL())
{
std::cout << "Test skipped on Intel due to failures." << std::endl;
return;
}
glBindFramebuffer(GL_FRAMEBUFFER, mFBO); glBindFramebuffer(GL_FRAMEBUFFER, mFBO);
GLuint textures[2]; GLuint textures[2];
......
...@@ -42,6 +42,13 @@ class PointSpritesTest : public ANGLETest ...@@ -42,6 +42,13 @@ class PointSpritesTest : public ANGLETest
// https://www.khronos.org/registry/webgl/sdk/tests/conformance/glsl/variables/gl-pointcoord.html // https://www.khronos.org/registry/webgl/sdk/tests/conformance/glsl/variables/gl-pointcoord.html
TEST_P(PointSpritesTest, PointCoordAndPointSizeCompliance) TEST_P(PointSpritesTest, PointCoordAndPointSizeCompliance)
{ {
// TODO(jmadill): figure out why this fails
if (isIntel() && GetParam() == ES2_D3D9())
{
std::cout << "Test skipped on Intel due to failures." << std::endl;
return;
}
const std::string fs = SHADER_SOURCE const std::string fs = SHADER_SOURCE
( (
precision mediump float; precision mediump float;
......
...@@ -93,6 +93,7 @@ class SwizzleTest : public ANGLETest ...@@ -93,6 +93,7 @@ class SwizzleTest : public ANGLETest
mTextureUniformLocation = glGetUniformLocation(mProgram, "tex"); mTextureUniformLocation = glGetUniformLocation(mProgram, "tex");
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
ASSERT_GL_NO_ERROR();
} }
void TearDown() override void TearDown() override
...@@ -140,6 +141,13 @@ class SwizzleTest : public ANGLETest ...@@ -140,6 +141,13 @@ class SwizzleTest : public ANGLETest
void runTest2D() void runTest2D()
{ {
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
glUseProgram(mProgram); glUseProgram(mProgram);
glBindTexture(GL_TEXTURE_2D, mTexture); glBindTexture(GL_TEXTURE_2D, mTexture);
glUniform1i(mTextureUniformLocation, 0); glUniform1i(mTextureUniformLocation, 0);
...@@ -155,6 +163,8 @@ class SwizzleTest : public ANGLETest ...@@ -155,6 +163,8 @@ class SwizzleTest : public ANGLETest
GLubyte unswizzled[4]; GLubyte unswizzled[4];
glReadPixels(0, 0, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &unswizzled); glReadPixels(0, 0, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &unswizzled);
ASSERT_GL_NO_ERROR();
for (size_t i = 0; i < mPermutations.size(); i++) for (size_t i = 0; i < mPermutations.size(); i++)
{ {
const swizzlePermutation& permutation = mPermutations[i]; const swizzlePermutation& permutation = mPermutations[i];
...@@ -172,6 +182,8 @@ class SwizzleTest : public ANGLETest ...@@ -172,6 +182,8 @@ class SwizzleTest : public ANGLETest
getExpectedValue(permutation.swizzleGreen, unswizzled), getExpectedValue(permutation.swizzleGreen, unswizzled),
getExpectedValue(permutation.swizzleBlue, unswizzled), getExpectedValue(permutation.swizzleBlue, unswizzled),
getExpectedValue(permutation.swizzleAlpha, unswizzled)); getExpectedValue(permutation.swizzleAlpha, unswizzled));
ASSERT_GL_NO_ERROR();
} }
} }
......
...@@ -916,6 +916,13 @@ class TextureLimitsTest : public ANGLETest ...@@ -916,6 +916,13 @@ class TextureLimitsTest : public ANGLETest
// Test rendering with the maximum vertex texture units. // Test rendering with the maximum vertex texture units.
TEST_P(TextureLimitsTest, MaxVertexTextures) TEST_P(TextureLimitsTest, MaxVertexTextures)
{ {
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
compileProgramWithTextureCounts("tex", mMaxVertexTextures, mMaxVertexTextures, "tex", 0, 0); compileProgramWithTextureCounts("tex", mMaxVertexTextures, mMaxVertexTextures, "tex", 0, 0);
ASSERT_NE(0u, mProgram); ASSERT_NE(0u, mProgram);
ASSERT_GL_NO_ERROR(); ASSERT_GL_NO_ERROR();
...@@ -926,6 +933,13 @@ TEST_P(TextureLimitsTest, MaxVertexTextures) ...@@ -926,6 +933,13 @@ TEST_P(TextureLimitsTest, MaxVertexTextures)
// Test rendering with the maximum fragment texture units. // Test rendering with the maximum fragment texture units.
TEST_P(TextureLimitsTest, MaxFragmentTextures) TEST_P(TextureLimitsTest, MaxFragmentTextures)
{ {
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
compileProgramWithTextureCounts("tex", 0, 0, "tex", mMaxFragmentTextures, mMaxFragmentTextures); compileProgramWithTextureCounts("tex", 0, 0, "tex", mMaxFragmentTextures, mMaxFragmentTextures);
ASSERT_NE(0u, mProgram); ASSERT_NE(0u, mProgram);
ASSERT_GL_NO_ERROR(); ASSERT_GL_NO_ERROR();
...@@ -977,6 +991,13 @@ TEST_P(TextureLimitsTest, ExcessiveFragmentTextures) ...@@ -977,6 +991,13 @@ TEST_P(TextureLimitsTest, ExcessiveFragmentTextures)
// Test active vertex textures under the limit, but excessive textures specified. // Test active vertex textures under the limit, but excessive textures specified.
TEST_P(TextureLimitsTest, MaxActiveVertexTextures) TEST_P(TextureLimitsTest, MaxActiveVertexTextures)
{ {
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
compileProgramWithTextureCounts("tex", mMaxVertexTextures + 4, mMaxVertexTextures, "tex", 0, 0); compileProgramWithTextureCounts("tex", mMaxVertexTextures + 4, mMaxVertexTextures, "tex", 0, 0);
ASSERT_NE(0u, mProgram); ASSERT_NE(0u, mProgram);
ASSERT_GL_NO_ERROR(); ASSERT_GL_NO_ERROR();
...@@ -987,6 +1008,13 @@ TEST_P(TextureLimitsTest, MaxActiveVertexTextures) ...@@ -987,6 +1008,13 @@ TEST_P(TextureLimitsTest, MaxActiveVertexTextures)
// Test active fragment textures under the limit, but excessive textures specified. // Test active fragment textures under the limit, but excessive textures specified.
TEST_P(TextureLimitsTest, MaxActiveFragmentTextures) TEST_P(TextureLimitsTest, MaxActiveFragmentTextures)
{ {
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
compileProgramWithTextureCounts("tex", 0, 0, "tex", mMaxFragmentTextures + 4, compileProgramWithTextureCounts("tex", 0, 0, "tex", mMaxFragmentTextures + 4,
mMaxFragmentTextures); mMaxFragmentTextures);
ASSERT_NE(0u, mProgram); ASSERT_NE(0u, mProgram);
......
...@@ -126,6 +126,13 @@ TEST_P(TransformFeedbackTest, ZeroSizedViewport) ...@@ -126,6 +126,13 @@ TEST_P(TransformFeedbackTest, ZeroSizedViewport)
// Test that XFB can write back vertices to a buffer and that we can draw from this buffer afterward. // Test that XFB can write back vertices to a buffer and that we can draw from this buffer afterward.
TEST_P(TransformFeedbackTest, RecordAndDraw) TEST_P(TransformFeedbackTest, RecordAndDraw)
{ {
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
// Set the program's transform feedback varyings (just gl_Position) // Set the program's transform feedback varyings (just gl_Position)
const GLchar* transformFeedbackVaryings[] = const GLchar* transformFeedbackVaryings[] =
{ {
......
...@@ -74,11 +74,43 @@ class UniformBufferTest : public ANGLETest ...@@ -74,11 +74,43 @@ class UniformBufferTest : public ANGLETest
GLuint mUniformBuffer; GLuint mUniformBuffer;
}; };
// Basic UBO functionality.
TEST_P(UniformBufferTest, Simple)
{
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
glClear(GL_COLOR_BUFFER_BIT);
float floatData[4] = {0.5f, 0.75f, 0.25f, 1.0f};
glBindBuffer(GL_UNIFORM_BUFFER, mUniformBuffer);
glBufferData(GL_UNIFORM_BUFFER, sizeof(float) * 4, floatData, GL_STATIC_DRAW);
glBindBufferBase(GL_UNIFORM_BUFFER, 0, mUniformBuffer);
glUniformBlockBinding(mProgram, mUniformBufferIndex, 0);
drawQuad(mProgram, "position", 0.5f);
ASSERT_GL_NO_ERROR();
EXPECT_PIXEL_NEAR(0, 0, 128, 191, 64, 255, 1);
}
// Test that using a UBO with a non-zero offset and size actually works. // Test that using a UBO with a non-zero offset and size actually works.
// The first step of this test renders a color from a UBO with a zero offset. // The first step of this test renders a color from a UBO with a zero offset.
// The second step renders a color from a UBO with a non-zero offset. // The second step renders a color from a UBO with a non-zero offset.
TEST_P(UniformBufferTest, UniformBufferRange) TEST_P(UniformBufferTest, UniformBufferRange)
{ {
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
int px = getWindowWidth() / 2; int px = getWindowWidth() / 2;
int py = getWindowHeight() / 2; int py = getWindowHeight() / 2;
...@@ -150,6 +182,13 @@ TEST_P(UniformBufferTest, UniformBufferRange) ...@@ -150,6 +182,13 @@ TEST_P(UniformBufferTest, UniformBufferRange)
// Test uniform block bindings. // Test uniform block bindings.
TEST_P(UniformBufferTest, UniformBufferBindings) TEST_P(UniformBufferTest, UniformBufferBindings)
{ {
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
int px = getWindowWidth() / 2; int px = getWindowWidth() / 2;
int py = getWindowHeight() / 2; int py = getWindowHeight() / 2;
...@@ -206,6 +245,13 @@ TEST_P(UniformBufferTest, UnboundUniformBuffer) ...@@ -206,6 +245,13 @@ TEST_P(UniformBufferTest, UnboundUniformBuffer)
// https://code.google.com/p/angleproject/issues/detail?id=965 // https://code.google.com/p/angleproject/issues/detail?id=965
TEST_P(UniformBufferTest, UniformBufferManyUpdates) TEST_P(UniformBufferTest, UniformBufferManyUpdates)
{ {
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
int px = getWindowWidth() / 2; int px = getWindowWidth() / 2;
int py = getWindowHeight() / 2; int py = getWindowHeight() / 2;
...@@ -239,6 +285,13 @@ TEST_P(UniformBufferTest, UniformBufferManyUpdates) ...@@ -239,6 +285,13 @@ TEST_P(UniformBufferTest, UniformBufferManyUpdates)
// Use a large number of buffer ranges (compared to the actual size of the UBO) // Use a large number of buffer ranges (compared to the actual size of the UBO)
TEST_P(UniformBufferTest, ManyUniformBufferRange) TEST_P(UniformBufferTest, ManyUniformBufferRange)
{ {
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
int px = getWindowWidth() / 2; int px = getWindowWidth() / 2;
int py = getWindowHeight() / 2; int py = getWindowHeight() / 2;
......
...@@ -288,10 +288,10 @@ TEST_P(VertexAttributeTest, ShortNormalized) ...@@ -288,10 +288,10 @@ TEST_P(VertexAttributeTest, ShortNormalized)
// Validate that we can support GL_MAX_ATTRIBS attribs // Validate that we can support GL_MAX_ATTRIBS attribs
TEST_P(VertexAttributeTest, MaxAttribs) TEST_P(VertexAttributeTest, MaxAttribs)
{ {
// TODO(jmadill): Figure out why we get this error on AMD/OpenGL // TODO(jmadill): Figure out why we get this error on AMD/OpenGL and Intel.
if (isAMD() && (GetParam() == ES2_OPENGL() || GetParam() == ES3_OPENGL())) if ((isIntel() || isAMD()) && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE)
{ {
std::cout << "Test disabled on AMD/OpenGL" << std::endl; std::cout << "Test skipped on Intel and AMD." << std::endl;
return; return;
} }
...@@ -336,6 +336,13 @@ TEST_P(VertexAttributeTest, MaxAttribsPlusOne) ...@@ -336,6 +336,13 @@ TEST_P(VertexAttributeTest, MaxAttribsPlusOne)
// Simple test for when we use glBindAttribLocation // Simple test for when we use glBindAttribLocation
TEST_P(VertexAttributeTest, SimpleBindAttribLocation) TEST_P(VertexAttributeTest, SimpleBindAttribLocation)
{ {
// TODO(jmadill): Figure out why this fails on Intel.
if (isIntel() && GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE)
{
std::cout << "Test skipped on Intel." << std::endl;
return;
}
// Re-use the multi-attrib program, binding attribute 0 // Re-use the multi-attrib program, binding attribute 0
GLuint program = compileMultiAttribProgram(1); GLuint program = compileMultiAttribProgram(1);
glBindAttribLocation(program, 2, "position"); glBindAttribLocation(program, 2, "position");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment