Loading graphics/java/android/renderscript/RenderScript.java +3 −6 Original line number Diff line number Diff line Loading @@ -402,9 +402,9 @@ public class RenderScript { synchronized void nScriptCSetScript(byte[] script, int offset, int length) { rsnScriptCSetScript(mContext, script, offset, length); } native int rsnScriptCCreate(int con); synchronized int nScriptCCreate() { return rsnScriptCCreate(mContext); native int rsnScriptCCreate(int con, String val); synchronized int nScriptCCreate(String val) { return rsnScriptCCreate(mContext, val); } native void rsnSamplerBegin(int con); Loading Loading @@ -814,6 +814,3 @@ public class RenderScript { return 0; } } graphics/java/android/renderscript/ScriptC.java +2 −2 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ public class ScriptC extends Script { rs.nScriptCBegin(); rs.nScriptCSetScript(pgm, 0, pgmLength); return rs.nScriptCCreate(); Log.v(TAG, "Create script for resource = " + resources.getResourceName(resourceID)); return rs.nScriptCCreate(resources.getResourceName(resourceID)); } } graphics/jni/android_renderscript_RenderScript.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -954,10 +954,11 @@ exit: } static jint nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con) nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring resName) { LOG_API("nScriptCCreate, con(%p)", con); return (jint)rsScriptCCreate(con); const char* resNameUTF = _env->GetStringUTFChars(resName, NULL); return (jint)rsScriptCCreate(con, resNameUTF); } // --------------------------------------------------------------------------- Loading Loading @@ -1346,7 +1347,7 @@ static JNINativeMethod methods[] = { {"rsnScriptCBegin", "(I)V", (void*)nScriptCBegin }, {"rsnScriptCSetScript", "(I[BII)V", (void*)nScriptCSetScript }, {"rsnScriptCCreate", "(I)I", (void*)nScriptCCreate }, {"rsnScriptCCreate", "(ILjava/lang/String;)I", (void*)nScriptCCreate }, {"rsnProgramStoreBegin", "(III)V", (void*)nProgramStoreBegin }, {"rsnProgramStoreDepthFunc", "(II)V", (void*)nProgramStoreDepthFunc }, Loading libs/rs/rs.spec +1 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,7 @@ ScriptCSetText { } ScriptCCreate { param const char * resName ret RsScript } Loading libs/rs/rsScriptC.cpp +18 −7 Original line number Diff line number Diff line Loading @@ -396,15 +396,25 @@ static BCCvoid* symbolLookup(BCCvoid* pContext, const BCCchar* name) { extern const char rs_runtime_lib_bc[]; extern unsigned rs_runtime_lib_bc_size; void ScriptCState::runCompiler(Context *rsc, ScriptC *s) { void ScriptCState::runCompiler(Context *rsc, ScriptC *s, const char *resName) { { StopWatch compileTimer("RenderScript compile time"); s->mBccScript = bccCreateScript(); s->mEnviroment.mIsThreadable = true; bccScriptBitcode(s->mBccScript, s->mEnviroment.mScriptText, s->mEnviroment.mScriptTextLength); //bccLinkBitcode(s->mBccScript, rs_runtime_lib_bc, rs_runtime_lib_bc_size); bccRegisterSymbolCallback(s->mBccScript, symbolLookup, s); bccCompileScript(s->mBccScript); // bccReadBC() reads in the BitCode, if no cache file corresponding to // the resName is found. Otherwise, bccReadBC() returns a negative value // and the "else" branch will be taken. if (bccReadBC(s->mBccScript, s->mEnviroment.mScriptText, s->mEnviroment.mScriptTextLength, resName) >= 0) { //bccLinkBC(s->mBccScript, rs_runtime_lib_bc, rs_runtime_lib_bc_size); bccCompileBC(s->mBccScript); } else { // bccReadBC returns a neagative value: Didn't read any script, // So, use cached binary instead bccLoadBinary(s->mBccScript); } bccGetScriptLabel(s->mBccScript, "root", (BCCvoid**) &s->mProgram.mRoot); bccGetScriptLabel(s->mBccScript, "init", (BCCvoid**) &s->mProgram.mInit); } Loading Loading @@ -518,14 +528,15 @@ void rsi_ScriptCSetText(Context *rsc, const char *text, uint32_t len) { ss->mScript->mEnviroment.mScriptTextLength = len; } RsScript rsi_ScriptCCreate(Context * rsc) { RsScript rsi_ScriptCCreate(Context * rsc, const char *resName) { ScriptCState *ss = &rsc->mScriptC; ObjectBaseRef<ScriptC> s(ss->mScript); ss->mScript.clear(); s->incUserRef(); ss->runCompiler(rsc, s.get()); ss->runCompiler(rsc, s.get(), resName); ss->clear(rsc); return s.get(); } Loading Loading
graphics/java/android/renderscript/RenderScript.java +3 −6 Original line number Diff line number Diff line Loading @@ -402,9 +402,9 @@ public class RenderScript { synchronized void nScriptCSetScript(byte[] script, int offset, int length) { rsnScriptCSetScript(mContext, script, offset, length); } native int rsnScriptCCreate(int con); synchronized int nScriptCCreate() { return rsnScriptCCreate(mContext); native int rsnScriptCCreate(int con, String val); synchronized int nScriptCCreate(String val) { return rsnScriptCCreate(mContext, val); } native void rsnSamplerBegin(int con); Loading Loading @@ -814,6 +814,3 @@ public class RenderScript { return 0; } }
graphics/java/android/renderscript/ScriptC.java +2 −2 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ public class ScriptC extends Script { rs.nScriptCBegin(); rs.nScriptCSetScript(pgm, 0, pgmLength); return rs.nScriptCCreate(); Log.v(TAG, "Create script for resource = " + resources.getResourceName(resourceID)); return rs.nScriptCCreate(resources.getResourceName(resourceID)); } }
graphics/jni/android_renderscript_RenderScript.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -954,10 +954,11 @@ exit: } static jint nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con) nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring resName) { LOG_API("nScriptCCreate, con(%p)", con); return (jint)rsScriptCCreate(con); const char* resNameUTF = _env->GetStringUTFChars(resName, NULL); return (jint)rsScriptCCreate(con, resNameUTF); } // --------------------------------------------------------------------------- Loading Loading @@ -1346,7 +1347,7 @@ static JNINativeMethod methods[] = { {"rsnScriptCBegin", "(I)V", (void*)nScriptCBegin }, {"rsnScriptCSetScript", "(I[BII)V", (void*)nScriptCSetScript }, {"rsnScriptCCreate", "(I)I", (void*)nScriptCCreate }, {"rsnScriptCCreate", "(ILjava/lang/String;)I", (void*)nScriptCCreate }, {"rsnProgramStoreBegin", "(III)V", (void*)nProgramStoreBegin }, {"rsnProgramStoreDepthFunc", "(II)V", (void*)nProgramStoreDepthFunc }, Loading
libs/rs/rs.spec +1 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,7 @@ ScriptCSetText { } ScriptCCreate { param const char * resName ret RsScript } Loading
libs/rs/rsScriptC.cpp +18 −7 Original line number Diff line number Diff line Loading @@ -396,15 +396,25 @@ static BCCvoid* symbolLookup(BCCvoid* pContext, const BCCchar* name) { extern const char rs_runtime_lib_bc[]; extern unsigned rs_runtime_lib_bc_size; void ScriptCState::runCompiler(Context *rsc, ScriptC *s) { void ScriptCState::runCompiler(Context *rsc, ScriptC *s, const char *resName) { { StopWatch compileTimer("RenderScript compile time"); s->mBccScript = bccCreateScript(); s->mEnviroment.mIsThreadable = true; bccScriptBitcode(s->mBccScript, s->mEnviroment.mScriptText, s->mEnviroment.mScriptTextLength); //bccLinkBitcode(s->mBccScript, rs_runtime_lib_bc, rs_runtime_lib_bc_size); bccRegisterSymbolCallback(s->mBccScript, symbolLookup, s); bccCompileScript(s->mBccScript); // bccReadBC() reads in the BitCode, if no cache file corresponding to // the resName is found. Otherwise, bccReadBC() returns a negative value // and the "else" branch will be taken. if (bccReadBC(s->mBccScript, s->mEnviroment.mScriptText, s->mEnviroment.mScriptTextLength, resName) >= 0) { //bccLinkBC(s->mBccScript, rs_runtime_lib_bc, rs_runtime_lib_bc_size); bccCompileBC(s->mBccScript); } else { // bccReadBC returns a neagative value: Didn't read any script, // So, use cached binary instead bccLoadBinary(s->mBccScript); } bccGetScriptLabel(s->mBccScript, "root", (BCCvoid**) &s->mProgram.mRoot); bccGetScriptLabel(s->mBccScript, "init", (BCCvoid**) &s->mProgram.mInit); } Loading Loading @@ -518,14 +528,15 @@ void rsi_ScriptCSetText(Context *rsc, const char *text, uint32_t len) { ss->mScript->mEnviroment.mScriptTextLength = len; } RsScript rsi_ScriptCCreate(Context * rsc) { RsScript rsi_ScriptCCreate(Context * rsc, const char *resName) { ScriptCState *ss = &rsc->mScriptC; ObjectBaseRef<ScriptC> s(ss->mScript); ss->mScript.clear(); s->incUserRef(); ss->runCompiler(rsc, s.get()); ss->runCompiler(rsc, s.get(), resName); ss->clear(rsc); return s.get(); } Loading