Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37679589 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Clean up ANGLE integration logic." into main

parents cad3cea1 724a54b7
Loading
Loading
Loading
Loading
+11 −12
Original line number Diff line number Diff line
@@ -123,6 +123,7 @@ public class GraphicsEnvironment {

    private int mAngleOptInIndex = -1;
    private boolean mEnabledByGameMode = false;
    private boolean mShouldUseAngle = false;

    /**
     * Set up GraphicsEnvironment
@@ -141,19 +142,16 @@ public class GraphicsEnvironment {

        // Setup ANGLE and pass down ANGLE details to the C++ code
        Trace.traceBegin(Trace.TRACE_TAG_GRAPHICS, "setupAngle");
        boolean useAngle = false;
        if (setupAngle(context, coreSettings, pm, packageName)) {
            if (shouldUseAngle(context, coreSettings, packageName)) {
                useAngle = true;
            mShouldUseAngle = true;
            setGpuStats(ANGLE_DRIVER_NAME, ANGLE_DRIVER_VERSION_NAME, ANGLE_DRIVER_VERSION_CODE,
                    0, packageName, getVulkanVersion(pm));
        }
        }
        Trace.traceEnd(Trace.TRACE_TAG_GRAPHICS);

        Trace.traceBegin(Trace.TRACE_TAG_GRAPHICS, "chooseDriver");
        if (!chooseDriver(context, coreSettings, pm, packageName, appInfoWithMetaData)) {
            if (!useAngle) {
            if (!mShouldUseAngle) {
                setGpuStats(SYSTEM_DRIVER_NAME, SYSTEM_DRIVER_VERSION_NAME,
                        SYSTEM_DRIVER_VERSION_CODE,
                        SystemProperties.getLong(PROPERTY_GFX_DRIVER_BUILD_TIME, 0),
@@ -636,7 +634,10 @@ public class GraphicsEnvironment {
    }

    /**
     * Show the ANGLE in Use Dialog Box
     * Show the ANGLE in use dialog box.
     * The ANGLE in use dialog box will show up as long as the application
     * should use ANGLE. It does not mean the application has successfully
     * loaded ANGLE because this check happens before the loading completes.
     * @param context
     */
    public void showAngleInUseDialogBox(Context context) {
@@ -644,8 +645,7 @@ public class GraphicsEnvironment {
            return;
        }

        final String packageName = context.getPackageName();
        if (!getShouldUseAngle(packageName)) {
        if (!mShouldUseAngle) {
            return;
        }

@@ -890,9 +890,8 @@ public class GraphicsEnvironment {
    private static native void setDriverPathAndSphalLibraries(String path, String sphalLibraries);
    private static native void setGpuStats(String driverPackageName, String driverVersionName,
            long driverVersionCode, long driverBuildTime, String appPackageName, int vulkanVersion);
    private static native void setAngleInfo(String path, String appPackage,
    private static native void setAngleInfo(String path, String packageName,
            String devOptIn, String[] features);
    private static native boolean getShouldUseAngle(String packageName);
    private static native boolean setInjectLayersPrSetDumpable();
    private static native void nativeToggleAngleAsSystemDriver(boolean enabled);

+3 −10
Original line number Diff line number Diff line
@@ -49,10 +49,10 @@ void setGpuStats_native(JNIEnv* env, jobject clazz, jstring driverPackageName,
                                                    appPackageNameChars.c_str(), vulkanVersion);
}

void setAngleInfo_native(JNIEnv* env, jobject clazz, jstring path, jstring appName,
void setAngleInfo_native(JNIEnv* env, jobject clazz, jstring path, jstring packageName,
                         jstring devOptIn, jobjectArray featuresObj) {
    ScopedUtfChars pathChars(env, path);
    ScopedUtfChars appNameChars(env, appName);
    ScopedUtfChars packageNameChars(env, packageName);
    ScopedUtfChars devOptInChars(env, devOptIn);

    std::vector<std::string> features;
@@ -73,15 +73,10 @@ void setAngleInfo_native(JNIEnv* env, jobject clazz, jstring path, jstring appNa
        }
    }

    android::GraphicsEnv::getInstance().setAngleInfo(pathChars.c_str(), appNameChars.c_str(),
    android::GraphicsEnv::getInstance().setAngleInfo(pathChars.c_str(), packageNameChars.c_str(),
                                                     devOptInChars.c_str(), features);
}

bool shouldUseAngle_native(JNIEnv* env, jobject clazz, jstring appName) {
    ScopedUtfChars appNameChars(env, appName);
    return android::GraphicsEnv::getInstance().shouldUseAngle(appNameChars.c_str());
}

void setLayerPaths_native(JNIEnv* env, jobject clazz, jobject classLoader, jstring layerPaths) {
    android::NativeLoaderNamespace* appNamespace = android::FindNativeLoaderNamespaceByClassLoader(
        env, classLoader);
@@ -126,8 +121,6 @@ const JNINativeMethod g_methods[] = {
        {"setAngleInfo",
         "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V",
         reinterpret_cast<void*>(setAngleInfo_native)},
        {"getShouldUseAngle", "(Ljava/lang/String;)Z",
         reinterpret_cast<void*>(shouldUseAngle_native)},
        {"setLayerPaths", "(Ljava/lang/ClassLoader;Ljava/lang/String;)V",
         reinterpret_cast<void*>(setLayerPaths_native)},
        {"setDebugLayers", "(Ljava/lang/String;)V", reinterpret_cast<void*>(setDebugLayers_native)},