-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Benchmark is failing on slow computers #23
Comments
Thanks for filing this, @yurydelendik ! See my analysis here: dart-lang/sdk#59666 (comment) |
A `_beginFrame()` seems to schedule the next frame interanally. If the `_beginFrame()` takes a long time, it will finish after the expiration date of the next frame timer. That in return makes a `Timer.run(() => _drawFrame())` be scheduled *after* the next frame callback is already run. Though we want to ensure the `_beginFrame()` and `_drawFrame()` are together before starting to work on the next frame. We only want microtasks to be drained in-between those two. (This is how C++ engine works) We can get similar semantics by scheduling the `_drawFrame()` timer even before running the `_beginFrame()` code. Issue dart-lang#23 Issue dart-lang/sdk#59666
…e `_beginFrame()` takes a long time, it will finish after the expiration date of the next frame timer. That in return makes a `Timer.run(() => _drawFrame())` be scheduled *after* the next frame callback is already run. Though we want to ensure the `_beginFrame()` and `_drawFrame()` are together before starting to work on the next frame. We only want microtasks to be drained in-between those two. (This is how C++ engine works) We can get similar semantics by scheduling the `_drawFrame()` timer even before running the `_beginFrame()` code. Issue #23 Issue dart-lang/sdk#59666 GitOrigin-RevId: 71e3edb Change-Id: Ib2eb54d159d59a4e8e78a71682628160b66ff897 Reviewed-on: https://dart-review.googlesource.com/c/flute/+/399380 Reviewed-by: Lasse Nielsen <[email protected]> Reviewed-by: Alexander Thomas <[email protected]> Commit-Queue: Martin Kustermann <[email protected]>
Small update: The issue I think caused this should be fixed now. When I've time, I'll also roll this into https://github.com/mkustermann/wasm_gc_benchmarks (and update commandline shells, re-measure benchmarks, etc) |
The flute benchmark was fixed some time ago. We've rolled that fix into our CI & benchmarking infrastructure some time ago. Today I've also rolled it into https://github.com/mkustermann/wasm_gc_benchmarks, so this should close this bug. |
I'm getting the following error:
The error is happening at
flute/framework/lib/src/scheduler/binding.dart
Line 1216 in c44fba2
near
_currentFrameTimeStamp!
which means next frames was executed without begin frame.I filed dart-lang/sdk#59666 for possible defect. Is anything can be done in flute to protect to keep begin and draw handlers together?
The text was updated successfully, but these errors were encountered: