Only run ANGLE rules once
Keep track if we've run the ANGLE rules and re-use the decision
if it's already been figured out.
Bug: 80239516
Test: manual, verify ANGLE rules processing message only occurs once.
Change-Id: I2673d2c940783137d6328d6b338d43c8691699a1
diff --git a/opengl/libs/EGL/Loader.cpp b/opengl/libs/EGL/Loader.cpp
index a7fea33..9f39438 100644
--- a/opengl/libs/EGL/Loader.cpp
+++ b/opengl/libs/EGL/Loader.cpp
@@ -541,6 +541,8 @@
if (use_angle) {
ALOGV("User set \"Developer Options\" to force the use of ANGLE");
+ } else if (cnx->angleDecided) {
+ use_angle = cnx->useAngle;
} else {
// The "Developer Options" value wasn't set to force the use of ANGLE. Need to temporarily
// load ANGLE and call the updatable opt-in/out logic:
@@ -610,6 +612,7 @@
use_angle = false;
ALOGV("Could not temporarily-load the ANGLE opt-in/out logic, cannot use ANGLE.");
}
+ cnx->angleDecided = true;
}
if (use_angle) {
so = load_angle_from_namespace(kind, ns);
diff --git a/opengl/libs/EGL/egldefs.h b/opengl/libs/EGL/egldefs.h
index 7c710d5..e19fa38 100644
--- a/opengl/libs/EGL/egldefs.h
+++ b/opengl/libs/EGL/egldefs.h
@@ -76,6 +76,7 @@
void* libGles1;
void* libGles2;
+ bool angleDecided;
bool useAngle;
EGLint angleBackend;
void* vendorEGL;