Pass more ANGLE info from runtime
In order to facilitate ANGLE selection logic in the backend, we need to
start sending more information from GraphicsEnvironment. This includes
the application name, whether the developer opted in, and the list can
be expanded. We also have to send the ANGLE namespace unconditionally
in case the application opts in programmatically.
Bug: 80239516
Test: Manual build, booted clean, ensured developer opt-in still works.
Change-Id: I3b8f99942999de6a3188d2e61355dcd244f9191e
(cherry picked from commit 6a88da6463f019ad1e3aea184e6ac6f5264fae50)
diff --git a/libs/graphicsenv/GraphicsEnv.cpp b/libs/graphicsenv/GraphicsEnv.cpp
index 80daeb9..282b468 100644
--- a/libs/graphicsenv/GraphicsEnv.cpp
+++ b/libs/graphicsenv/GraphicsEnv.cpp
@@ -56,14 +56,25 @@
mDriverPath = path;
}
-void GraphicsEnv::setAnglePath(const std::string path) {
+void GraphicsEnv::setAngleInfo(const std::string path, const std::string appName,
+ bool developerOptIn) {
if (!mAnglePath.empty()) {
ALOGV("ignoring attempt to change ANGLE path from '%s' to '%s'", mAnglePath.c_str(),
path.c_str());
- return;
+ } else {
+ ALOGV("setting ANGLE path to '%s'", path.c_str());
+ mAnglePath = path;
}
- ALOGV("setting ANGLE path to '%s'", path.c_str());
- mAnglePath = path;
+
+ if (!mAngleAppName.empty()) {
+ ALOGV("ignoring attempt to change ANGLE app name from '%s' to '%s'", mAngleAppName.c_str(),
+ appName.c_str());
+ } else {
+ ALOGV("setting ANGLE app name to '%s'", appName.c_str());
+ mAngleAppName = appName;
+ }
+
+ mAngleDeveloperOptIn = developerOptIn;
}
void GraphicsEnv::setLayerPaths(NativeLoaderNamespace* appNamespace, const std::string layerPaths) {
@@ -80,6 +91,15 @@
return mAppNamespace;
}
+const char* GraphicsEnv::getAngleAppName() {
+ if (mAngleAppName.empty()) return nullptr;
+ return mAngleAppName.c_str();
+}
+
+bool GraphicsEnv::getAngleDeveloperOptIn() {
+ return mAngleDeveloperOptIn;
+}
+
const std::string GraphicsEnv::getLayerPaths(){
return mLayerPaths;
}
@@ -139,4 +159,10 @@
android_namespace_t* android_getAngleNamespace() {
return android::GraphicsEnv::getInstance().getAngleNamespace();
}
+const char* android_getAngleAppName() {
+ return android::GraphicsEnv::getInstance().getAngleAppName();
+}
+bool android_getAngleDeveloperOptIn() {
+ return android::GraphicsEnv::getInstance().getAngleDeveloperOptIn();
+}
}