From 17464dc4ca65657e02a51d43f13f47588f0fb77f Mon Sep 17 00:00:00 2001 From: Peiyong Lin Date: Thu, 13 Jul 2023 05:31:43 +0000 Subject: [Cherry-pick] Revert "Revert "Load native GLES driver when specified."" This reverts commit 1d6261388df9c5f6866bd4f2b296ad685c79badc. Reason for revert: Revert the revert to reland the patch. Original patch was reverted due to rss memory regression. Attempt to reland the patch with a fix, the original regression seems to be caused by usage of enum. Original commit message: """ Load native GLES driver when specified. Since ANGLE and native GLES drivers can coexist, when native is specified, the loader must load the native GLES drivers specified in ro.hardware.egl. This patch adds the support to load native GLES drivers when specified. Bug: b/283858001 Test: atest CtsAngleDeveloperOptionHostTest -c with ANGLE being default Test: atest CtsAngleDeveloperOptionHostTest -c with native being default """ Bug: b/283858001 Test: atest CtsAngleDeveloperOptionHostTest -c with ANGLE being default Test: atest CtsAngleDeveloperOptionHostTest -c with native being default Change-Id: I6a2e716d340d9be3610c31abbcbe7984bf472f9f Merged-In: I6a2e716d340d9be3610c31abbcbe7984bf472f9f --- libs/graphicsenv/GraphicsEnv.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'libs/graphicsenv/GraphicsEnv.cpp') diff --git a/libs/graphicsenv/GraphicsEnv.cpp b/libs/graphicsenv/GraphicsEnv.cpp index 0a5416128e..ed5d5c1095 100644 --- a/libs/graphicsenv/GraphicsEnv.cpp +++ b/libs/graphicsenv/GraphicsEnv.cpp @@ -530,7 +530,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 eglFeatures) { if (mShouldUseAngle) { @@ -547,8 +551,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 (mAnglePath == "system") { + mShouldUseSystemAngle = true; + } + if (!mAnglePath.empty()) { + mShouldUseAngle = true; + } + mShouldUseNativeDriver = shouldUseNativeDriver; } std::string& GraphicsEnv::getPackageName() { @@ -625,6 +634,10 @@ bool GraphicsEnv::shouldUseSystemAngle() { return mShouldUseSystemAngle; } +bool GraphicsEnv::shouldUseNativeDriver() { + return mShouldUseNativeDriver; +} + /** * APIs for debuggable layers */ -- cgit v1.2.3-59-g8ed1b