Terminal: Scroll invalidation seems broken on an RTX 2070?

Created on 23 Nov 2020  路  16Comments  路  Source: microsoft/terminal

Environment

Windows build number:  Win32NT 10.0.19042.0 (Microsoft Windows NT 10.0.19042.0)
Windows Terminal version (if applicable): Version: 1.4.3243.0

Any other software?
Ubuntu WSL2 4.19.104-microsoft-standard

Steps to reproduce

  1. Launch Windows Terminal.
  2. Launch an Ubuntu WSL2 session. (Not WSL). This is the Windows 10 Store app, called "Ubuntu". It's currently running 20.04 in WSL2.
  3. In Ubuntu WSL, find a directory location where there's a known cloned .git repository.
  4. In the repository, run git log or git status, if you have a lot of modified changes yet to be committed. This should at least print enough characters in Windows Terminal, that you will definitely need to scroll up/down to view everything that was printed in the window.
  5. Use your mouse and drag the Windows Terminal scrollbar up or down very quickly.
  6. Observe the error. I think the display is not refreshing correctly. (See below)

Expected behavior

I should be able to view text normally.

Actual behavior

GIF

Area-Rendering Help Wanted Issue-Bug Needs-Repro Product-Terminal

All 16 comments

I made it easier to see the actual behavior, which is better than seeing all those red text which is really hard to view:

GIF

Whoa! What GPU do you have? We only used to see this when partial presentation was broken...

And does experimental.rendering.software or experimental.rendering.forceFullRepaint make a difference here?

See: https://docs.microsoft.com/en-us/windows/terminal/customize-settings/global-settings#rendering-settings

Or, does selecting (and deselecting) the text in the buffer reveal what you'd actually expect to be visible?

Whoa! What GPU do you have? We only used to see this when partial presentation was broken...

Dual GPUs setup. One GTX 1060, and one RTX 2070 Turbo.

And does experimental.rendering.software or experimental.rendering.forceFullRepaint make a difference here?

See: https://docs.microsoft.com/en-us/windows/terminal/customize-settings/global-settings#rendering-settings

Just the setting "experimental.rendering.forceFullRepaint": true is good enough for me to fix the issue. I didn't know about this setting configuration before.

Or, does selecting (and deselecting) the text in the buffer reveal what you'd actually expect to be visible?

Selecting and deselecting the text in the buffer reveals the text I expected it to print out after doing a simple ls -a.

Out of curiosity, does this bug only repro for one of the GPUs? If forceFullRepaint fixes this, then it might be a sign that either partial presentation doesn't work for that GPU, or we're not doing something right for that specific one.

Repaint fixes this, then it might be a sign that either partial presentation doesn't work for that GPU, or we're not doing something right for that specific one.

How should I test this? Do I just disable the device, then reboot for each of these graphics card?

image

Actually, another question: How do you determine what rendering device the Windows Terminal is using for rendering? Maybe if that information is included somewhere when creating a diagnostic file, would it help to pinpoint which device the rendering is malfunctioning?

If these are not viable, then nevermind.

@tommai78101 I don't have more than one GPU but did you try this?

@onomatopellan That's actually a better option for running single GPUs on multi-GPUs setups. Let me try that and see how it goes.

@onomatopellan @zadjii-msft

Apparently, Windows Terminal runs on RTX 2070, and that's what's causing the screen tearing/partial rendering issue when scrolling up/down fast enough.

image

Also it is strange that my GTX 1060 is gone from this menu...

And if I switch to Intel UHD Graphics 630, I don't get that screen tearing.

In both cases, the experiment rendering option, forceFullRepaint is set to false.

GIF

@tommai78101 It seems you need to specify which one is the High Performance GPU. Can you find something like this? (option should be at the top of Graphics Settings)

EDIT: It seems this is something that was added on insider build 20190 but you are on build 19042.

@onomatopellan

@tommai78101 It seems you need to specify which one is the High Performance GPU. Can you find something like [this]

No, I'm not on the Windows 10 Insider, since this is is home personal computer. I do not want to be an Insider.

I'm still on the 19042 build, per OP at the top.

I've marked this bug up for our backlog and stuck the "needs repro" tag on it. Probably our best bet is gonna be someone on the team getting this under a debugger . . . but that's going to be difficult.

I think there might be some tracing we can use to help determine what exactly is happening, but I'll need to consult.

Cool, let me know if you need anything.

For now, I'm going to stick to using the experimental.rendering.forceFullRepaint option, since it works perfectly.

Was this page helpful?
0 / 5 - 0 ratings