summaryrefslogtreecommitdiff
path: root/core/java/android/view/ViewFrameInfo.java
Commit message (Collapse)AuthorAgeFilesLines
* Use InputEventAssigner to assign input to frameSiarhei Vishniakou2021-03-041-25/+14
| | | | | | | | | | | | | | | | | | When a frame is determined to be caused by an input event, it will be labeled with a specific input event id. The newly added entity, InputEventAssigner, is responsible for determining which input event we should use. For regular ACTION_MOVE events, we will take the latest input event as the event that has caused the frame. For the initial gesture (ACTION_DOWN), we will use the first event (the ACTION_DOWN itself) to figure out the down latency. This will allow us to split up 'down' and 'scroll' latencies. Bug: 169866723 Test: looked at the data printed locally to logcat Test: atest InputTests Change-Id: I8513a36960e5d652d07655d1267e758d0c59ced7
* Add presentTime to FrameInfoSiarhei Vishniakou2021-02-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Present time is available to apps, but is not currently stored inside FrameInfo. In this CL, we add a location for storing the present time inside FrameInfo. Currently, the metrics reporter is triggered after the buffer is sent to SurfaceFlinger. That means, metrics for anything that happens after gpu draw completes are currently not available. In a future CL, we will populate the 'presentTime' field. In a future CL, we will register a metrics observer inside ViewRootImpl in order to send this data to InputDispatcher. This will enable end-to-end touch latency metrics collection. Bug: 169866723 Test: printed present time inside FrameTimeline.cpp (surfaceflinger side) and compared to the values printed inside a metrics observer registered in ViewRootImpl (not done in this CL) Test: atest ViewFrameInfoTest Change-Id: I7d0f8c5d7b5a2572abdc4e107123e8938a36f582
* Track per-window information in ViewFrameInfoSiarhei Vishniakou2020-12-011-0/+81
FrameInfo will now be per-window; that is, per-ViewRootImpl. Some of the information should remain “global” (it remain in Choreographer), while some information is going to become ViewRootImpl-specific. Before the information gets passed to the native layer, the ViewRootImpl-specific info will be stitched together with the general Choreographer info. This change is useful in order to correctly correlate frames with a specific input event. In the unlikely scenario of a user touching two windows of the same app simultaneously, this change will allow us to correctly measure the latency of both frames produced by the windows. Design doc: https://docs.google.com/document/d/1KMpMBlOxnl7zkWBCbXZZE6ZlaHEA4efYnN6WYK8n3FE/edit?resourcekey=0-eqooVNP0SskupljlTFvtOQ Test: atest ViewFrameInfoTest Bug: 169866723 Change-Id: Ib0bf9cd51cbcc0b9b70460c929c480eb490ec322