Describe the bug
A BeginFrame render can hang during initialization at 60fps and other high frame rates.
Warmup advances Chrome in fixed 33ms steps, but the timestamps used after warmup are calculated from the output fps. At 60fps this makes Chrome time jump backwards:
- last warmup tick: 1947ms
- init commit tick: about 1067ms
- liveness probe tick: about 1083ms
- frame zero: about 1167ms
HeadlessExperimental.beginFrame can stall after receiving that sequence.
Reproduction
Run a 60fps render on the BeginFrame path with locked warmup enabled. The timestamp calculation on current main produces the sequence above.
A regression test and the fix are included in #3011.
Expected behavior
The init commit, liveness probe, and first captured frame should all use timestamps later than the final warmup tick.
Actual behavior
The first post-warmup timestamp jumps back by roughly 880ms at 60fps, and the BeginFrame call may never complete.
Environment
Current main at 8e41fa17b985b24cb3b4719e553481a583124b68. The affected path is Linux/headless-shell BeginFrame capture.
Describe the bug
A BeginFrame render can hang during initialization at 60fps and other high frame rates.
Warmup advances Chrome in fixed 33ms steps, but the timestamps used after warmup are calculated from the output fps. At 60fps this makes Chrome time jump backwards:
HeadlessExperimental.beginFramecan stall after receiving that sequence.Reproduction
Run a 60fps render on the BeginFrame path with locked warmup enabled. The timestamp calculation on current
mainproduces the sequence above.A regression test and the fix are included in #3011.
Expected behavior
The init commit, liveness probe, and first captured frame should all use timestamps later than the final warmup tick.
Actual behavior
The first post-warmup timestamp jumps back by roughly 880ms at 60fps, and the BeginFrame call may never complete.
Environment
Current
mainat8e41fa17b985b24cb3b4719e553481a583124b68. The affected path is Linux/headless-shell BeginFrame capture.