| commit | 5aa30be1c87f7cc89d1dcb7a53a9513d2809425a | [log] [tgz] |
|---|---|---|
| author | Josh Gargus <jjosh@fuchsia.infra.roller.google.com> | Wed May 07 14:43:58 2025 -0700 |
| committer | Copybara-Service <copybara-worker@google.com> | Wed May 07 14:46:24 2025 -0700 |
| tree | 577b11ba1442764b1a37ea2992f4dd112972abd1 | |
| parent | 39526fd174b6da0907c7b17c1844e4b4ce8cc8da [diff] |
[roll] Roll fuchsia [scenic] Add trace flow for entire "client present" lifecycle.
Add a "scenic_session_present" flow which has 6 steps:
- `flatland_present` (on Flatland client thread)
- `Present` request is received from Flatland client
- `acquire_fences_signaled` (on Flatland client thread)
- all client `acquire` fences are signaled, so it is OK to incorporate
content into global scene graph
- `request_frame` (on main thread)
- schedules a wakeup time for Scenic to begin processing the frame
in order to be displayed by the target time
- `prepare_to_render` (on main thread)
- Scenic wakes up, and merges frame changes into the global scene
graph before rendering/presenting it
- `frame_presented` (on main thread)
- Frame was displayed on screen. Scenic is about to notify all
clients that requested a present for that frame
- `flatland_frame_presented` (on Flatland client thread)
- the client is about to notified that the content from a specific
`Present` request has been displayed
This covers the "life of a Flatland frame" in an intelligible way, and
provides a good basis for computing performance metrics, versus picking
"arbitrary" TRACE_DURATION events.
Note: this flow uses the new TRACE_INSTAFLOW_* macros, which means that
you can search for the flow steps in Perfetto UI using
"scenic_session_present".
Original-Bug: 411466400
Original-Fixed: 414449400
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1255854
Original-Revision: 310d260cd314476a5e0d2c75e1bd8c3f8620adbb
GitOrigin-RevId: 5ccc311548f42fb75653e6c0e9444f2952327b7b
Change-Id: I456e75247bcddc5dfeaeee81e48b5e7d733eb7cd
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.