ANGLEPerfTest: Add option to disable GL debug callbacks.
Disable GL debug callbacks on native ARM GLES1.
This fixes native GLES1 replay on Pixel 6 when running debug builds.
Bug: angleproject:7447
Change-Id: I0059c07f4f2fb944e54a5163863b487bc31ab28f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3716584
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
diff --git a/src/tests/perf_tests/ANGLEPerfTest.cpp b/src/tests/perf_tests/ANGLEPerfTest.cpp
index 8fcdb84..bef5193 100644
--- a/src/tests/perf_tests/ANGLEPerfTest.cpp
+++ b/src/tests/perf_tests/ANGLEPerfTest.cpp
@@ -860,7 +860,7 @@
}
#if defined(ANGLE_ENABLE_ASSERTS)
- if (IsGLExtensionEnabled("GL_KHR_debug"))
+ if (IsGLExtensionEnabled("GL_KHR_debug") && mEnableDebugCallback)
{
EnableDebugCallback(&PerfTestDebugCallback, this);
}
diff --git a/src/tests/perf_tests/ANGLEPerfTest.h b/src/tests/perf_tests/ANGLEPerfTest.h
index 8d8efa7..0352185 100644
--- a/src/tests/perf_tests/ANGLEPerfTest.h
+++ b/src/tests/perf_tests/ANGLEPerfTest.h
@@ -220,6 +220,7 @@
void updatePerfCounters();
bool mIsTimestampQueryAvailable;
+ bool mEnableDebugCallback = true;
private:
void SetUp() override;
diff --git a/src/tests/perf_tests/TracePerfTest.cpp b/src/tests/perf_tests/TracePerfTest.cpp
index ad4d0c9..fd9c391 100644
--- a/src/tests/perf_tests/TracePerfTest.cpp
+++ b/src/tests/perf_tests/TracePerfTest.cpp
@@ -1260,6 +1260,12 @@
addExtensionPrerequisite("GL_EXT_texture_buffer");
}
+ // glDebugMessageControlKHR and glDebugMessageCallbackKHR crash on ARM GLES1.
+ if (IsARM() && mParams->traceInfo.contextClientMajorVersion == 1)
+ {
+ mEnableDebugCallback = false;
+ }
+
ASSERT(mParams->surfaceType == SurfaceType::Window || gEnableAllTraceTests);
ASSERT(mParams->eglParameters.deviceType == EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE ||
gEnableAllTraceTests);