Commit 2c49d0b0 by Jamie Madill Committed by Commit Bot

Suppress Bindings perf test on Win/Intel/GL.

BindingsBenchmark.Run/gl_100_objects_allocated_every_iteration This test was timing out on the bots. Conservatively skip the benchmark on Intel/GL/Windows. Bug: chromium:974083 Change-Id: I4a254bff8b43e5a47b5905ee6b9bc1a659129684 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660951 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarKenneth Russell <kbr@chromium.org>
parent e1849ee1
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <random> #include <random>
#include <sstream> #include <sstream>
#include "test_utils/angle_test_instantiate.h"
#include "util/shader_utils.h" #include "util/shader_utils.h"
namespace angle namespace angle
...@@ -90,7 +91,14 @@ class BindingsBenchmark : public ANGLERenderTest, ...@@ -90,7 +91,14 @@ class BindingsBenchmark : public ANGLERenderTest,
std::vector<GLenum> mBindingPoints; std::vector<GLenum> mBindingPoints;
}; };
BindingsBenchmark::BindingsBenchmark() : ANGLERenderTest("Bindings", GetParam()) {} BindingsBenchmark::BindingsBenchmark() : ANGLERenderTest("Bindings", GetParam())
{
// Flaky on Windows Intel OpenGL. http://crbug.com/974083
if (IsIntel() && GetParam().eglParameters.renderer == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE)
{
mSkipTest = true;
}
}
void BindingsBenchmark::initializeBenchmark() void BindingsBenchmark::initializeBenchmark()
{ {
......
...@@ -1224,32 +1224,12 @@ void ANGLETestBase::setWindowVisible(bool isVisible) ...@@ -1224,32 +1224,12 @@ void ANGLETestBase::setWindowVisible(bool isVisible)
mFixture->osWindow->setVisible(isVisible); mFixture->osWindow->setVisible(isVisible);
} }
bool IsIntel()
{
std::string rendererString(reinterpret_cast<const char *>(glGetString(GL_RENDERER)));
return (rendererString.find("Intel") != std::string::npos);
}
bool IsAdreno() bool IsAdreno()
{ {
std::string rendererString(reinterpret_cast<const char *>(glGetString(GL_RENDERER))); std::string rendererString(reinterpret_cast<const char *>(glGetString(GL_RENDERER)));
return (rendererString.find("Adreno") != std::string::npos); return (rendererString.find("Adreno") != std::string::npos);
} }
bool IsAMD()
{
std::string rendererString(reinterpret_cast<const char *>(glGetString(GL_RENDERER)));
return (rendererString.find("AMD") != std::string::npos) ||
(rendererString.find("ATI") != std::string::npos) ||
(rendererString.find("Radeon") != std::string::npos);
}
bool IsNVIDIA()
{
std::string rendererString(reinterpret_cast<const char *>(glGetString(GL_RENDERER)));
return (rendererString.find("NVIDIA") != std::string::npos);
}
bool IsD3D11() bool IsD3D11()
{ {
std::string rendererString(reinterpret_cast<const char *>(glGetString(GL_RENDERER))); std::string rendererString(reinterpret_cast<const char *>(glGetString(GL_RENDERER)));
......
...@@ -535,10 +535,7 @@ class ANGLETestEnvironment : public testing::Environment ...@@ -535,10 +535,7 @@ class ANGLETestEnvironment : public testing::Environment
}; };
// Driver vendors // Driver vendors
bool IsIntel();
bool IsAdreno(); bool IsAdreno();
bool IsAMD();
bool IsNVIDIA();
// Renderer back-ends // Renderer back-ends
// Note: FL9_3 is explicitly *not* considered D3D11. // Note: FL9_3 is explicitly *not* considered D3D11.
......
...@@ -69,6 +69,31 @@ bool IsNativeConfigSupported(const PlatformParameters &param, OSWindow *osWindow ...@@ -69,6 +69,31 @@ bool IsNativeConfigSupported(const PlatformParameters &param, OSWindow *osWindow
} }
std::map<PlatformParameters, bool> gParamAvailabilityCache; std::map<PlatformParameters, bool> gParamAvailabilityCache;
bool IsAndroidDevice(const std::string &deviceName)
{
if (!IsAndroid())
{
return false;
}
SystemInfo *systemInfo = GetTestSystemInfo();
if (systemInfo->machineModelName == deviceName)
{
return true;
}
return false;
}
bool HasSystemVendorID(VendorID vendorID)
{
SystemInfo *systemInfo = GetTestSystemInfo();
// Unfortunately sometimes GPU info collection can fail.
if (systemInfo->activeGPUIndex < 0 || systemInfo->gpus.empty())
{
return false;
}
return systemInfo->gpus[systemInfo->activeGPUIndex].vendorId == vendorID;
}
} // namespace } // namespace
std::string gSelectedConfig; std::string gSelectedConfig;
...@@ -150,20 +175,6 @@ bool IsFuchsia() ...@@ -150,20 +175,6 @@ bool IsFuchsia()
#endif #endif
} }
bool IsAndroidDevice(const std::string &deviceName)
{
if (!IsAndroid())
{
return false;
}
SystemInfo *systemInfo = GetTestSystemInfo();
if (systemInfo->machineModelName == deviceName)
{
return true;
}
return false;
}
bool IsNexus5X() bool IsNexus5X()
{ {
return IsAndroidDevice("Nexus 5X"); return IsAndroidDevice("Nexus 5X");
...@@ -189,6 +200,21 @@ bool IsNVIDIAShield() ...@@ -189,6 +200,21 @@ bool IsNVIDIAShield()
return IsAndroidDevice("SHIELD Android TV"); return IsAndroidDevice("SHIELD Android TV");
} }
bool IsIntel()
{
return HasSystemVendorID(kVendorID_Intel);
}
bool IsAMD()
{
return HasSystemVendorID(kVendorID_AMD);
}
bool IsNVIDIA()
{
return HasSystemVendorID(kVendorID_NVIDIA);
}
bool IsConfigWhitelisted(const SystemInfo &systemInfo, const PlatformParameters &param) bool IsConfigWhitelisted(const SystemInfo &systemInfo, const PlatformParameters &param)
{ {
VendorID vendorID = systemInfo.gpus[systemInfo.activeGPUIndex].vendorId; VendorID vendorID = systemInfo.gpus[systemInfo.activeGPUIndex].vendorId;
......
...@@ -32,6 +32,11 @@ bool IsPixelXL(); ...@@ -32,6 +32,11 @@ bool IsPixelXL();
bool IsPixel2(); bool IsPixel2();
bool IsNVIDIAShield(); bool IsNVIDIAShield();
// Desktop devices.
bool IsIntel();
bool IsAMD();
bool IsNVIDIA();
bool IsPlatformAvailable(const PlatformParameters &param); bool IsPlatformAvailable(const PlatformParameters &param);
// This functions is used to filter which tests should be registered, // This functions is used to filter which tests should be registered,
......
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