Skip to content
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

Flickering in conhost when scrolling top part of screen #11274

Open
j4james opened this issue Sep 19, 2021 · 2 comments
Open

Flickering in conhost when scrolling top part of screen #11274

j4james opened this issue Sep 19, 2021 · 2 comments
Labels
Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Issue-Bug It either shouldn't be doing this or needs an investigation. Priority-2 A description (P2) Product-Conhost For issues in the Console codebase
Milestone

Comments

@j4james
Copy link
Collaborator

j4james commented Sep 19, 2021

Windows Terminal version (or Windows build number)

Version 10.0.18363.1500

Other Software

No response

Steps to reproduce

  1. Open a bash shell in conhost.
  2. In the console properties, make sure you've got a large buffer size (e.g. height 9000).
  3. Press enter a few times until you've filled the screen with content.
  4. Execute printf "\e[1;12r" to set the scrolling margins to the top half of the screen.
  5. Execute for i in {1..1000}; do printf "\n"; done to force the top half of the screen to scroll.

Expected Behavior

The top half should scroll away and then remain blank until the prompt reappears. The bottom half should remain unchanged.

Actual Behavior

The bottom half of the screen jumps up and down while the top half is scrolling

scroll-flickering.mp4

The way the scrolling is implemented (as I understand it), the bottom half of the screen is moved down, and then the whole viewport is also panned down. This should have the effect of keeping the bottom half constant, while the top half is scrolled up into the scrollback buffer.

However, it looks like the viewport pan takes effect before the bottom half of the screen is refreshed, so it initially appears to be scrolling up before it's redrawn in the correct place. Once the scrollback buffer is filled, though, this is no longer a problem. I assume that's because the scrolling is achieved by cycling the buffer instead of panning the viewport.

Also note that the DX renderer doesn't seem to have this problem (tested with the UseDx registry setting in a recent build of OpenConsole).

@ghost ghost added Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting Needs-Tag-Fix Doesn't match tag requirements labels Sep 19, 2021
@zadjii-msft
Copy link
Member

That's so weird. Wonder why we never noticed this before.

@zadjii-msft zadjii-msft added Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Issue-Bug It either shouldn't be doing this or needs an investigation. Priority-2 A description (P2) Product-Conhost For issues in the Console codebase labels Sep 22, 2021
@ghost ghost removed the Needs-Tag-Fix Doesn't match tag requirements label Sep 22, 2021
@zadjii-msft zadjii-msft added this to the Terminal v2.0 milestone Sep 22, 2021
@vefatica
Copy link

vefatica commented Sep 22, 2021

I can reproduce this (exactly as in @j4james's capture) with TCC, a Windows shell.

@zadjii-msft zadjii-msft modified the milestones: Terminal v2.0, 22H2 Jan 4, 2022
@carlos-zamora carlos-zamora removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Mar 16, 2023
@carlos-zamora carlos-zamora modified the milestones: 22H2, Backlog Mar 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Issue-Bug It either shouldn't be doing this or needs an investigation. Priority-2 A description (P2) Product-Conhost For issues in the Console codebase
Projects
None yet
Development

No branches or pull requests

4 participants