Commit c7f59d02 by Corentin Wallez Committed by Commit Bot

Suppress a Wintel/OpenGL failure on a new test.

BUG=angleproject:1388 Change-Id: I4d346ca3c6914e56055aa6492d9d013634a1b9ad Reviewed-on: https://chromium-review.googlesource.com/353693Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent e45e53bd
......@@ -466,7 +466,7 @@ TEST_P(GLSLTest, ScopedStructsOrderBug)
// (http://anglebug.com/1292)
// TODO(geofflang): Find out why this doesn't compile on AMD OpenGL drivers
// (http://anglebug.com/1291)
if (isOpenGL() && (IsOSX() || !IsNVIDIA()))
if (IsDesktopOpenGL() && (IsOSX() || !IsNVIDIA()))
{
std::cout << "Test disabled on this OpenGL configuration." << std::endl;
return;
......@@ -730,7 +730,7 @@ TEST_P(GLSLTest_ES3, InvariantVaryingOut)
{
// TODO: ESSL 3.00 -> GLSL 1.20 translation should add "invariant" in fragment shader
// for varyings which are invariant in vertex shader (http://anglebug.com/1293)
if (isOpenGL())
if (IsDesktopOpenGL())
{
std::cout << "Test disabled on OpenGL." << std::endl;
return;
......@@ -872,7 +872,7 @@ TEST_P(GLSLTest, InvariantAllBoth)
// TODO: ESSL 1.00 -> GLSL 1.20 translation should add "invariant" in fragment shader
// for varyings which are invariant in vertex shader individually,
// and remove invariant(all) from fragment shader (http://anglebug.com/1293)
if (isOpenGL())
if (IsDesktopOpenGL())
{
std::cout << "Test disabled on OpenGL." << std::endl;
return;
......@@ -979,7 +979,7 @@ TEST_P(GLSLTest_ES3, InvariantAllOut)
// TODO: ESSL 3.00 -> GLSL 1.20 translation should add "invariant" in fragment shader
// for varyings which are invariant in vertex shader,
// because of invariant(all) being used in vertex shader (http://anglebug.com/1293)
if (isOpenGL())
if (IsDesktopOpenGL())
{
std::cout << "Test disabled on OpenGL." << std::endl;
return;
......
......@@ -910,7 +910,7 @@ TEST_P(MipmapTestES3, MipmapsForTexture3D)
// the levelbase array, are left unchanged by this computation."
TEST_P(MipmapTestES3, GenerateMipmapBaseLevel)
{
if (IsAMD() && isOpenGL())
if (IsAMD() && IsDesktopOpenGL())
{
// Observed incorrect rendering on AMD, sampling level 2 returns black.
std::cout << "Test skipped on AMD OpenGL." << std::endl;
......@@ -949,7 +949,7 @@ TEST_P(MipmapTestES3, GenerateMipmapBaseLevel)
clearAndDrawQuad(m2DProgram, getWindowWidth() / 4, getWindowHeight() / 4);
EXPECT_PIXEL_COLOR_EQ(getWindowWidth() / 8, getWindowHeight() / 8, GLColor::red);
if (IsNVIDIA() && (isOpenGL() || isGLES()))
if (IsNVIDIA() && IsOpenGL())
{
// Observed incorrect rendering on NVIDIA, level zero seems to be incorrectly affected by
// GenerateMipmap.
......@@ -971,7 +971,7 @@ TEST_P(MipmapTestES3, GenerateMipmapBaseLevel)
// the levelbase array, are left unchanged by this computation."
TEST_P(MipmapTestES3, GenerateMipmapCubeBaseLevel)
{
if (IsAMD() && isOpenGL())
if (IsAMD() && IsDesktopOpenGL())
{
// Observed incorrect rendering on AMD, sampling level 2 returns black.
std::cout << "Test skipped on AMD OpenGL." << std::endl;
......@@ -1010,7 +1010,7 @@ TEST_P(MipmapTestES3, GenerateMipmapCubeBaseLevel)
clearAndDrawQuad(mCubeProgram, getWindowWidth() / 4, getWindowHeight() / 4);
EXPECT_PIXEL_COLOR_EQ(getWindowWidth() / 8, getWindowHeight() / 8, GLColor::red);
if (IsNVIDIA() && (isOpenGL() || isGLES()))
if (IsNVIDIA() && IsOpenGL())
{
// Observed incorrect rendering on NVIDIA, level zero seems to be incorrectly affected by
// GenerateMipmap.
......
......@@ -36,7 +36,7 @@ class ReadPixelsTest : public ANGLETest
TEST_P(ReadPixelsTest, OutOfBounds)
{
// TODO: re-enable once root cause of http://anglebug.com/1413 is fixed
if (IsAndroid() && IsAdreno() && isGLES())
if (IsAndroid() && IsAdreno() && IsOpenGLES())
{
std::cout << "Test skipped on Adreno OpenGLES on Android." << std::endl;
return;
......@@ -219,7 +219,7 @@ TEST_P(ReadPixelsPBOTest, SubDataPreservesContents)
TEST_P(ReadPixelsPBOTest, SubDataOffsetPreservesContents)
{
// TODO: re-enable once root cause of http://anglebug.com/1415 is fixed
if (IsAndroid() && IsAdreno() && isGLES())
if (IsAndroid() && IsAdreno() && IsOpenGLES())
{
std::cout << "Test skipped on Adreno OpenGLES on Android." << std::endl;
return;
......
......@@ -268,6 +268,12 @@ TEST_P(StateChangeTest, FramebufferIncompleteDepthStencilAttachment)
return;
}
if (IsWindows() && IsIntel() && IsOpenGL())
{
// TODO(jmadill): Investigate the failure (https://anglebug.com/1388)
std::cout << "Test disabled on Windows Intel OpenGL." << std::endl;
}
glBindFramebuffer(GL_FRAMEBUFFER, mFramebuffer);
glBindTexture(GL_TEXTURE_2D, mTextures[0]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 16, 16, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
......
......@@ -2215,19 +2215,19 @@ TEST_P(Texture2DTestES3, ImmutableTextureBaseLevelOutOfRange)
// Test that changing base level works when it affects the format of the texture.
TEST_P(Texture2DTestES3, TextureFormatChangesWithBaseLevel)
{
if (IsNVIDIA() && (isOpenGL() || isGLES()))
if (IsNVIDIA() && IsOpenGL())
{
// Observed rendering corruption on NVIDIA OpenGL.
std::cout << "Test skipped on NVIDIA OpenGL." << std::endl;
return;
}
if (IsIntel() && isOpenGL())
if (IsIntel() && IsDesktopOpenGL())
{
// Observed incorrect rendering on Intel OpenGL.
std::cout << "Test skipped on Intel OpenGL." << std::endl;
return;
}
if (IsAMD() && isOpenGL())
if (IsAMD() && IsDesktopOpenGL())
{
// Observed incorrect rendering on AMD OpenGL.
std::cout << "Test skipped on AMD OpenGL." << std::endl;
......@@ -3323,7 +3323,7 @@ TEST_P(Texture2DNorm16TestES3, TextureNorm16Test)
// GLES 3.0.4 section 3.8.3.
TEST_P(Texture2DTestES3, UnpackSkipImages2D)
{
if (IsIntel() && isOpenGL())
if (IsIntel() && IsDesktopOpenGL())
{
std::cout << "Test skipped on Intel OpenGL." << std::endl;
return;
......
......@@ -787,7 +787,7 @@ void VertexAttributeCachingTest::SetUp()
// to stress-test the caching code.
TEST_P(VertexAttributeCachingTest, BufferMulticaching)
{
if (IsAMD() && isOpenGL())
if (IsAMD() && IsDesktopOpenGL())
{
std::cout << "Test skipped on AMD OpenGL." << std::endl;
return;
......@@ -825,7 +825,7 @@ TEST_P(VertexAttributeCachingTest, BufferMulticaching)
// after enough iterations. It validates the unchanged attributes don't get deleted incidentally.
TEST_P(VertexAttributeCachingTest, BufferMulticachingWithOneUnchangedAttrib)
{
if (IsAMD() && isOpenGL())
if (IsAMD() && IsDesktopOpenGL())
{
std::cout << "Test skipped on AMD OpenGL." << std::endl;
return;
......
......@@ -704,6 +704,23 @@ bool IsD3DSM3()
return IsD3D9() || IsD3D11_FL93();
}
bool IsDesktopOpenGL()
{
return IsOpenGL() && !IsOpenGLES();
}
bool IsOpenGLES()
{
std::string rendererString(reinterpret_cast<const char *>(glGetString(GL_RENDERER)));
return (rendererString.find("OpenGL ES") != std::string::npos);
}
bool IsOpenGL()
{
std::string rendererString(reinterpret_cast<const char *>(glGetString(GL_RENDERER)));
return (rendererString.find("OpenGL") != std::string::npos);
}
bool IsAndroid()
{
#if defined(ANGLE_PLATFORM_ANDROID)
......@@ -731,14 +748,13 @@ bool IsOSX()
#endif
}
bool ANGLETest::isOpenGL() const
{
return getPlatformRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE;
}
bool ANGLETest::isGLES() const
bool IsWindows()
{
return getPlatformRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE;
#if defined(ANGLE_PLATFORM_WINDOWS)
return true;
#else
return false;
#endif
}
EGLint ANGLETest::getPlatformRenderer() const
......
......@@ -199,8 +199,6 @@ class ANGLETest : public ::testing::TestWithParam<angle::PlatformParameters>
int getWindowHeight() const;
bool isMultisampleEnabled() const;
bool isOpenGL() const;
bool isGLES() const;
EGLint getPlatformRenderer() const;
void ignoreD3D11SDKLayersWarnings();
......@@ -234,10 +232,13 @@ class ANGLETestEnvironment : public testing::Environment
std::unique_ptr<angle::Library> mGLESLibrary;
};
// Driver vendors
bool IsIntel();
bool IsAdreno();
bool IsAMD();
bool IsNVIDIA();
// Renderer back-ends
// Note: FL9_3 is explicitly *not* considered D3D11.
bool IsD3D11();
bool IsD3D11_FL93();
......@@ -245,9 +246,15 @@ bool IsD3D11_FL93();
bool IsD3D9();
// Is D3D9 or SM9_3 renderer.
bool IsD3DSM3();
bool IsDesktopOpenGL();
bool IsOpenGLES();
bool IsOpenGL();
// Operating systems
bool IsAndroid();
bool IsLinux();
bool IsOSX();
bool IsWindows();
// Negative tests may trigger expected errors/warnings in the ANGLE Platform.
void IgnoreANGLEPlatformMessages();
......
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