Merge "Correctly init code cache path for RS"
This commit is contained in:
@@ -1386,6 +1386,27 @@ public class RenderScript {
|
|||||||
return mApplicationContext;
|
return mApplicationContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name of the file that holds the object cache.
|
||||||
|
*/
|
||||||
|
private static String mCachePath;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the path to the code cache.
|
||||||
|
*/
|
||||||
|
static synchronized String getCachePath() {
|
||||||
|
if (mCachePath == null) {
|
||||||
|
final String CACHE_PATH = "com.android.renderscript.cache";
|
||||||
|
if (RenderScriptCacheDir.mCacheDir == null) {
|
||||||
|
throw new RSRuntimeException("RenderScript code cache directory uninitialized.");
|
||||||
|
}
|
||||||
|
File f = new File(RenderScriptCacheDir.mCacheDir, CACHE_PATH);
|
||||||
|
mCachePath = f.getAbsolutePath();
|
||||||
|
f.mkdirs();
|
||||||
|
}
|
||||||
|
return mCachePath;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a RenderScript context.
|
* Create a RenderScript context.
|
||||||
*
|
*
|
||||||
@@ -1415,11 +1436,7 @@ public class RenderScript {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// set up cache directory for entire context
|
// set up cache directory for entire context
|
||||||
final String CACHE_PATH = "com.android.renderscript.cache";
|
rs.nContextSetCacheDir(RenderScript.getCachePath());
|
||||||
File f = new File(RenderScriptCacheDir.mCacheDir, CACHE_PATH);
|
|
||||||
String mCachePath = f.getAbsolutePath();
|
|
||||||
f.mkdirs();
|
|
||||||
rs.nContextSetCacheDir(mCachePath);
|
|
||||||
|
|
||||||
rs.mMessageThread = new MessageThread(rs);
|
rs.mMessageThread = new MessageThread(rs);
|
||||||
rs.mMessageThread.start();
|
rs.mMessageThread.start();
|
||||||
|
|||||||
@@ -84,13 +84,6 @@ public class ScriptC extends Script {
|
|||||||
setID(id);
|
setID(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Name of the file that holds the object cache.
|
|
||||||
*/
|
|
||||||
private static final String CACHE_PATH = "com.android.renderscript.cache";
|
|
||||||
|
|
||||||
static String mCachePath;
|
|
||||||
|
|
||||||
private static synchronized long internalCreate(RenderScript rs, Resources resources, int resourceID) {
|
private static synchronized long internalCreate(RenderScript rs, Resources resources, int resourceID) {
|
||||||
byte[] pgm;
|
byte[] pgm;
|
||||||
int pgmLength;
|
int pgmLength;
|
||||||
@@ -122,26 +115,12 @@ public class ScriptC extends Script {
|
|||||||
|
|
||||||
String resName = resources.getResourceEntryName(resourceID);
|
String resName = resources.getResourceEntryName(resourceID);
|
||||||
|
|
||||||
// Create the RS cache path if we haven't done so already.
|
|
||||||
if (mCachePath == null) {
|
|
||||||
File f = new File(RenderScriptCacheDir.mCacheDir, CACHE_PATH);
|
|
||||||
mCachePath = f.getAbsolutePath();
|
|
||||||
f.mkdirs();
|
|
||||||
}
|
|
||||||
// Log.v(TAG, "Create script for resource = " + resName);
|
// Log.v(TAG, "Create script for resource = " + resName);
|
||||||
return rs.nScriptCCreate(resName, mCachePath, pgm, pgmLength);
|
return rs.nScriptCCreate(resName, RenderScript.getCachePath(), pgm, pgmLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static synchronized long internalStringCreate(RenderScript rs, String resName, byte[] bitcode) {
|
private static synchronized long internalStringCreate(RenderScript rs, String resName, byte[] bitcode) {
|
||||||
// Create the RS cache path if we haven't done so already.
|
|
||||||
if (mCachePath == null) {
|
|
||||||
File f = new File(RenderScriptCacheDir.mCacheDir, CACHE_PATH);
|
|
||||||
mCachePath = f.getAbsolutePath();
|
|
||||||
f.mkdirs();
|
|
||||||
}
|
|
||||||
// Log.v(TAG, "Create script for resource = " + resName);
|
// Log.v(TAG, "Create script for resource = " + resName);
|
||||||
return rs.nScriptCCreate(resName, mCachePath, bitcode, bitcode.length);
|
return rs.nScriptCCreate(resName, RenderScript.getCachePath(), bitcode, bitcode.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -396,7 +396,7 @@ public final class ScriptGroup extends BaseObj {
|
|||||||
for (int i = 0; i < closureIDs.length; i++) {
|
for (int i = 0; i < closureIDs.length; i++) {
|
||||||
closureIDs[i] = closures.get(i).getID(rs);
|
closureIDs[i] = closures.get(i).getID(rs);
|
||||||
}
|
}
|
||||||
long id = rs.nScriptGroup2Create(name, ScriptC.mCachePath, closureIDs);
|
long id = rs.nScriptGroup2Create(name, RenderScript.getCachePath(), closureIDs);
|
||||||
setID(id);
|
setID(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user