fix(render): schedule frames on unique vsync slots - #67
Conversation
|
Warning Review limit reached
Next review available in: 42 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthrough该变更将 PTS 呈现调度改为基于显式 VSync 时序和槽位容量进行计划,新增队列状态与重定锚处理,并让宿主渲染路径记录相关统计;测试覆盖新的多刷新率和异常时序行为。 Changes精确呈现调度
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
ddb3938
into
codex/observe-presentation-pacing
* fix(stats): improve presentation pacing observability * fix(stats): bound presentation rate window * fix(render): schedule frames on unique vsync slots (#67) * fix(render): schedule frames on unique vsync slots * fix(render): preserve late-frame rebuffer threshold
改了啥呀
RenderOutputBufferAtTime,避免并发回调颠倒提交顺序queueFull/waitDrain观测以及 60/90/120 Hz、119.88 NTSC 测试为啥要改
以前
CATCH_UP会在 Surface 里已有未来帧时生成更早的目标时间。Surface 又不能倒车,于是这些杂鱼式倒退时间戳会变成同槽覆盖、排队和粘滞。现在只在已提交槽位排空后重锚,不扩大原有节拍余量。这是基于 #66 的堆叠 PR;#66 继续保持纯观测,方便分别 review。
验证
presentation_scheduler_test(含 120 Hz 三帧突发、排空重锚、119.88 NTSC)presentation_observability_testnpm run checknode hvigorw.js assembleApp --mode project -p product=default -p buildMode=debug --no-daemon --stacktraceSummary by CodeRabbit
改进
测试