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

Commit 35be56cc authored by Yang Ni's avatar Yang Ni
Browse files

Add name to ScriptGroup2.Builder.create() method

This name will be used to name the .so file generated for the
script group with fused kernels.

Change-Id: I46e351c8412740512f56b7915b14f36183c6eeaf
parent 3afca74a
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -332,10 +332,12 @@ public class RenderScript {
      rsnClosureSetGlobal(mContext, closureID, fieldID, value, size);
    }

    native long rsnScriptGroup2Create(long con, String cachePath, long[] closures);
    synchronized long nScriptGroup2Create(String cachePath, long[] closures) {
    native long rsnScriptGroup2Create(long con, String name, String cachePath,
                                      long[] closures);
    synchronized long nScriptGroup2Create(String name, String cachePath,
                                          long[] closures) {
      validate();
      return rsnScriptGroup2Create(mContext, cachePath, closures);
      return rsnScriptGroup2Create(mContext, name, cachePath, closures);
    }

    native void rsnScriptGroup2Execute(long con, long groupID);
+5 −3
Original line number Diff line number Diff line
@@ -289,6 +289,7 @@ public class ScriptGroup2 extends BaseObj {
        }
    }

    String mName;
    List<Closure> mClosures;
    List<UnboundValue> mInputs;
    Future[] mOutputs;
@@ -299,9 +300,10 @@ public class ScriptGroup2 extends BaseObj {
        super(id, rs);
    }

    ScriptGroup2(RenderScript rs, List<Closure> closures,
    ScriptGroup2(RenderScript rs, String name, List<Closure> closures,
                 List<UnboundValue> inputs, Future[] outputs) {
        super(0, rs);
        mName = name;
        mClosures = closures;
        mInputs = inputs;
        mOutputs = outputs;
@@ -310,7 +312,7 @@ public class ScriptGroup2 extends BaseObj {
        for (int i = 0; i < closureIDs.length; i++) {
            closureIDs[i] = closures.get(i).getID(rs);
        }
        long id = rs.nScriptGroup2Create(ScriptC.mCachePath, closureIDs);
        long id = rs.nScriptGroup2Create(name, ScriptC.mCachePath, closureIDs);
        setID(id);
    }

@@ -417,7 +419,7 @@ public class ScriptGroup2 extends BaseObj {
                !name.equals(name.replaceAll("[^a-zA-Z0-9-]", "_"))) {
                throw new RSIllegalArgumentException("invalid script group name");
            }
            ScriptGroup2 ret = new ScriptGroup2(mRS, mClosures, mInputs, outputs);
            ScriptGroup2 ret = new ScriptGroup2(mRS, name, mClosures, mInputs, outputs);
            return ret;
        }

+5 −3
Original line number Diff line number Diff line
@@ -423,8 +423,9 @@ nClosureSetGlobal(JNIEnv *_env, jobject _this, jlong con, jlong closureID,
}

static long
nScriptGroup2Create(JNIEnv *_env, jobject _this, jlong con,
nScriptGroup2Create(JNIEnv *_env, jobject _this, jlong con, jstring name,
                    jstring cacheDir, jlongArray closureArray) {
  AutoJavaStringToUTF8 nameUTF(_env, name);
  AutoJavaStringToUTF8 cacheDirUTF(_env, cacheDir);

  jlong* jClosures = _env->GetLongArrayElements(closureArray, nullptr);
@@ -435,7 +436,8 @@ nScriptGroup2Create(JNIEnv *_env, jobject _this, jlong con,
  }

  return (jlong)(uintptr_t)rsScriptGroup2Create(
      (RsContext)con, cacheDirUTF.c_str(), cacheDirUTF.length(),
      (RsContext)con, nameUTF.c_str(), nameUTF.length(),
      cacheDirUTF.c_str(), cacheDirUTF.length(),
      closures, numClosures);
}

@@ -2414,7 +2416,7 @@ static JNINativeMethod methods[] = {
{"rsnScriptInvokeIDCreate",          "(JJI)J",                                (void*)nScriptInvokeIDCreate },
{"rsnScriptFieldIDCreate",           "(JJI)J",                                (void*)nScriptFieldIDCreate },
{"rsnScriptGroupCreate",             "(J[J[J[J[J[J)J",                        (void*)nScriptGroupCreate },
{"rsnScriptGroup2Create",            "(JLjava/lang/String;[J)J",               (void*)nScriptGroup2Create },
{"rsnScriptGroup2Create",            "(JLjava/lang/String;Ljava/lang/String;[J)J", (void*)nScriptGroup2Create },
{"rsnScriptGroupSetInput",           "(JJJJ)V",                               (void*)nScriptGroupSetInput },
{"rsnScriptGroupSetOutput",          "(JJJJ)V",                               (void*)nScriptGroupSetOutput },
{"rsnScriptGroupExecute",            "(JJ)V",                                 (void*)nScriptGroupExecute },