Commit 9078c6a7 by Jonah Ryan-Davis Committed by Commit Bot

Update necessary angle_end2end_tests to check the Android device name

Some tests fail only on specific devices, so the tests should be updated to reflect that, and allow more tests to run on more devices. Bug: angleproject:3275 Change-Id: I8e3183c1769c0bb8ed6d2605afcaf399cb1d9ed0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1534463Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
parent eae464dd
......@@ -399,7 +399,7 @@ TEST_P(EGLSurfaceTest, SwapInterval)
// Second eglSwapBuffers causes an EGL_BAD_SURFACE on Nvidia shield tv.
// http://anglebug.com/3144.
ANGLE_SKIP_TEST_IF(IsAndroid());
ANGLE_SKIP_TEST_IF(IsNVIDIAShield());
}
timer->stop();
ASSERT_EGL_SUCCESS();
......
......@@ -409,9 +409,9 @@ void AttributeLayoutTest::GetTestCases(void)
if (es3)
{
mTestCases.push_back({SInt(M0, 0, 40, mCoord), UInt(M0, 16, 40, mColor)});
if (!IsAndroid())
mTestCases.push_back(
{NormSInt(M0, 0, 40, mCoord), NormUInt(M0, 16, 40, mColor)}); // anglebug.com/2641
// Fails on Nexus devices (anglebug.com/2641)
if (!IsNexus5X() && !IsNexus6P())
mTestCases.push_back({NormSInt(M0, 0, 40, mCoord), NormUInt(M0, 16, 40, mColor)});
}
}
......
......@@ -646,9 +646,8 @@ void main() {
// Draw an array of points with the first vertex offset at 5 using gl_VertexID
TEST_P(GLSLTest_ES3, GLVertexIDOffsetFiveDrawArray)
{
// TODO(jonahr): Remove test suppression once Nexus 5X is removed from bots
// (http://anglebug.com/3264)
ANGLE_SKIP_TEST_IF(IsAndroid() && IsOpenGLES());
// Bug in Nexus drivers, offset does not work. (anglebug.com/3264)
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsOpenGLES());
constexpr int kStartIndex = 5;
constexpr int kArrayLength = 5;
......@@ -3281,8 +3280,8 @@ TEST_P(GLSLTest_ES3, VaryingStructUsedInFragmentShader)
// This test covers passing a struct containing a sampler as a function argument.
TEST_P(GLSLTest, StructsWithSamplersAsFunctionArg)
{
// Shader failed to compile on Android. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
// Shader failed to compile on Nexus devices. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
const char kFragmentShader[] = R"(precision mediump float;
struct S { sampler2D samplerMember; };
......@@ -3373,8 +3372,8 @@ void main()
// This test covers passing an array of structs containing samplers as a function argument.
TEST_P(GLSLTest, ArrayOfStructsWithSamplersAsFunctionArg)
{
// Shader failed to compile on Android. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
// Shader failed to compile on Nexus devices. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
constexpr char kFS[] =
"precision mediump float;\n"
......@@ -3424,10 +3423,10 @@ TEST_P(GLSLTest, ArrayOfStructsWithSamplersAsFunctionArg)
// This test covers passing a struct containing an array of samplers as a function argument.
TEST_P(GLSLTest, StructWithSamplerArrayAsFunctionArg)
{
// Shader failed to compile on Android. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
// Shader failed to compile on Nexus devices. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
// TODO(jmadill): Fix on Android if possible. http://anglebug.com/2703
// TODO(jmadill): Fix on Android/vulkan if possible. http://anglebug.com/2703
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
constexpr char kFS[] =
......@@ -3478,8 +3477,8 @@ TEST_P(GLSLTest, StructWithSamplerArrayAsFunctionArg)
// This test covers passing nested structs containing a sampler as a function argument.
TEST_P(GLSLTest, NestedStructsWithSamplersAsFunctionArg)
{
// Shader failed to compile on Android. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
// Shader failed to compile on Nexus devices. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
const char kFragmentShader[] = R"(precision mediump float;
struct S { sampler2D samplerMember; };
......@@ -3529,8 +3528,8 @@ void main()
// This test covers passing a compound structs containing a sampler as a function argument.
TEST_P(GLSLTest, CompoundStructsWithSamplersAsFunctionArg)
{
// Shader failed to compile on Android. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
// Shader failed to compile on Nexus devices. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
const char kFragmentShader[] = R"(precision mediump float;
struct S { sampler2D samplerMember; bool b; };
......@@ -3581,8 +3580,8 @@ void main()
// This test covers passing nested compound structs containing a sampler as a function argument.
TEST_P(GLSLTest, NestedCompoundStructsWithSamplersAsFunctionArg)
{
// Shader failed to compile on Android. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
// Shader failed to compile on Nexus devices. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
const char kFragmentShader[] = R"(precision mediump float;
struct S { sampler2D samplerMember; bool b; };
......@@ -3646,8 +3645,8 @@ void main()
// Same as the prior test but with reordered struct members.
TEST_P(GLSLTest, MoreNestedCompoundStructsWithSamplersAsFunctionArg)
{
// Shader failed to compile on Android. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
// Shader failed to compile on Nexus devices. http://anglebug.com/2114
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
const char kFragmentShader[] = R"(precision mediump float;
struct S { bool b; sampler2D samplerMember; };
......
......@@ -1632,7 +1632,7 @@ TEST_P(ImageTest, MipLevels)
// Driver returns OOM in read pixels, some internal error.
ANGLE_SKIP_TEST_IF(IsOzone() && IsOpenGLES());
// Also fails on NVIDIA Shield TV bot.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsOpenGLES());
ANGLE_SKIP_TEST_IF(IsNVIDIAShield() && IsOpenGLES());
EGLWindow *window = getEGLWindow();
ANGLE_SKIP_TEST_IF(!hasOESExt() || !hasBaseExt() || !has2DTextureExt());
......
......@@ -249,7 +249,7 @@ TEST_P(ReadPixelsPBOTest, SubDataPreservesContents)
TEST_P(ReadPixelsPBOTest, SubDataOffsetPreservesContents)
{
// anglebug.com/1415
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
// anglebug.com/2185
ANGLE_SKIP_TEST_IF(IsOSX() && IsNVIDIA() && IsDesktopOpenGL());
......
......@@ -311,7 +311,7 @@ TEST_P(RobustBufferAccessBehaviorTest, VeryLargeVertexCountWithDynamicVertexData
TEST_P(RobustBufferAccessBehaviorTest, NoBufferData)
{
// http://crbug.com/889303: Possible driver bug on NVIDIA Shield TV.
// http://anglebug.com/2861: Fails abnormally on Pixel XL
// http://anglebug.com/2861: Fails abnormally on Android
ANGLE_SKIP_TEST_IF(IsAndroid() && IsOpenGLES());
ANGLE_SKIP_TEST_IF(!initExtension());
......@@ -443,7 +443,7 @@ TEST_P(RobustBufferAccessBehaviorTest, EmptyBuffer)
// AMD GL does not support robustness. http://anglebug.com/3099
ANGLE_SKIP_TEST_IF(IsAMD() && IsOpenGL());
// http://anglebug.com/2861: Fails abnormally on Pixel XL
// http://anglebug.com/2861: Fails abnormally on Android
ANGLE_SKIP_TEST_IF(IsAndroid() && IsOpenGLES());
ANGLE_GL_PROGRAM(program, kWebGLVS, kWebGLFS);
......
......@@ -561,8 +561,8 @@ TEST_P(RobustResourceInitTest, TexImageThenSubImage)
{
ANGLE_SKIP_TEST_IF(!hasGLExtension());
// http://anglebug.com/2407
ANGLE_SKIP_TEST_IF(IsAndroid());
// http://anglebug.com/2407, but only fails on Nexus devices
ANGLE_SKIP_TEST_IF(IsNexus5X() || IsNexus6P());
// Put some data into the texture
......@@ -734,8 +734,8 @@ TEST_P(RobustResourceInitTest, ReadingPartiallyInitializedTexture)
{
ANGLE_SKIP_TEST_IF(!hasGLExtension());
// http://anglebug.com/2407
ANGLE_SKIP_TEST_IF(IsAndroid());
// http://anglebug.com/2407, but only fails on Nexus devices
ANGLE_SKIP_TEST_IF(IsNexus5X() || IsNexus6P());
GLTexture tex;
setupTexture(&tex);
......@@ -1375,8 +1375,8 @@ TEST_P(RobustResourceInitTest, MaskedStencilClear)
ANGLE_SKIP_TEST_IF(!hasGLExtension());
ANGLE_SKIP_TEST_IF(IsD3D11_FL93());
// http://anglebug.com/2407
ANGLE_SKIP_TEST_IF(IsAndroid());
// http://anglebug.com/2407, but only fails on Nexus devices
ANGLE_SKIP_TEST_IF(IsNexus5X() || IsNexus6P());
auto clearFunc = [](GLint clearValue) {
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
......@@ -1397,8 +1397,8 @@ TEST_P(RobustResourceInitTestES3, MaskedStencilClearBuffer)
ANGLE_SKIP_TEST_IF(IsLinux() && IsOpenGL());
// http://anglebug.com/2407
ANGLE_SKIP_TEST_IF(IsAndroid());
// http://anglebug.com/2407, but only fails on Nexus devices
ANGLE_SKIP_TEST_IF(IsNexus5X() || IsNexus6P());
auto clearFunc = [](GLint clearValue) {
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
......
......@@ -2704,7 +2704,7 @@ TEST_P(SamplerInStructTest, SamplerInStruct)
TEST_P(SamplerInStructAsFunctionParameterTest, SamplerInStructAsFunctionParameter)
{
// TODO(ynovikov): re-enable once root cause of http://anglebug.com/1427 is fixed
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
runSamplerInStructTest();
}
......@@ -2714,7 +2714,7 @@ TEST_P(SamplerInStructAsFunctionParameterTest, SamplerInStructAsFunctionParamete
TEST_P(SamplerInStructArrayAsFunctionParameterTest, SamplerInStructArrayAsFunctionParameter)
{
// TODO(ynovikov): re-enable once root cause of http://anglebug.com/1427 is fixed
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
runSamplerInStructTest();
}
......@@ -2724,7 +2724,7 @@ TEST_P(SamplerInStructArrayAsFunctionParameterTest, SamplerInStructArrayAsFuncti
TEST_P(SamplerInNestedStructAsFunctionParameterTest, SamplerInNestedStructAsFunctionParameter)
{
// TODO(ynovikov): re-enable once root cause of http://anglebug.com/1427 is fixed
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
runSamplerInStructTest();
}
......@@ -3688,7 +3688,7 @@ TEST_P(Texture2DNorm16TestES3, TextureNorm16Test)
TEST_P(Texture2DTestES3, UnpackSkipImages2D)
{
// TODO(ynovikov): re-enable once root cause of http://anglebug.com/1429 is fixed
ANGLE_SKIP_TEST_IF(IsAndroid() && IsAdreno() && IsOpenGLES());
ANGLE_SKIP_TEST_IF((IsNexus5X() || IsNexus6P()) && IsAdreno() && IsOpenGLES());
glBindTexture(GL_TEXTURE_2D, mTexture2D);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
......
......@@ -915,7 +915,7 @@ TEST_P(TransformFeedbackTest, OffsetResetOnBeginTransformFeedback)
{
ANGLE_SKIP_TEST_IF(IsOSX() && IsAMD());
ANGLE_SKIP_TEST_IF(IsAndroid());
ANGLE_SKIP_TEST_IF(IsNexus5X() || IsNexus6P());
constexpr char kVS[] =
"#version 300 es\n"
......
......@@ -155,6 +155,11 @@ bool IsNexus5X()
return IsAndroidDevice("Nexus 5X");
}
bool IsNexus6P()
{
return IsAndroidDevice("Nexus 6P");
}
bool IsPixelXL()
{
return IsAndroidDevice("Pixel XL");
......@@ -165,6 +170,11 @@ bool IsPixel2()
return IsAndroidDevice("Pixel 2");
}
bool IsNVIDIAShield()
{
return IsAndroidDevice("SHIELD Android TV");
}
bool IsConfigWhitelisted(const SystemInfo &systemInfo, const PlatformParameters &param)
{
VendorID vendorID = systemInfo.gpus[systemInfo.primaryGPUIndex].vendorId;
......@@ -291,11 +301,13 @@ bool IsConfigWhitelisted(const SystemInfo &systemInfo, const PlatformParameters
return false;
}
// Some Android devices don't support backing 3.2 contexts. We should refine this to only
// exclude the problematic devices.
// Nexus Android devices don't support backing 3.2 contexts
if (param.eglParameters.majorVersion == 3 && param.eglParameters.minorVersion == 2)
{
return false;
if (IsNexus5X() || IsNexus6P())
{
return false;
}
}
// Currently we support the GLES and Vulkan back-ends on Android.
......
......@@ -27,8 +27,10 @@ bool IsFuchsia();
// Android devices
bool IsNexus5X();
bool IsNexus6P();
bool IsPixelXL();
bool IsPixel2();
bool IsNVIDIAShield();
bool IsPlatformAvailable(const PlatformParameters &param);
......
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