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

Commit 6633eede authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Track input shaders java-side for heap tooling" into udc-dev am: 18396b26

parents 901d449a 18396b26
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.graphics;
import android.annotation.ColorInt;
import android.annotation.ColorLong;
import android.annotation.NonNull;
import android.util.ArrayMap;
import android.view.Window;

import libcore.util.NativeAllocationRegistry;
@@ -255,6 +256,12 @@ public class RuntimeShader extends Shader {
     */
    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.
     *
@@ -490,6 +497,7 @@ public class RuntimeShader extends Shader {
        if (shader == null) {
            throw new NullPointerException("The shader parameter must not be null");
        }
        mShaderUniforms.put(shaderName, shader);
        nativeUpdateShader(
                    mNativeInstanceRuntimeShaderBuilder, shaderName, shader.getNativeInstance());
        discardNativeInstance();
@@ -511,6 +519,7 @@ public class RuntimeShader extends Shader {
            throw new NullPointerException("The shader parameter must not be null");
        }

        mShaderUniforms.put(shaderName, shader);
        nativeUpdateShader(mNativeInstanceRuntimeShaderBuilder, shaderName,
                shader.getNativeInstanceWithDirectSampling());
        discardNativeInstance();