commit | 77bd06ea19b5097a648165b6656457d7b4565a18 | [log] [tgz] |
---|---|---|
author | Evan Birenbaum <birenbaum@google.com> | Mon Oct 26 20:10:11 2020 +0000 |
committer | CQ Bot <commit-bot@chromium.org> | Mon Oct 26 20:10:11 2020 +0000 |
tree | e836fd0bafbcb7bb9da484db35f10a5ddefe17b4 | |
parent | d01ad0cd0bd23c1d00a71d12e8e3319447847523 [diff] |
[flatland] Flatland present tokens. Flatland uses a modified version of "Present2 semantics": instead of telling clients the total number of presents they have remaining in various places (the Present() callback, RequestPresentationTimes(), and OnFramePresented() callbacks all contain this value), Flatland tells clients they have additional presents through a single OnPresentTokensReturned() callback. The general flow is as follows: - Clients may only call Present() when they have at least one token. - Calling Present() decrements their token count by one. - The FrameScheduler will trigger increments of the token count when a Present() call is fully process for a Flatland instance. - Clients will receive additional tokens from the OnPresentTokensReturned() event, which is called as soon as a present is processed (even if the frame isn't rendered yet). - Clients may assume they start with one token, allowing a single present, primarily for setting up the parent link. This will have to be reconciled with the "old Present2 semantics". They return num_presents_allowed in the OnFramePresent() callback, which we still want to have in Flatland. Fixed: 57823 TEST=fx test -o flatland_unittests MULTIPLY: flatland_unittests (fuchsia): 30 Change-Id: I5bde8b292acacb58a90df9fa21a83f38b014a3f3 Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/438959 Commit-Queue: Evan Birenbaum <birenbaum@google.com> Reviewed-by: Adam Gousetis <adamgousetis@google.com> Reviewed-by: Mikael Pessa <mikaelpessa@google.com> API-Review: Adam Gousetis <adamgousetis@google.com> Testability-Review: Mikael Pessa <mikaelpessa@google.com>
Pink + Purple == Fuchsia (a new operating system)
Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.
Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.
Read more about Fuchsia's principles.
See Getting Started.
See fuchsia.dev.