-
Notifications
You must be signed in to change notification settings - Fork 366
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
Bug fix: always show latest data in follow-mode #7425
Conversation
// We move the time at the very end of the frame, | ||
// so we have one frame to see the first data before we move the time. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't quite understand this, even though I suspect I wrote it.
The "first" data will only be visible if we move/update the current time so that the latest-at query includes the first data.
Sure, if we receive a few video frames during one app update, the new code will not show the first frame of the video, but I don't think that's wrong, nor do I think the old code would have shown the first frame of the video either.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this looks sane, but I don't 100% understand the previous incorrect behavior: Follow mode may have ended up showing old data until we get a redraw?
Yes, previously to this PR, follow-mode would put the time marker at the latest data received at the previous frame. On native, this is smoothed over by egui always repainting twice when you call On web, |
### What * Part of #7378 ### Issues found * #7425 * emilk/egui#5114 * #7427 ## How to test #### Test setup - build the viewer * `pixi run rerun-build` * `pixi run rerun-build-web` #### Test matrix * Run `cargo r -p test_ui_wakeup` and test: * That the viewer wakes up in the background when it's alt-tabbed * That the viewer wakes up when minimized (it should log "Received a message from…") * Run `cargo r -p test_ui_wakeup -- --serve` and test: * The viewer wakes up when browser is alt-tabbed away * Switch to a different browser tab, send a few messages, switch back. The messages should be there (this is not a conclusive test, as the messages might have been received on tab select) ## Tested ### Web * [x] ✅ Browser alt-tabbed * [x] ❌ Web background tab * Has never _properly_ worked. Is blocked on emilk/egui#5112 * It catches up when we switch back to the tab though ### Linux * [x] ✅X11 alt-tabbed * [x] ✅ X11 minimized * [x] ✅ Wayland alt-tabbed * [x] ❌ Wayland minimized (Hyprland placed on non-visible workspace) * [x] ✅ X-Wayland alt-tabbed * [x] ✅ X-Wayland minimized (Hyprland placed on non-visible workspace) ### Mac * [x] ✅ Native alt-tabbed * [x] ✅ Native minimized ### Windows * [x] ✅ Native alt-tabbed * [x] ✅ Native minimized ### Checklist * [x] I have read and agree to [Contributor Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md) * [x] I've included a screenshot or gif (if applicable) * [x] I have tested the web demo (if applicable): * Using examples from latest `main` build: [rerun.io/viewer](https://rerun.io/viewer/pr/7422?manifest_url=https://app.rerun.io/version/main/examples_manifest.json) * Using full set of examples from `nightly` build: [rerun.io/viewer](https://rerun.io/viewer/pr/7422?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json) * [x] The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG * [x] If applicable, add a new check to the [release checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)! * [x] If have noted any breaking changes to the log API in `CHANGELOG.md` and the migration guide - [PR Build Summary](https://build.rerun.io/pr/7422) - [Recent benchmark results](https://build.rerun.io/graphs/crates.html) - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html) To run all checks from `main`, comment on the PR with `@rerun-bot full-check`. --------- Co-authored-by: Antoine Beyeler <49431240+abey79@users.noreply.github.com>
What
Always show the latest data in follow-mode, by advancing the time at the start of the frame rather than at the end of it.
Checklist
main
build: rerun.io/viewernightly
build: rerun.io/viewerCHANGELOG.md
and the migration guideTo run all checks from
main
, comment on the PR with@rerun-bot full-check
.