diff options
Diffstat (limited to 'libs/graphicsenv/GraphicsEnv.cpp')
-rw-r--r-- | libs/graphicsenv/GraphicsEnv.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/libs/graphicsenv/GraphicsEnv.cpp b/libs/graphicsenv/GraphicsEnv.cpp index 3d0f8bbb11..d54de4999c 100644 --- a/libs/graphicsenv/GraphicsEnv.cpp +++ b/libs/graphicsenv/GraphicsEnv.cpp @@ -29,7 +29,6 @@ #include <android-base/strings.h> #include <android/dlext.h> #include <binder/IServiceManager.h> -#include <cutils/properties.h> #include <graphicsenv/IGpuService.h> #include <log/log.h> #include <nativeloader/dlext_namespaces.h> @@ -74,7 +73,7 @@ static constexpr const char* kNativeLibrariesSystemConfigPath[] = static std::string vndkVersionStr() { #ifdef __BIONIC__ - return android::base::GetProperty("ro.vndk.version", ""); + return base::GetProperty("ro.vndk.version", ""); #endif return ""; } @@ -345,10 +344,8 @@ void* GraphicsEnv::loadLibrary(std::string name) { } bool GraphicsEnv::checkAngleRules(void* so) { - char manufacturer[PROPERTY_VALUE_MAX]; - char model[PROPERTY_VALUE_MAX]; - property_get("ro.product.manufacturer", manufacturer, "UNSET"); - property_get("ro.product.model", model, "UNSET"); + auto manufacturer = base::GetProperty("ro.product.manufacturer", "UNSET"); + auto model = base::GetProperty("ro.product.model", "UNSET"); auto ANGLEGetFeatureSupportUtilAPIVersion = (fpANGLEGetFeatureSupportUtilAPIVersion)dlsym(so, @@ -401,7 +398,8 @@ bool GraphicsEnv::checkAngleRules(void* so) { ALOGW("ANGLE feature-support library cannot obtain SystemInfo"); break; } - if (!(ANGLEAddDeviceInfoToSystemInfo)(manufacturer, model, systemInfoHandle)) { + if (!(ANGLEAddDeviceInfoToSystemInfo)(manufacturer.c_str(), model.c_str(), + systemInfoHandle)) { ALOGW("ANGLE feature-support library cannot add device info to SystemInfo"); break; } @@ -468,7 +466,8 @@ void GraphicsEnv::updateUseAngle() { } void GraphicsEnv::setAngleInfo(const std::string path, const std::string appName, - const std::string developerOptIn, const int rulesFd, + const std::string developerOptIn, + const std::vector<std::string> eglFeatures, const int rulesFd, const long rulesOffset, const long rulesLength) { if (mUseAngle != UNKNOWN) { // We've already figured out an answer for this app, so just return. @@ -477,6 +476,8 @@ void GraphicsEnv::setAngleInfo(const std::string path, const std::string appName return; } + mAngleEglFeatures = std::move(eglFeatures); + ALOGV("setting ANGLE path to '%s'", path.c_str()); mAnglePath = path; ALOGV("setting ANGLE app name to '%s'", appName.c_str()); @@ -522,6 +523,10 @@ std::string& GraphicsEnv::getAngleAppName() { return mAngleAppName; } +const std::vector<std::string>& GraphicsEnv::getAngleEglFeatures() { + return mAngleEglFeatures; +} + const std::string& GraphicsEnv::getLayerPaths() { return mLayerPaths; } @@ -543,7 +548,7 @@ void GraphicsEnv::setDebugLayersGLES(const std::string layers) { } // Return true if all the required libraries from vndk and sphal namespace are -// linked to the Game Driver namespace correctly. +// linked to the updatable gfx driver namespace correctly. bool GraphicsEnv::linkDriverNamespaceLocked(android_namespace_t* vndkNamespace) { const std::string llndkLibraries = getSystemNativeLibraries(NativeLibrary::LLNDK); if (llndkLibraries.empty()) { @@ -653,8 +658,7 @@ android_namespace_t* GraphicsEnv::getAngleNamespace() { mAngleNamespace = android_create_namespace("ANGLE", nullptr, // ld_library_path mAnglePath.c_str(), // default_library_path - ANDROID_NAMESPACE_TYPE_SHARED | - ANDROID_NAMESPACE_TYPE_ISOLATED, + ANDROID_NAMESPACE_TYPE_SHARED_ISOLATED, nullptr, // permitted_when_isolated_path nullptr); |