perf(compositor): account for late frame dispatch
Include observed timer dispatch delay in the render budget, capped at one refresh and decayed by elapsed time. Preserve the scheduled presentation target and output-local state. Existing scheduling assertions remain intact; a negative control verifies the new deadline regression.
This commit is contained in:
1 parent
f5fff6d930
commit
417f78aa94
4 files changed
+113
-16
No files matched your search
@@ -246,7 +246,7 @@ mod tests {
|
||||
scheduler.request(Duration::ZERO);
|
||||
let scheduled = scheduler.plan(Duration::ZERO).unwrap();
|
||||
assert_eq!(fallback.deadline(start, interval, true, true), None);
|
||||
let plan = scheduler.begin().unwrap();
|
||||
let plan = scheduler.begin(scheduled.render_at).unwrap();
|
||||
assert_eq!(plan, scheduled);
|
||||
scheduler.rendered(
|
||||
plan,
|
||||
@@ -297,7 +297,7 @@ mod tests {
|
||||
fallback.deadline(deadline, interval, needs_final_frame, true),
|
||||
None
|
||||
);
|
||||
scheduler.begin().unwrap();
|
||||
scheduler.begin(deadline.duration_since(start)).unwrap();
|
||||
assert!(!scheduler.has_pending_request());
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user