35 enum class MinimumTimeBudget :
int {
40 enum class MaximumTimeBudget :
int {
48 ::ll::TypedStorage<4, 4, uint> mTotalFrames;
49 ::ll::TypedStorage<4, 4, uint> mStarvedFrames;
50 ::ll::TypedStorage<4, 4, uint> mPromotionFrames;
51 ::ll::TypedStorage<4, 4, uint> mTargetFPS;
52 ::ll::TypedStorage<4, 4, uint> mEffectiveFPS;
53 ::ll::TypedStorage<4, 4, uint> mTotalRunCoroutines;
54 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mPredictedCoroutineDuration;
55 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mTotalCoroutineDuration;
56 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::WorkerPool>> mCoroutinePool;
57 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mNextStarveCheckTime;
58 ::ll::TypedStorage<4, 4, ::std::thread::id> mThreadID;
79 ::std::chrono::nanoseconds frameTimeSoFar,
80 ::Scheduler::MinimumTimeBudget ensureNonZeroRunTime,
81 ::Scheduler::MaximumTimeBudget limitMaxRunTime
84 MCNAPI
bool _runCoroutines(::std::chrono::nanoseconds timeCap, ::std::function<
bool()>
const& earlyExit);
87 ::std::chrono::nanoseconds timeSinceSwap,
88 ::Scheduler::MinimumTimeBudget ensureNonZeroRunTime,
89 ::Scheduler::MaximumTimeBudget limitMaxRunTime,
90 ::std::function<
bool()>
const& earlyExit
101 MCNAPI
void*
$ctor(::std::string name, uint FPS);
MCAPI::std::chrono::nanoseconds _calcBaseTimeBudget(uint forFps, ::std::chrono::nanoseconds frameTimeSoFar, ::Scheduler::MinimumTimeBudget ensureNonZeroRunTime, ::Scheduler::MaximumTimeBudget limitMaxRunTime)
MCAPI void processCoroutines(::std::chrono::nanoseconds timeSinceSwap, ::Scheduler::MinimumTimeBudget ensureNonZeroRunTime, ::Scheduler::MaximumTimeBudget limitMaxRunTime, ::std::function< bool()> const &earlyExit)