summaryrefslogtreecommitdiff
path: root/libs/graphicsenv/GraphicsEnv.cpp
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2023-10-17 21:04:38 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2023-10-17 21:04:38 +0000
commit9e0b9d7d7192fb2f56e8a9a889569439ddcfb2fe (patch)
tree5a97a045f0c62a68b9df69a6cbc58533bc71e6f1 /libs/graphicsenv/GraphicsEnv.cpp
parent33dbf5d27b8f886d92a22ec35548bd99ae68bd12 (diff)
parent2661b73e149e99a3202e922d07174cb80b5d6122 (diff)
Merge "[Cherry-pick] Load native GLES driver when specified." into main
Diffstat (limited to 'libs/graphicsenv/GraphicsEnv.cpp')
-rw-r--r--libs/graphicsenv/GraphicsEnv.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/libs/graphicsenv/GraphicsEnv.cpp b/libs/graphicsenv/GraphicsEnv.cpp
index 5bdffe0368..1adf1afaa2 100644
--- a/libs/graphicsenv/GraphicsEnv.cpp
+++ b/libs/graphicsenv/GraphicsEnv.cpp
@@ -420,7 +420,11 @@ bool GraphicsEnv::shouldUseAngle() {
return mShouldUseAngle;
}
-void GraphicsEnv::setAngleInfo(const std::string& path, const bool shouldUseSystemAngle,
+// Set ANGLE information.
+// If path is "system", it means system ANGLE must be used for the process.
+// If shouldUseNativeDriver is true, it means native GLES drivers must be used for the process.
+// If path is set to nonempty and shouldUseNativeDriver is true, ANGLE will be used regardless.
+void GraphicsEnv::setAngleInfo(const std::string& path, const bool shouldUseNativeDriver,
const std::string& packageName,
const std::vector<std::string> eglFeatures) {
if (mShouldUseAngle) {
@@ -437,8 +441,13 @@ void GraphicsEnv::setAngleInfo(const std::string& path, const bool shouldUseSyst
mAnglePath = std::move(path);
ALOGV("setting app package name to '%s'", packageName.c_str());
mPackageName = std::move(packageName);
- mShouldUseAngle = true;
- mShouldUseSystemAngle = shouldUseSystemAngle;
+ if (path == "system") {
+ mShouldUseSystemAngle = true;
+ }
+ if (!path.empty()) {
+ mShouldUseAngle = true;
+ }
+ mShouldUseNativeDriver = shouldUseNativeDriver;
}
void GraphicsEnv::setLayerPaths(NativeLoaderNamespace* appNamespace,
@@ -564,7 +573,7 @@ android_namespace_t* GraphicsEnv::getDriverNamespace() {
return nullptr;
}
- mDriverNamespace = android_create_namespace("gfx driver",
+ mDriverNamespace = android_create_namespace("updatable gfx driver",
mDriverPath.c_str(), // ld_library_path
mDriverPath.c_str(), // default_library_path
ANDROID_NAMESPACE_TYPE_ISOLATED,
@@ -648,4 +657,8 @@ bool GraphicsEnv::shouldUseSystemAngle() {
return mShouldUseSystemAngle;
}
+bool GraphicsEnv::shouldUseNativeDriver() {
+ return mShouldUseNativeDriver;
+}
+
} // namespace android