Loading core/java/android/view/ViewRootImpl.java +13 −9 Original line number Diff line number Diff line Loading @@ -1193,8 +1193,7 @@ public final class ViewRootImpl implements ViewParent, Looper.myLooper()); if (mAttachInfo.mThreadedRenderer != null) { InputMetricsListener listener = new InputMetricsListener(mInputEventReceiver); InputMetricsListener listener = new InputMetricsListener(); mHardwareRendererObserver = new HardwareRendererObserver( listener, listener.data, mHandler, true /*waitForPresentTime*/); mAttachInfo.mThreadedRenderer.addObserver(mHardwareRendererObserver); Loading Loading @@ -1390,6 +1389,9 @@ public final class ViewRootImpl implements ViewParent, if (mAttachInfo.mThreadedRenderer != null) { mAttachInfo.mHardwareAccelerated = mAttachInfo.mHardwareAccelerationRequested = true; if (mHardwareRendererObserver != null) { mAttachInfo.mThreadedRenderer.addObserver(mHardwareRendererObserver); } } } } Loading Loading @@ -8075,6 +8077,9 @@ public final class ViewRootImpl implements ViewParent, ThreadedRenderer hardwareRenderer = mAttachInfo.mThreadedRenderer; if (hardwareRenderer != null) { if (mHardwareRendererObserver != null) { hardwareRenderer.removeObserver(mHardwareRendererObserver); } if (mView != null) { hardwareRenderer.destroyHardwareResources(mView); } Loading Loading @@ -8576,18 +8581,12 @@ public final class ViewRootImpl implements ViewParent, super.dispose(); } } WindowInputEventReceiver mInputEventReceiver; private WindowInputEventReceiver mInputEventReceiver; final class InputMetricsListener implements HardwareRendererObserver.OnFrameMetricsAvailableListener { public long[] data = new long[FrameMetrics.Index.FRAME_STATS_COUNT]; private InputEventReceiver mReceiver; InputMetricsListener(InputEventReceiver receiver) { mReceiver = receiver; } @Override public void onFrameMetricsAvailable(int dropCountSinceLastInvocation) { final int inputEventId = (int) data[FrameMetrics.Index.INPUT_EVENT_ID]; Loading @@ -8600,6 +8599,11 @@ public final class ViewRootImpl implements ViewParent, // available, we cannot compute end-to-end input latency metrics. return; } final long gpuCompletedTime = data[FrameMetrics.Index.GPU_COMPLETED]; if (mInputEventReceiver == null) { return; } mInputEventReceiver.reportTimeline(inputEventId, gpuCompletedTime, presentTime); } } HardwareRendererObserver mHardwareRendererObserver; Loading Loading
core/java/android/view/ViewRootImpl.java +13 −9 Original line number Diff line number Diff line Loading @@ -1193,8 +1193,7 @@ public final class ViewRootImpl implements ViewParent, Looper.myLooper()); if (mAttachInfo.mThreadedRenderer != null) { InputMetricsListener listener = new InputMetricsListener(mInputEventReceiver); InputMetricsListener listener = new InputMetricsListener(); mHardwareRendererObserver = new HardwareRendererObserver( listener, listener.data, mHandler, true /*waitForPresentTime*/); mAttachInfo.mThreadedRenderer.addObserver(mHardwareRendererObserver); Loading Loading @@ -1390,6 +1389,9 @@ public final class ViewRootImpl implements ViewParent, if (mAttachInfo.mThreadedRenderer != null) { mAttachInfo.mHardwareAccelerated = mAttachInfo.mHardwareAccelerationRequested = true; if (mHardwareRendererObserver != null) { mAttachInfo.mThreadedRenderer.addObserver(mHardwareRendererObserver); } } } } Loading Loading @@ -8075,6 +8077,9 @@ public final class ViewRootImpl implements ViewParent, ThreadedRenderer hardwareRenderer = mAttachInfo.mThreadedRenderer; if (hardwareRenderer != null) { if (mHardwareRendererObserver != null) { hardwareRenderer.removeObserver(mHardwareRendererObserver); } if (mView != null) { hardwareRenderer.destroyHardwareResources(mView); } Loading Loading @@ -8576,18 +8581,12 @@ public final class ViewRootImpl implements ViewParent, super.dispose(); } } WindowInputEventReceiver mInputEventReceiver; private WindowInputEventReceiver mInputEventReceiver; final class InputMetricsListener implements HardwareRendererObserver.OnFrameMetricsAvailableListener { public long[] data = new long[FrameMetrics.Index.FRAME_STATS_COUNT]; private InputEventReceiver mReceiver; InputMetricsListener(InputEventReceiver receiver) { mReceiver = receiver; } @Override public void onFrameMetricsAvailable(int dropCountSinceLastInvocation) { final int inputEventId = (int) data[FrameMetrics.Index.INPUT_EVENT_ID]; Loading @@ -8600,6 +8599,11 @@ public final class ViewRootImpl implements ViewParent, // available, we cannot compute end-to-end input latency metrics. return; } final long gpuCompletedTime = data[FrameMetrics.Index.GPU_COMPLETED]; if (mInputEventReceiver == null) { return; } mInputEventReceiver.reportTimeline(inputEventId, gpuCompletedTime, presentTime); } } HardwareRendererObserver mHardwareRendererObserver; Loading