Commit 50fb5cc9 by Shahbaz Youssefi Committed by Commit Bot

Disable GPU perf tracking on D3D

Causes crashes. Bug: angleproject:3310 Bug: 945415 Change-Id: I59c5fee0afaf74c99ac19168fbfd96de04796add Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1534946 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent a47e2a23
...@@ -525,7 +525,7 @@ void ANGLERenderTest::step() ...@@ -525,7 +525,7 @@ void ANGLERenderTest::step()
void ANGLERenderTest::startGpuTimer() void ANGLERenderTest::startGpuTimer()
{ {
if (mTestParams.trackGpuTime) if (shouldTrackGpuTime())
{ {
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 (mTestParams.trackGpuTime) if (shouldTrackGpuTime())
{ {
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 (mTestParams.trackGpuTime) if (shouldTrackGpuTime())
{ {
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 (mTestParams.trackGpuTime) if (shouldTrackGpuTime())
{ {
glDeleteQueriesEXT(1, &mTimestampQuery); glDeleteQueriesEXT(1, &mTimestampQuery);
} }
...@@ -574,6 +574,15 @@ OSWindow *ANGLERenderTest::getWindow() ...@@ -574,6 +574,15 @@ 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,6 +155,7 @@ class ANGLERenderTest : public ANGLEPerfTest ...@@ -155,6 +155,7 @@ 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);
......
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