Flickering in conhost when scrolling top part of screen #11274
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
Windows Terminal version (or Windows build number)
Version 10.0.18363.1500
Other Software
No response
Steps to reproduce
printf "\e[1;12r"
to set the scrolling margins to the top half of the screen.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).The text was updated successfully, but these errors were encountered: