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

Commit 0997908c authored by Dimitry Ivanov's avatar Dimitry Ivanov Committed by Jesse Hall
Browse files

Move Vulkan layer path setup to ApplicationLoaders

ThreadedRenderer was never the right place for this anyway, and
ApplicationLoaders can provide both the full library search path (not
just the extracted native library dir) as well as the application loader
namespace.

Bug: 28213888
Change-Id: Ibcc0a9178da4dba6f3f3105932fdac1a1d0261af
parent 01a89beb
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -5205,10 +5205,6 @@ public final class ActivityThread {
            } else {
                Log.e(TAG, "Unable to setupGraphicsSupport due to missing code-cache directory");
            }

            // Add the lib dir path to hardware renderer so that vulkan layers
            // can be searched for within that directory.
            ThreadedRenderer.setLibDir(data.info.getLibDir());
        }

        // Install the Network Security Config Provider. This must happen before the application
+4 −0
Original line number Diff line number Diff line
@@ -65,6 +65,8 @@ class ApplicationLoaders {

                Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);

                setupVulkanLayerPath(pathClassloader, librarySearchPath);

                mLoaders.put(zip, pathClassloader);
                return pathClassloader;
            }
@@ -76,6 +78,8 @@ class ApplicationLoaders {
        }
    }

    private static native void setupVulkanLayerPath(ClassLoader classLoader, String librarySearchPath);

    /**
     * Adds a new path the classpath of the given loader.
     * @throws IllegalStateException if the provided class loader is not a {@link PathClassLoader}.
+0 −12
Original line number Diff line number Diff line
@@ -251,17 +251,6 @@ public final class ThreadedRenderer {
        ThreadedRenderer.setupShadersDiskCache(new File(cacheDir, CACHE_PATH_SHADERS).getAbsolutePath());
    }

    /**
     * Sets the library directory to use as a search path for vulkan layers.
     *
     * @param libDir A directory that contains vulkan layers
     *
     * @hide
     */
    public static void setLibDir(String libDir) {
        ThreadedRenderer.setupVulkanLayerPath(libDir);
    }

    /**
     * Creates a hardware renderer using OpenGL.
     *
@@ -980,7 +969,6 @@ public final class ThreadedRenderer {
    }

    static native void setupShadersDiskCache(String cacheFile);
    static native void setupVulkanLayerPath(String layerPath);

    private static native void nSetAtlas(long nativeProxy, GraphicBuffer buffer, long[] map);
    private static native void nSetProcessStatsBuffer(long nativeProxy, int fd);
+1 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ LOCAL_SRC_FILES:= \
    com_google_android_gles_jni_EGLImpl.cpp \
    com_google_android_gles_jni_GLImpl.cpp.arm \
    android_app_Activity.cpp \
    android_app_ApplicationLoaders.cpp \
    android_app_NativeActivity.cpp \
    android_app_admin_SecurityLog.cpp \
    android_opengl_EGL14.cpp \
+2 −0
Original line number Diff line number Diff line
@@ -181,6 +181,7 @@ extern int register_android_backup_BackupHelperDispatcher(JNIEnv *env);
extern int register_android_app_backup_FullBackup(JNIEnv *env);
extern int register_android_app_Activity(JNIEnv *env);
extern int register_android_app_ActivityThread(JNIEnv *env);
extern int register_android_app_ApplicationLoaders(JNIEnv *env);
extern int register_android_app_NativeActivity(JNIEnv *env);
extern int register_android_media_RemoteDisplay(JNIEnv *env);
extern int register_android_util_jar_StrictJarFile(JNIEnv* env);
@@ -1389,6 +1390,7 @@ static const RegJNIRec gRegJNI[] = {
    REG_JNI(register_android_app_backup_FullBackup),
    REG_JNI(register_android_app_Activity),
    REG_JNI(register_android_app_ActivityThread),
    REG_JNI(register_android_app_ApplicationLoaders),
    REG_JNI(register_android_app_NativeActivity),
    REG_JNI(register_android_util_jar_StrictJarFile),
    REG_JNI(register_android_view_InputChannel),
Loading