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

Commit c45e177e authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Clean up ANGLE integration logic." into main am: 37679589

parents 02070b6d 37679589
Loading
Loading
Loading
Loading
+11 −12
Original line number Original line Diff line number Diff line
@@ -123,6 +123,7 @@ public class GraphicsEnvironment {


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


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


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


        Trace.traceBegin(Trace.TRACE_TAG_GRAPHICS, "chooseDriver");
        Trace.traceBegin(Trace.TRACE_TAG_GRAPHICS, "chooseDriver");
        if (!chooseDriver(context, coreSettings, pm, packageName, appInfoWithMetaData)) {
        if (!chooseDriver(context, coreSettings, pm, packageName, appInfoWithMetaData)) {
            if (!useAngle) {
            if (!mShouldUseAngle) {
                setGpuStats(SYSTEM_DRIVER_NAME, SYSTEM_DRIVER_VERSION_NAME,
                setGpuStats(SYSTEM_DRIVER_NAME, SYSTEM_DRIVER_VERSION_NAME,
                        SYSTEM_DRIVER_VERSION_CODE,
                        SYSTEM_DRIVER_VERSION_CODE,
                        SystemProperties.getLong(PROPERTY_GFX_DRIVER_BUILD_TIME, 0),
                        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
     * @param context
     */
     */
    public void showAngleInUseDialogBox(Context context) {
    public void showAngleInUseDialogBox(Context context) {
@@ -644,8 +645,7 @@ public class GraphicsEnvironment {
            return;
            return;
        }
        }


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


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


+3 −10
Original line number Original line Diff line number Diff line
@@ -49,10 +49,10 @@ void setGpuStats_native(JNIEnv* env, jobject clazz, jstring driverPackageName,
                                                    appPackageNameChars.c_str(), vulkanVersion);
                                                    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) {
                         jstring devOptIn, jobjectArray featuresObj) {
    ScopedUtfChars pathChars(env, path);
    ScopedUtfChars pathChars(env, path);
    ScopedUtfChars appNameChars(env, appName);
    ScopedUtfChars packageNameChars(env, packageName);
    ScopedUtfChars devOptInChars(env, devOptIn);
    ScopedUtfChars devOptInChars(env, devOptIn);


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