Merge "Track input shaders java-side for heap tooling" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
18396b26dd
@@ -19,6 +19,7 @@ package android.graphics;
|
|||||||
import android.annotation.ColorInt;
|
import android.annotation.ColorInt;
|
||||||
import android.annotation.ColorLong;
|
import android.annotation.ColorLong;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
|
import android.util.ArrayMap;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
|
|
||||||
import libcore.util.NativeAllocationRegistry;
|
import libcore.util.NativeAllocationRegistry;
|
||||||
@@ -255,6 +256,12 @@ public class RuntimeShader extends Shader {
|
|||||||
*/
|
*/
|
||||||
private long mNativeInstanceRuntimeShaderBuilder;
|
private long mNativeInstanceRuntimeShaderBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For tracking GC usage. Keep a java-side reference for reachable objects to
|
||||||
|
* enable better heap tracking & tooling support
|
||||||
|
*/
|
||||||
|
private ArrayMap<String, Shader> mShaderUniforms = new ArrayMap<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new RuntimeShader.
|
* Creates a new RuntimeShader.
|
||||||
*
|
*
|
||||||
@@ -490,6 +497,7 @@ public class RuntimeShader extends Shader {
|
|||||||
if (shader == null) {
|
if (shader == null) {
|
||||||
throw new NullPointerException("The shader parameter must not be null");
|
throw new NullPointerException("The shader parameter must not be null");
|
||||||
}
|
}
|
||||||
|
mShaderUniforms.put(shaderName, shader);
|
||||||
nativeUpdateShader(
|
nativeUpdateShader(
|
||||||
mNativeInstanceRuntimeShaderBuilder, shaderName, shader.getNativeInstance());
|
mNativeInstanceRuntimeShaderBuilder, shaderName, shader.getNativeInstance());
|
||||||
discardNativeInstance();
|
discardNativeInstance();
|
||||||
@@ -511,6 +519,7 @@ public class RuntimeShader extends Shader {
|
|||||||
throw new NullPointerException("The shader parameter must not be null");
|
throw new NullPointerException("The shader parameter must not be null");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mShaderUniforms.put(shaderName, shader);
|
||||||
nativeUpdateShader(mNativeInstanceRuntimeShaderBuilder, shaderName,
|
nativeUpdateShader(mNativeInstanceRuntimeShaderBuilder, shaderName,
|
||||||
shader.getNativeInstanceWithDirectSampling());
|
shader.getNativeInstanceWithDirectSampling());
|
||||||
discardNativeInstance();
|
discardNativeInstance();
|
||||||
|
|||||||
Reference in New Issue
Block a user