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
[display] Overwrite terminal contents #11695
Conversation
Instead of clearing the contents of the display with each frame, overwrite its contents by clearing to the end of each line prior to a newline. This should eliminate flickering in the interactive display. This also eliminates a couple of off-by-one errors that were hampering usability.
Changelog[uncommitted] (2022-12-20)Bug Fixes
|
There are three commits here. The first contains the actual changes, the second updates the baselines, and the third contains the changelog. |
Building and running locally to get an idea of the change. |
Hiding the cursor should eliminate the last of the redraw artifacts.
Added one more commit that hides the cursor in the interactive display, which should eliminate the last of the redraw artifacts. |
If you have a service dev stack, refreshing that stack is an excellent case study. |
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.
Checked this branch with two terminal environments and two Pulumi programs: an EKS cluster and a pathological example of a docker-buildkit provider logging 100k+ lines and did not observe flickering.
This looks like a substantial improvement.
bors merge |
Build succeeded: |
Instead of clearing the contents of the display with each frame,
overwrite its contents by clearing to the end of each line prior to a
newline. This should eliminate flickering in the interactive display.
This also eliminates a couple of off-by-one errors that were hampering
usability.
Fixes #11691, https://github.com/pulumi/customer-support/issues/837.