Skip to main content

execute_deferred

Function execute_deferred 

Source
pub fn execute_deferred<H: Hal>(
    ctx: &mut H::Context,
    surface: &mut H::Texture,
    recording: &Recording,
    images: &[&H::Texture],
) -> Result<(H::Fence, Transient<H>)>
where H::Context: HalContext<Hal = H>,
Expand description

Render a recording’s layers, then submit its root without waiting.

The shape a display path needs. Everything but the root is a prerequisite of it rather than part of the frame’s pacing, so those go through the waiting submission and are ordered before the root by having finished; only the root produces a fence, because the fence is what a page flip is gated on and the root is the pass that fills the image being flipped.

Both halves of the return travel together until the fence retires: the layer targets are what the submission is still sampling. Handing them back rather than hiding them is deliberate — a caller that owns the fence is the only one that knows when it retires.