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() ...@@ -525,7 +525,7 @@ void ANGLERenderTest::step()
void ANGLERenderTest::startGpuTimer() void ANGLERenderTest::startGpuTimer()
{ {
if (shouldTrackGpuTime()) if (mTestParams.trackGpuTime)
{ {
glBeginQueryEXT(GL_TIME_ELAPSED_EXT, mTimestampQuery); glBeginQueryEXT(GL_TIME_ELAPSED_EXT, mTimestampQuery);
} }
...@@ -533,7 +533,7 @@ void ANGLERenderTest::startGpuTimer() ...@@ -533,7 +533,7 @@ void ANGLERenderTest::startGpuTimer()
void ANGLERenderTest::stopGpuTimer() void ANGLERenderTest::stopGpuTimer()
{ {
if (shouldTrackGpuTime()) if (mTestParams.trackGpuTime)
{ {
glEndQueryEXT(GL_TIME_ELAPSED_EXT); glEndQueryEXT(GL_TIME_ELAPSED_EXT);
uint64_t gpuTimeNs = 0; uint64_t gpuTimeNs = 0;
...@@ -545,7 +545,7 @@ void ANGLERenderTest::stopGpuTimer() ...@@ -545,7 +545,7 @@ void ANGLERenderTest::stopGpuTimer()
void ANGLERenderTest::startTest() void ANGLERenderTest::startTest()
{ {
if (shouldTrackGpuTime()) if (mTestParams.trackGpuTime)
{ {
glGenQueriesEXT(1, &mTimestampQuery); glGenQueriesEXT(1, &mTimestampQuery);
mGPUTimeNs = 0; mGPUTimeNs = 0;
...@@ -554,7 +554,7 @@ void ANGLERenderTest::startTest() ...@@ -554,7 +554,7 @@ void ANGLERenderTest::startTest()
void ANGLERenderTest::finishTest() void ANGLERenderTest::finishTest()
{ {
if (shouldTrackGpuTime()) if (mTestParams.trackGpuTime)
{ {
glDeleteQueriesEXT(1, &mTimestampQuery); glDeleteQueriesEXT(1, &mTimestampQuery);
} }
...@@ -574,15 +574,6 @@ OSWindow *ANGLERenderTest::getWindow() ...@@ -574,15 +574,6 @@ OSWindow *ANGLERenderTest::getWindow()
return mOSWindow; 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 bool ANGLERenderTest::areExtensionPrerequisitesFulfilled() const
{ {
for (const char *extension : mExtensionPrerequisites) for (const char *extension : mExtensionPrerequisites)
......
...@@ -155,7 +155,6 @@ class ANGLERenderTest : public ANGLEPerfTest ...@@ -155,7 +155,6 @@ class ANGLERenderTest : public ANGLEPerfTest
void startTest() override; void startTest() override;
void finishTest() override; void finishTest() override;
bool shouldTrackGpuTime() const;
bool areExtensionPrerequisitesFulfilled() const; bool areExtensionPrerequisitesFulfilled() const;
static EGLWindow *createEGLWindow(const RenderTestParams &testParams); static EGLWindow *createEGLWindow(const RenderTestParams &testParams);
......
...@@ -16,7 +16,9 @@ ...@@ -16,7 +16,9 @@
#include "test_utils/gl_raii.h" #include "test_utils/gl_raii.h"
#include "util/shader_utils.h" #include "util/shader_utils.h"
namespace angle using namespace angle;
namespace
{ {
constexpr unsigned int kIterationsPerStep = 256; constexpr unsigned int kIterationsPerStep = 256;
...@@ -73,7 +75,13 @@ class ClearBenchmark : public ANGLERenderTest, public ::testing::WithParamInterf ...@@ -73,7 +75,13 @@ class ClearBenchmark : public ANGLERenderTest, public ::testing::WithParamInterf
ClearBenchmark::ClearBenchmark() ClearBenchmark::ClearBenchmark()
: ANGLERenderTest("Clear", GetParam()), mProgram(0u), mPositionLoc(-1), mSamplerLoc(-1) : 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() void ClearBenchmark::initializeBenchmark()
{ {
...@@ -161,34 +169,32 @@ void ClearBenchmark::drawBenchmark() ...@@ -161,34 +169,32 @@ void ClearBenchmark::drawBenchmark()
ASSERT_GL_NO_ERROR(); ASSERT_GL_NO_ERROR();
} }
ClearParams ClearD3D11Params() ClearParams D3D11Params()
{ {
ClearParams params; ClearParams params;
params.eglParameters = egl_platform::D3D11(); params.eglParameters = egl_platform::D3D11();
return params; return params;
} }
ClearParams ClearOpenGLOrGLESParams() ClearParams OpenGLOrGLESParams()
{ {
ClearParams params; ClearParams params;
params.eglParameters = egl_platform::OPENGL_OR_GLES(false); params.eglParameters = egl_platform::OPENGL_OR_GLES(false);
return params; return params;
} }
ClearParams ClearVulkanParams() ClearParams VulkanParams()
{ {
ClearParams params; ClearParams params;
params.eglParameters = egl_platform::VULKAN(); params.eglParameters = egl_platform::VULKAN();
return params; return params;
} }
} // anonymous namespace
TEST_P(ClearBenchmark, Run) TEST_P(ClearBenchmark, Run)
{ {
run(); run();
} }
ANGLE_INSTANTIATE_TEST(ClearBenchmark, ANGLE_INSTANTIATE_TEST(ClearBenchmark, D3D11Params(), OpenGLOrGLESParams(), VulkanParams());
ClearD3D11Params(),
ClearOpenGLOrGLESParams(),
ClearVulkanParams());
} // namespace angle
...@@ -16,7 +16,9 @@ ...@@ -16,7 +16,9 @@
#include "test_utils/gl_raii.h" #include "test_utils/gl_raii.h"
#include "util/shader_utils.h" #include "util/shader_utils.h"
namespace angle using namespace angle;
namespace
{ {
constexpr unsigned int kIterationsPerStep = 64; constexpr unsigned int kIterationsPerStep = 64;
...@@ -102,6 +104,12 @@ TextureUploadBenchmarkBase::TextureUploadBenchmarkBase(const char *benchmarkName ...@@ -102,6 +104,12 @@ TextureUploadBenchmarkBase::TextureUploadBenchmarkBase(const char *benchmarkName
{ {
setWebGLCompatibilityEnabled(GetParam().webgl); setWebGLCompatibilityEnabled(GetParam().webgl);
setRobustResourceInit(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() void TextureUploadBenchmarkBase::initializeBenchmark()
...@@ -225,7 +233,7 @@ void TextureUploadFullMipBenchmark::drawBenchmark() ...@@ -225,7 +233,7 @@ void TextureUploadFullMipBenchmark::drawBenchmark()
ASSERT_GL_NO_ERROR(); ASSERT_GL_NO_ERROR();
} }
TextureUploadParams TextureUploadD3D11Params(bool webglCompat) TextureUploadParams D3D11Params(bool webglCompat)
{ {
TextureUploadParams params; TextureUploadParams params;
params.eglParameters = egl_platform::D3D11(); params.eglParameters = egl_platform::D3D11();
...@@ -233,7 +241,7 @@ TextureUploadParams TextureUploadD3D11Params(bool webglCompat) ...@@ -233,7 +241,7 @@ TextureUploadParams TextureUploadD3D11Params(bool webglCompat)
return params; return params;
} }
TextureUploadParams TextureUploadOpenGLOrGLESParams(bool webglCompat) TextureUploadParams OpenGLOrGLESParams(bool webglCompat)
{ {
TextureUploadParams params; TextureUploadParams params;
params.eglParameters = egl_platform::OPENGL_OR_GLES(false); params.eglParameters = egl_platform::OPENGL_OR_GLES(false);
...@@ -241,7 +249,7 @@ TextureUploadParams TextureUploadOpenGLOrGLESParams(bool webglCompat) ...@@ -241,7 +249,7 @@ TextureUploadParams TextureUploadOpenGLOrGLESParams(bool webglCompat)
return params; return params;
} }
TextureUploadParams TextureUploadVulkanParams(bool webglCompat) TextureUploadParams VulkanParams(bool webglCompat)
{ {
TextureUploadParams params; TextureUploadParams params;
params.eglParameters = egl_platform::VULKAN(); params.eglParameters = egl_platform::VULKAN();
...@@ -249,6 +257,8 @@ TextureUploadParams TextureUploadVulkanParams(bool webglCompat) ...@@ -249,6 +257,8 @@ TextureUploadParams TextureUploadVulkanParams(bool webglCompat)
return params; return params;
} }
} // anonymous namespace
TEST_P(TextureUploadSubImageBenchmark, Run) TEST_P(TextureUploadSubImageBenchmark, Run)
{ {
run(); run();
...@@ -260,18 +270,17 @@ TEST_P(TextureUploadFullMipBenchmark, Run) ...@@ -260,18 +270,17 @@ TEST_P(TextureUploadFullMipBenchmark, Run)
} }
ANGLE_INSTANTIATE_TEST(TextureUploadSubImageBenchmark, ANGLE_INSTANTIATE_TEST(TextureUploadSubImageBenchmark,
TextureUploadD3D11Params(false), D3D11Params(false),
TextureUploadD3D11Params(true), D3D11Params(true),
TextureUploadOpenGLOrGLESParams(false), OpenGLOrGLESParams(false),
TextureUploadOpenGLOrGLESParams(true), OpenGLOrGLESParams(true),
TextureUploadVulkanParams(false), VulkanParams(false),
TextureUploadVulkanParams(true)); VulkanParams(true));
ANGLE_INSTANTIATE_TEST(TextureUploadFullMipBenchmark, ANGLE_INSTANTIATE_TEST(TextureUploadFullMipBenchmark,
TextureUploadD3D11Params(false), D3D11Params(false),
TextureUploadD3D11Params(true), D3D11Params(true),
TextureUploadOpenGLOrGLESParams(false), OpenGLOrGLESParams(false),
TextureUploadOpenGLOrGLESParams(true), OpenGLOrGLESParams(true),
TextureUploadVulkanParams(false), VulkanParams(false),
TextureUploadVulkanParams(true)); VulkanParams(true));
} // namespace angle
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