Scroll invalidation seems broken on an RTX 2070? #11545

Closed
opened 2026-01-31 02:50:41 +00:00 by claunia · 23 comments
Owner

Originally created by @tommai78101 on GitHub (Nov 23, 2020).

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

Originally created by @tommai78101 on GitHub (Nov 23, 2020). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> <!-- This bug tracker is monitored by Windows Terminal development team and other technical folks. **Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**. Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue. If this is an application crash, please also provide a Feedback Hub submission link so we can find your diagnostic data on the backend. Use the category "Apps > Windows Terminal (Preview)" and choose "Share My Feedback" after submission to get the link. Please use this form and describe your issue, concisely but precisely, with as much detail as possible. --> # Environment ```none 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](https://user-images.githubusercontent.com/6444116/99931811-03c13b80-2d24-11eb-9bc1-d2b545d98076.gif)
claunia added the Help WantedArea-RenderingIssue-BugNeeds-Tag-FixProduct-Terminal labels 2026-01-31 02:50:42 +00:00
Author
Owner

@tommai78101 commented on GitHub (Nov 23, 2020):

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

@tommai78101 commented on GitHub (Nov 23, 2020): 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](https://user-images.githubusercontent.com/6444116/99932024-bb564d80-2d24-11eb-8daa-637aeedaa8d5.gif)
Author
Owner

@DHowett commented on GitHub (Nov 23, 2020):

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

@DHowett commented on GitHub (Nov 23, 2020): Whoa! What GPU do you have? We only used to see this when partial presentation was broken...
Author
Owner

@skyline75489 commented on GitHub (Nov 23, 2020):

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

@skyline75489 commented on GitHub (Nov 23, 2020): 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
Author
Owner

@zadjii-msft commented on GitHub (Nov 23, 2020):

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

@zadjii-msft commented on GitHub (Nov 23, 2020): Or, does selecting (and deselecting) the text in the buffer reveal what you'd actually expect to be visible?
Author
Owner

@tommai78101 commented on GitHub (Nov 23, 2020):

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.

@tommai78101 commented on GitHub (Nov 23, 2020): > 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`.
Author
Owner

@zadjii-msft commented on GitHub (Nov 23, 2020):

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.

@zadjii-msft commented on GitHub (Nov 23, 2020): 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.
Author
Owner

@tommai78101 commented on GitHub (Nov 23, 2020):

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

@tommai78101 commented on GitHub (Nov 23, 2020): > `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](https://user-images.githubusercontent.com/6444116/100014953-2a738680-2da5-11eb-80f2-85e1ceaa3564.png)
Author
Owner

@tommai78101 commented on GitHub (Nov 23, 2020):

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 commented on GitHub (Nov 23, 2020): 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.
Author
Owner

@onomatopellan commented on GitHub (Nov 23, 2020):

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

@onomatopellan commented on GitHub (Nov 23, 2020): @tommai78101 I don't have more than one GPU but did you try [this](https://www.howtogeek.com/351522/how-to-choose-which-gpu-a-game-uses-on-windows-10)?
Author
Owner

@tommai78101 commented on GitHub (Nov 23, 2020):

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

@tommai78101 commented on GitHub (Nov 23, 2020): @onomatopellan That's actually a better option for running single GPUs on multi-GPUs setups. Let me try that and see how it goes.
Author
Owner

@tommai78101 commented on GitHub (Nov 23, 2020):

@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...

@tommai78101 commented on GitHub (Nov 23, 2020): @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](https://user-images.githubusercontent.com/6444116/100018221-226a1580-2daa-11eb-9072-08b132e3441b.png) Also it is strange that my GTX 1060 is gone from this menu...
Author
Owner

@tommai78101 commented on GitHub (Nov 23, 2020):

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 commented on GitHub (Nov 23, 2020): 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](https://user-images.githubusercontent.com/6444116/100018451-7d037180-2daa-11eb-9b60-edb938d54703.gif)
Author
Owner

@onomatopellan commented on GitHub (Nov 23, 2020):

@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 commented on GitHub (Nov 23, 2020): @tommai78101 It seems you need to specify which one is the High Performance GPU. Can you find something like [this](https://46c4ts1tskv22sdav81j9c69-wpengine.netdna-ssl.com/wp-content/uploads/prod/sites/2/2020/08/16635566f758c021e6b341dfba58769d.jpg)? (option should be at the top of Graphics Settings) **EDIT:** It seems this is something that was added on [insider build 20190](https://blogs.windows.com/windows-insider/2020/08/12/announcing-windows-10-insider-preview-build-20190/) but you are on build 19042. ![](https://46c4ts1tskv22sdav81j9c69-wpengine.netdna-ssl.com/wp-content/uploads/prod/sites/2/2020/08/bfb6378b0d407e4d79ce6527c67c35bd.jpg)
Author
Owner

@tommai78101 commented on GitHub (Nov 23, 2020):

@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.

@tommai78101 commented on GitHub (Nov 23, 2020): @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.
Author
Owner

@DHowett commented on GitHub (Nov 25, 2020):

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.

@DHowett commented on GitHub (Nov 25, 2020): 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.
Author
Owner

@tommai78101 commented on GitHub (Nov 25, 2020):

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.

@tommai78101 commented on GitHub (Nov 25, 2020): 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.
Author
Owner

@zadjii-msft commented on GitHub (Aug 12, 2022):

Hey so I know it's been a few years - You still seeing this/? If you are, could you try out the new rendering engine in the Preview builds? I'm curious if that new engine just fixes this for you.

@zadjii-msft commented on GitHub (Aug 12, 2022): Hey so I know it's been a few years - You still seeing this/? If you are, could you try out the [new rendering engine](https://docs.microsoft.com/en-us/windows/terminal/customize-settings/profile-advanced#experimental-text-rendering-engine) in the [Preview builds](https://apps.microsoft.com/store/detail/windows-terminal-preview/9N8G5RFZ9XK3?hl=en-us&gl=US)? I'm curious if that new engine just fixes this for you.
Author
Owner

@tommai78101 commented on GitHub (Aug 12, 2022):

@zadjii-msft Hello, I installed the Windows Terminal Preview, and just checked. Unfortunately, the issue is still not fixed when I turned off the experimental.rendering.forceFullRepaint option.

@tommai78101 commented on GitHub (Aug 12, 2022): @zadjii-msft Hello, I installed the Windows Terminal Preview, and just checked. Unfortunately, the issue is still not fixed when I turned off the `experimental.rendering.forceFullRepaint` option.
Author
Owner

@tommai78101 commented on GitHub (Aug 12, 2022):

In action, using Visual Studio Code repository for this test.

GIF

@tommai78101 commented on GitHub (Aug 12, 2022): In action, using Visual Studio Code repository for this test. ![GIF](https://user-images.githubusercontent.com/6444116/184396430-943f3cc4-16ac-4806-bb29-c7c27ae27c56.gif)
Author
Owner

@zadjii-msft commented on GitHub (Aug 12, 2022):

Ah okay that's my bad. The experimental.useAtlasEngine setting actually goes in your profile settings, rather than the globals (like the other rendering settings). Can you try there instead? (also, that setting doesn't hot-reload, so you'll need to reboot the terminal).

Thanks for bearing with me!

@zadjii-msft commented on GitHub (Aug 12, 2022): Ah okay that's my bad. The `experimental.useAtlasEngine` setting actually goes in your `profile` settings, rather than the globals (like the other rendering settings). Can you try there instead? (also, that setting doesn't hot-reload, so you'll need to reboot the terminal). Thanks for bearing with me!
Author
Owner

@tommai78101 commented on GitHub (Aug 12, 2022):

@zadjii-msft I moved the settings under the profile setting, and redid the test. The new rendering engine settings seems to be working now.

Seems to be working now.

GIF

What was the issue found that would cause the error with the rendering issue before the new Atlas engine?

@tommai78101 commented on GitHub (Aug 12, 2022): @zadjii-msft I moved the settings under the `profile` setting, and redid the test. The new rendering engine settings seems to be working now. Seems to be working now. ![GIF](https://user-images.githubusercontent.com/6444116/184412468-bf6be065-50cd-4c73-9dde-82ec1abd9712.gif) What was the issue found that would cause the error with the rendering issue before the new Atlas engine?
Author
Owner

@zadjii-msft commented on GitHub (Aug 12, 2022):

What was the issue found that would cause the error with the rendering issue before the new Atlas engine?

Honestly, I don't know! The two engines have pretty different paths by which they interact with the GPU. Perhaps the set of calls we're using with the old renderer (most likely Present1) just don't play nice with your GPU.

This bumps a discussion topic we've been putting off. What exactly should we do with bugs like this? Where there's a bug in the dxrenderer, but it's resolved in the new renderer. We're ultimately planning on defaulting to the new engine for everyone (once it's a bit more stable).

I'm proposing we add a Resolution-FixedByAtlasRenderer label. Use that to tag issues we know are fixed already. Maybe just close those out right now? Maybe we could add a rule to the bot so that /atlas would give a little blurb about the new renderer and how to enable it for now.

@zadjii-msft commented on GitHub (Aug 12, 2022): > What was the issue found that would cause the error with the rendering issue before the new Atlas engine? Honestly, I don't know! The two engines have pretty different paths by which they interact with the GPU. Perhaps the set of calls we're using with the old renderer (most likely `Present1`) just don't play nice with your GPU. This bumps a discussion topic we've been putting off. What exactly should we do with bugs like this? Where there's a bug in the dxrenderer, but it's resolved in the new renderer. We're ultimately planning on defaulting to the new engine for everyone (once it's a bit more stable). I'm proposing we add a `Resolution-FixedByAtlasRenderer` label. Use that to tag issues we know are fixed already. Maybe just close those out right now? Maybe we could add a rule to the bot so that `/atlas` would give a little blurb about the new renderer and how to enable it for now.
Author
Owner

@zadjii-msft commented on GitHub (Aug 23, 2023):

Oh we looped back on this but never actually closed it out. 🤦

We did end up tracking a whole pile of "fixed by atlas" things, but this escaped.

@zadjii-msft commented on GitHub (Aug 23, 2023): Oh we looped back on this but never actually closed it out. 🤦 We did end up tracking a whole pile of "fixed by atlas" things, but this escaped.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#11545