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

Commit eeca435d authored by Shih-wei Liao's avatar Shih-wei Liao
Browse files

Stale cache management to address a P1 bug # 3296131.

Change-Id: I593f35a91c4a14c055828f8989fe01b9e7790039
parent b70c82dc
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -417,9 +417,9 @@ public class RenderScript {
    synchronized void nScriptCSetScript(byte[] script, int offset, int length) {
    synchronized void nScriptCSetScript(byte[] script, int offset, int length) {
        rsnScriptCSetScript(mContext, script, offset, length);
        rsnScriptCSetScript(mContext, script, offset, length);
    }
    }
    native int  rsnScriptCCreate(int con, String val, String cacheDir);
    native int  rsnScriptCCreate(int con, String packageName, String resName, String cacheDir);
    synchronized int nScriptCCreate(String resName, String cacheDir) {
    synchronized int nScriptCCreate(String packageName, String resName, String cacheDir) {
      return rsnScriptCCreate(mContext, resName, cacheDir);
        return rsnScriptCCreate(mContext, packageName, resName, cacheDir);
    }
    }


    native void rsnSamplerBegin(int con);
    native void rsnSamplerBegin(int con);
+8 −2
Original line number Original line Diff line number Diff line
@@ -77,8 +77,14 @@ public class ScriptC extends Script {


        rs.nScriptCBegin();
        rs.nScriptCBegin();
        rs.nScriptCSetScript(pgm, 0, pgmLength);
        rs.nScriptCSetScript(pgm, 0, pgmLength);
        Log.v(TAG, "Create script for resource = " + resources.getResourceName(resourceID));

        // E.g, /system/apps/Fountain.apk
        String packageName = rs.getApplicationContext().getPackageResourcePath();
        // For res/raw/fountain.bc, it wil be /com.android.fountain:raw/fountain
        String resName = resources.getResourceName(resourceID);
        String cacheDir = rs.getApplicationContext().getCacheDir().toString();
        String cacheDir = rs.getApplicationContext().getCacheDir().toString();
        return rs.nScriptCCreate(resources.getResourceName(resourceID), cacheDir);

        Log.v(TAG, "Create script for resource = " + resName);
        return rs.nScriptCCreate(packageName, resName, cacheDir);
    }
    }
}
}
+5 −3
Original line number Original line Diff line number Diff line
@@ -902,12 +902,14 @@ exit:
}
}


static jint
static jint
nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring resName, jstring cacheDir)
nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring packageName, jstring resName, jstring cacheDir)
{
{
    LOG_API("nScriptCCreate, con(%p)", con);
    LOG_API("nScriptCCreate, con(%p)", con);
    const char* packageNameUTF = _env->GetStringUTFChars(packageName, NULL);
    const char* resNameUTF = _env->GetStringUTFChars(resName, NULL);
    const char* resNameUTF = _env->GetStringUTFChars(resName, NULL);
    const char* cacheDirUTF = _env->GetStringUTFChars(cacheDir, NULL);
    const char* cacheDirUTF = _env->GetStringUTFChars(cacheDir, NULL);
    jint i = (jint)rsScriptCCreate(con, resNameUTF, cacheDirUTF);
    jint i = (jint)rsScriptCCreate(con, packageNameUTF, resNameUTF, cacheDirUTF);
    _env->ReleaseStringUTFChars(packageName, packageNameUTF);
    _env->ReleaseStringUTFChars(resName, resNameUTF);
    _env->ReleaseStringUTFChars(resName, resNameUTF);
    _env->ReleaseStringUTFChars(cacheDir, cacheDirUTF);
    _env->ReleaseStringUTFChars(cacheDir, cacheDirUTF);
    return i;
    return i;
@@ -1301,7 +1303,7 @@ static JNINativeMethod methods[] = {


{"rsnScriptCBegin",                  "(I)V",                                  (void*)nScriptCBegin },
{"rsnScriptCBegin",                  "(I)V",                                  (void*)nScriptCBegin },
{"rsnScriptCSetScript",              "(I[BII)V",                              (void*)nScriptCSetScript },
{"rsnScriptCSetScript",              "(I[BII)V",                              (void*)nScriptCSetScript },
{"rsnScriptCCreate",                 "(ILjava/lang/String;Ljava/lang/String;)I",  (void*)nScriptCCreate },
{"rsnScriptCCreate",                 "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I",  (void*)nScriptCCreate },


{"rsnProgramStoreBegin",             "(III)V",                                (void*)nProgramStoreBegin },
{"rsnProgramStoreBegin",             "(III)V",                                (void*)nProgramStoreBegin },
{"rsnProgramStoreDepthFunc",         "(II)V",                                 (void*)nProgramStoreDepthFunc },
{"rsnProgramStoreDepthFunc",         "(II)V",                                 (void*)nProgramStoreDepthFunc },
+3 −3
Original line number Original line Diff line number Diff line
@@ -113,11 +113,11 @@ LOCAL_SRC_FILES:= \
	rsVertexArray.cpp
	rsVertexArray.cpp




LOCAL_SHARED_LIBRARIES += libcutils libutils libEGL libGLESv1_CM libGLESv2 libui libbcc
LOCAL_SHARED_LIBRARIES += libz libcutils libutils libEGL libGLESv1_CM libGLESv2 libui libbcc


LOCAL_STATIC_LIBRARIES := libft2 librslib_rt
LOCAL_STATIC_LIBRARIES := libdex libft2 librslib_rt


LOCAL_C_INCLUDES += external/freetype/include
LOCAL_C_INCLUDES += external/freetype/include external/zlib dalvik


LOCAL_LDLIBS := -lpthread -ldl
LOCAL_LDLIBS := -lpthread -ldl
LOCAL_MODULE:= libRS
LOCAL_MODULE:= libRS
+1 −0
Original line number Original line Diff line number Diff line
@@ -321,6 +321,7 @@ ScriptCSetText {
	}
	}


ScriptCCreate {
ScriptCCreate {
        param const char * packageName
        param const char * resName
        param const char * resName
        param const char * cacheDir
        param const char * cacheDir
	ret RsScript
	ret RsScript
Loading