Commit 91524d8c by Shahbaz Youssefi Committed by Commit Bot

Disable Clear and TextureUpload perf tests on D3D11

The tests crash on Nvidia in the driver. Bug: 945415 Change-Id: I0f635eb5d99ecaeeaff055793b1b5fd3a314b055 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1548440 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 24980278
......@@ -525,7 +525,7 @@ void ANGLERenderTest::step()
void ANGLERenderTest::startGpuTimer()
{
if (shouldTrackGpuTime())
if (mTestParams.trackGpuTime)
{
glBeginQueryEXT(GL_TIME_ELAPSED_EXT, mTimestampQuery);
}
......@@ -533,7 +533,7 @@ void ANGLERenderTest::startGpuTimer()
void ANGLERenderTest::stopGpuTimer()
{
if (shouldTrackGpuTime())
if (mTestParams.trackGpuTime)
{
glEndQueryEXT(GL_TIME_ELAPSED_EXT);
uint64_t gpuTimeNs = 0;
......@@ -545,7 +545,7 @@ void ANGLERenderTest::stopGpuTimer()
void ANGLERenderTest::startTest()
{
if (shouldTrackGpuTime())
if (mTestParams.trackGpuTime)
{
glGenQueriesEXT(1, &mTimestampQuery);
mGPUTimeNs = 0;
......@@ -554,7 +554,7 @@ void ANGLERenderTest::startTest()
void ANGLERenderTest::finishTest()
{
if (shouldTrackGpuTime())
if (mTestParams.trackGpuTime)
{
glDeleteQueriesEXT(1, &mTimestampQuery);
}
......@@ -574,15 +574,6 @@ OSWindow *ANGLERenderTest::getWindow()
return mOSWindow;
}
bool ANGLERenderTest::shouldTrackGpuTime() const
{
bool isD3D = mTestParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE ||
mTestParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE;
// TODO: On D3D, tracking GPU time causes crashes. http://anglebug.com/3310
return mTestParams.trackGpuTime && !isD3D;
}
bool ANGLERenderTest::areExtensionPrerequisitesFulfilled() const
{
for (const char *extension : mExtensionPrerequisites)
......
......@@ -155,7 +155,6 @@ class ANGLERenderTest : public ANGLEPerfTest
void startTest() override;
void finishTest() override;
bool shouldTrackGpuTime() const;
bool areExtensionPrerequisitesFulfilled() const;
static EGLWindow *createEGLWindow(const RenderTestParams &testParams);
......
......@@ -16,7 +16,9 @@
#include "test_utils/gl_raii.h"
#include "util/shader_utils.h"
namespace angle
using namespace angle;
namespace
{
constexpr unsigned int kIterationsPerStep = 256;
......@@ -73,7 +75,13 @@ class ClearBenchmark : public ANGLERenderTest, public ::testing::WithParamInterf
ClearBenchmark::ClearBenchmark()
: ANGLERenderTest("Clear", GetParam()), mProgram(0u), mPositionLoc(-1), mSamplerLoc(-1)
{}
{
// Crashes on nvidia+d3d11. http://crbug.com/945415
if (GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE)
{
mSkipTest = true;
}
}
void ClearBenchmark::initializeBenchmark()
{
......@@ -161,34 +169,32 @@ void ClearBenchmark::drawBenchmark()
ASSERT_GL_NO_ERROR();
}
ClearParams ClearD3D11Params()
ClearParams D3D11Params()
{
ClearParams params;
params.eglParameters = egl_platform::D3D11();
return params;
}
ClearParams ClearOpenGLOrGLESParams()
ClearParams OpenGLOrGLESParams()
{
ClearParams params;
params.eglParameters = egl_platform::OPENGL_OR_GLES(false);
return params;
}
ClearParams ClearVulkanParams()
ClearParams VulkanParams()
{
ClearParams params;
params.eglParameters = egl_platform::VULKAN();
return params;
}
} // anonymous namespace
TEST_P(ClearBenchmark, Run)
{
run();
}
ANGLE_INSTANTIATE_TEST(ClearBenchmark,
ClearD3D11Params(),
ClearOpenGLOrGLESParams(),
ClearVulkanParams());
} // namespace angle
ANGLE_INSTANTIATE_TEST(ClearBenchmark, D3D11Params(), OpenGLOrGLESParams(), VulkanParams());
......@@ -16,7 +16,9 @@
#include "test_utils/gl_raii.h"
#include "util/shader_utils.h"
namespace angle
using namespace angle;
namespace
{
constexpr unsigned int kIterationsPerStep = 64;
......@@ -102,6 +104,12 @@ TextureUploadBenchmarkBase::TextureUploadBenchmarkBase(const char *benchmarkName
{
setWebGLCompatibilityEnabled(GetParam().webgl);
setRobustResourceInit(GetParam().webgl);
// Crashes on nvidia+d3d11. http://crbug.com/945415
if (GetParam().getRenderer() == EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE)
{
mSkipTest = true;
}
}
void TextureUploadBenchmarkBase::initializeBenchmark()
......@@ -225,7 +233,7 @@ void TextureUploadFullMipBenchmark::drawBenchmark()
ASSERT_GL_NO_ERROR();
}
TextureUploadParams TextureUploadD3D11Params(bool webglCompat)
TextureUploadParams D3D11Params(bool webglCompat)
{
TextureUploadParams params;
params.eglParameters = egl_platform::D3D11();
......@@ -233,7 +241,7 @@ TextureUploadParams TextureUploadD3D11Params(bool webglCompat)
return params;
}
TextureUploadParams TextureUploadOpenGLOrGLESParams(bool webglCompat)
TextureUploadParams OpenGLOrGLESParams(bool webglCompat)
{
TextureUploadParams params;
params.eglParameters = egl_platform::OPENGL_OR_GLES(false);
......@@ -241,7 +249,7 @@ TextureUploadParams TextureUploadOpenGLOrGLESParams(bool webglCompat)
return params;
}
TextureUploadParams TextureUploadVulkanParams(bool webglCompat)
TextureUploadParams VulkanParams(bool webglCompat)
{
TextureUploadParams params;
params.eglParameters = egl_platform::VULKAN();
......@@ -249,6 +257,8 @@ TextureUploadParams TextureUploadVulkanParams(bool webglCompat)
return params;
}
} // anonymous namespace
TEST_P(TextureUploadSubImageBenchmark, Run)
{
run();
......@@ -260,18 +270,17 @@ TEST_P(TextureUploadFullMipBenchmark, Run)
}
ANGLE_INSTANTIATE_TEST(TextureUploadSubImageBenchmark,
TextureUploadD3D11Params(false),
TextureUploadD3D11Params(true),
TextureUploadOpenGLOrGLESParams(false),
TextureUploadOpenGLOrGLESParams(true),
TextureUploadVulkanParams(false),
TextureUploadVulkanParams(true));
D3D11Params(false),
D3D11Params(true),
OpenGLOrGLESParams(false),
OpenGLOrGLESParams(true),
VulkanParams(false),
VulkanParams(true));
ANGLE_INSTANTIATE_TEST(TextureUploadFullMipBenchmark,
TextureUploadD3D11Params(false),
TextureUploadD3D11Params(true),
TextureUploadOpenGLOrGLESParams(false),
TextureUploadOpenGLOrGLESParams(true),
TextureUploadVulkanParams(false),
TextureUploadVulkanParams(true));
} // namespace angle
D3D11Params(false),
D3D11Params(true),
OpenGLOrGLESParams(false),
OpenGLOrGLESParams(true),
VulkanParams(false),
VulkanParams(true));
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