58 #ifndef STEAM_ENGINE_JOB_PLANNING_H 59 #define STEAM_ENGINE_JOB_PLANNING_H 104 FrameCnt
const& frameNr_;
109 , nominalTime_{nominalTime}
116 JobTicket& ticket() {
return jobTicket_; }
140 switch (timings.playbackUrgency)
146 case play::TIMEBOUND:
147 return doCalcDeadline (timings);
149 NOTREACHED (
"unexpected playbackUrgency");
164 UNIMPLEMENTED (
"Job planning logic to establish Leeway for scheduling");
200 : jobTicket_{prerequisite}
201 , nominalTime_{parent.nominalTime_}
202 , frameNr_{parent.frameNr_}
208 doCalcDeadline(
Timings const& timings)
214 - timings.outputLatency;
static const Time ANYTIME
border condition marker value. ANYTIME <= any time value
a mutable time value, behaving like a plain number, allowing copy and re-accessing ...
An (abstract) capability to send media data to an external output.
Basic set of definitions and includes commonly used together.
Execution plan to generate render jobs within a specific render process.
Job buildJob()
Connect and complete the planning information assembled thus far to create a frame job descriptor...
Time determineDeadline(Timings const &timings)
Calculate the latest time point when to start the job, so it can still possibly reach the timing goal...
Generic frame timing specification.
Types marked with this mix-in may be moved but not copied.
Steam-Layer implementation namespace root.
Time getTimeDue(FrameCnt frameOffset) const
real time deadline for the given frame, without any latency.
Lumiera's internal time value datatype.
JobPlanning * dependentPlan_
link to a dependent JobPlanning, for planning of prerequisites
Mix-Ins to allow or prohibit various degrees of copying and cloning.
JobPlanning(JobPlanning &parent, JobTicket &prerequisite)
Duration engineLatency
reasonable guess at the scheduling and dispatch-delay of the render engine
Definition of a render job.
How to define a timing specification or constraint.
View on the execution planning for a single calculation step.
Duration is the internal Lumiera time metric.
Individual frame rendering task, forwarding to a closure.
a family of time value like entities and their relationships.
auto transformIterator(IT const &src, FUN processingFunc)
Build a TransformIter: convenience free function shortcut, picking up the involved types automaticall...
auto buildDependencyPlanning()
Build a sequence of dependent JobPlanning scopes for all prerequisites of this current JobPlanning...
auto getPrerequisites()
Core operation: iterate over the prerequisites, required to carry out a render operation based on thi...
execution plan for pulling a specific exit node.
Duration getExpectedRuntime()
Core operation: guess expected runtime for rendering.
Job createJobFor(Time nominalTime)
Core operation: build a concrete render job based on this blueprint.
Duration determineLeeway(Timings const &)
Determine a timing buffer for flexibility to allow starting the job already before its deadline; espe...