[client/idd/obs] scheduler: isolate timing owner delivery

This commit is contained in:
Geoffrey McRae
2026-08-05 14:58:21 +10:00
parent 0b9b805530
commit c7ed04412e
21 changed files with 1572 additions and 362 deletions

View File

@@ -31,6 +31,7 @@ typedef struct LGFrameScheduler
bool supported;
bool active;
bool resetPending;
bool immediatePending;
bool feedbackDirty;
uint32_t clientID;
uint32_t generation;
@@ -39,10 +40,12 @@ typedef struct LGFrameScheduler
int64_t phaseError;
uint32_t feedbackFrameSerial;
uint32_t feedbackScheduleEpoch;
unsigned feedbackSamples;
uint32_t readyFrameSerial;
uint32_t readyGeneration;
uint32_t readyScheduleEpoch;
uint64_t readyTime;
}
LGFrameScheduler;
@@ -51,10 +54,13 @@ void lgFrameSchedulerInit(LGFrameScheduler * scheduler, bool supported,
uint32_t clientID);
void lgFrameSchedulerSetPeriod(LGFrameScheduler * scheduler,
uint64_t period);
void lgFrameSchedulerRequestImmediate(LGFrameScheduler * scheduler);
void lgFrameSchedulerObserveFrame(LGFrameScheduler * scheduler,
uint32_t frameSerial, uint32_t generation, uint64_t readyTime);
uint32_t frameSerial, uint32_t generation, uint32_t scheduleEpoch,
uint64_t readyTime);
void lgFrameSchedulerFeedback(LGFrameScheduler * scheduler,
uint32_t frameSerial, uint32_t generation, uint64_t neededTime);
uint32_t frameSerial, uint32_t generation, uint32_t scheduleEpoch,
uint64_t tickTime);
void lgFrameSchedulerUpdate(LGFrameScheduler * scheduler,
PLGMPClientQueue queue, uint64_t now);