blob: 32d5efee93a160a8c9b31e83c3602bcf636f6748 [file] [log] [blame] [view]
<link rel="stylesheet" href="../style.css" />
[TOC]
# fuchsia.scenic.scheduling
<div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 7</span></div>
## **STRUCTS**
### FramePresentedInfo {#FramePresentedInfo data-text="FramePresentedInfo"}
*Defined in [fuchsia.scenic.scheduling/prediction_info.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.scenic.scheduling/prediction_info.fidl;l=55)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="FramePresentedInfo.actual_presentation_time">
<td><code>actual_presentation_time</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
</td>
<td><p>The time the frame was presented to the user. This value was captured
after the fact, differentiating it from the <code>presentation_time</code>s
included in <code>FuturePresentationTimes</code>.</p>
</td>
<td>No default</td>
</tr>
<tr id="FramePresentedInfo.presentation_infos">
<td><code>presentation_infos</code></td>
<td>
<code>vector&lt;<a class='link' href='#PresentReceivedInfo'>PresentReceivedInfo</a>&gt;[32]</code>
</td>
<td><p>The presentation informations for each Present2() that comprised the
content of this frame. These are ordered by present submission order.</p>
</td>
<td>No default</td>
</tr>
<tr id="FramePresentedInfo.num_presents_allowed">
<td><code>num_presents_allowed</code></td>
<td>
<code>uint64</code>
</td>
<td><p>The number of times remaining that the client can call <code>Present2</code>.</p>
</td>
<td>No default</td>
</tr>
</table>
### FuturePresentationTimes {#FuturePresentationTimes data-text="FuturePresentationTimes"}
*Defined in [fuchsia.scenic.scheduling/prediction_info.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.scenic.scheduling/prediction_info.fidl;l=37)*
<p>The data type returned in <code>fuchsia.ui.scenic::RequestPresentationTimes</code>. See
that method description for more information.</p>
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="FuturePresentationTimes.future_presentations">
<td><code>future_presentations</code></td>
<td>
<code>vector&lt;<a class='link' href='#PresentationInfo'>PresentationInfo</a>&gt;[8]</code>
</td>
<td><p>The future estimated presentation times. They represent the times Scenic
intends to let the client's work be presented over the next few frames.
These values may change after they are queried.</p>
<p>Clients who wish to minimize latency should use these values to schedule
their work accordingly.</p>
</td>
<td>No default</td>
</tr>
<tr id="FuturePresentationTimes.remaining_presents_in_flight_allowed">
<td><code>remaining_presents_in_flight_allowed</code></td>
<td>
<code>int64</code>
</td>
<td><p>The amount of Present() calls the client is currently allowed. If the
client calls Present() when this number is zero, the session will be
shut down.</p>
<p>This value is decremented every Present() call, and is incremented every
OnFramePresented() event.</p>
</td>
<td>No default</td>
</tr>
</table>
## **TABLES**
### PresentReceivedInfo {#PresentReceivedInfo data-text="PresentReceivedInfo"}
*Defined in [fuchsia.scenic.scheduling/prediction_info.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.scenic.scheduling/prediction_info.fidl;l=26)*
<p>The times we record for each Present2, expressed in nanoseconds in the
<code>CLOCK_MONOTONIC</code> timebase.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="PresentReceivedInfo.present_received_time">
<td><h3 id="PresentReceivedInfo.present_received_time" class="add-link hide-from-toc">1</h3></td>
<td><code>present_received_time</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
</td>
<td><p>The time Scenic receives the Present2 call.</p>
</td>
</tr>
<tr id="PresentReceivedInfo.latched_time">
<td><h3 id="PresentReceivedInfo.latched_time" class="add-link hide-from-toc">2</h3></td>
<td><code>latched_time</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
</td>
<td><p>The time Scenic latched the Present2 call to. This is guaranteed to be
greater than the <code>present_received_time</code>.</p>
</td>
</tr>
</table>
### PresentationInfo {#PresentationInfo data-text="PresentationInfo"}
*Defined in [fuchsia.scenic.scheduling/prediction_info.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.scenic.scheduling/prediction_info.fidl;l=11)*
<p>The times we predict for a future presentation, expressed in nanoseconds in
the <code>CLOCK_MONOTONIC</code> timebase.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="PresentationInfo.latch_point">
<td><h3 id="PresentationInfo.latch_point" class="add-link hide-from-toc">1</h3></td>
<td><code>latch_point</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
</td>
<td><p>The time where Scenic processes all pending updates to its scene graph
and render a new frame. Clients should aim to have all commands sent
and acquire fences reached in order to have their content be
presented at the corresponding <code>presentation_time</code>. The <code>latch_point</code>
is guaranteed to be less than <code>presentation_time</code>.</p>
</td>
</tr>
<tr id="PresentationInfo.presentation_time">
<td><h3 id="PresentationInfo.presentation_time" class="add-link hide-from-toc">2</h3></td>
<td><code>presentation_time</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
</td>
<td><p>The time in which the enqueued operations submitted before <code>latch_point</code>
take visible effect. This time is usually but not necessarily vsync.</p>
</td>
</tr>
</table>