diff options
| author | 2023-10-17 21:04:38 +0000 | |
|---|---|---|
| committer | 2023-10-17 21:04:38 +0000 | |
| commit | 9e0b9d7d7192fb2f56e8a9a889569439ddcfb2fe (patch) | |
| tree | 5a97a045f0c62a68b9df69a6cbc58533bc71e6f1 /libs/graphicsenv/GraphicsEnv.cpp | |
| parent | 33dbf5d27b8f886d92a22ec35548bd99ae68bd12 (diff) | |
| parent | 2661b73e149e99a3202e922d07174cb80b5d6122 (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.cpp | 21 | 
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  |