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

Commit a849ed59 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 d250d660 18396b26
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -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();