Significant visual performance issues with variable refresh rate #1891

Closed
opened 2026-01-30 22:41:12 +00:00 by claunia · 18 comments
Owner

Originally created by @NEXUS2345 on GitHub (Jun 22, 2019).

Environment

Windows build number: 10.0.18632.175
Windows Terminal version (if applicable): 0.2.1715.0 (Windows Store Preview)
NVIDIA drivers version 430.64
NVIDIA GTX 1060 6GB graphics card
Dell Alienware AW3418DW monitor (GSYNC certified)

Steps to reproduce

  1. Connect GSYNC compatible monitor to a computer with an NVIDIA GPU
  2. Enable GSYNC, in either of the available modes
  3. Open Windows Terminal Preview
  4. Scroll mouse around

Expected behaviour

Normal performance without any jittering or lagging as demonstrated in the talks from Build 2019.

Actual behaviour

Significant jitter throughout the entire UI, including other windows, when Terminal is the active window. I attempted to capture it on video, but unfortunately, both direct capture using OBS and my phone camera were unable to capture it.

Additional information

This issue also occurs with the Spotify app, in which disabling hardware acceleration leads to the issue being fixed. I was unable to test this with the Terminal app, as I could not find an option to configure hardware acceleration. I imagine this will be a problem with most variable refresh rate configurations, however, I have been unable to test this as I only have NVIDIA hardware available.

Originally created by @NEXUS2345 on GitHub (Jun 22, 2019). # Environment ```none Windows build number: 10.0.18632.175 Windows Terminal version (if applicable): 0.2.1715.0 (Windows Store Preview) NVIDIA drivers version 430.64 NVIDIA GTX 1060 6GB graphics card Dell Alienware AW3418DW monitor (GSYNC certified) ``` # Steps to reproduce 1. Connect GSYNC compatible monitor to a computer with an NVIDIA GPU 2. Enable GSYNC, in either of the available modes 3. Open Windows Terminal Preview 4. Scroll mouse around # Expected behaviour Normal performance without any jittering or lagging as demonstrated in the talks from Build 2019. # Actual behaviour Significant jitter throughout the entire UI, including other windows, when Terminal is the active window. I attempted to capture it on video, but unfortunately, both direct capture using OBS and my phone camera were unable to capture it. # Additional information This issue also occurs with the Spotify app, in which disabling hardware acceleration leads to the issue being fixed. I was unable to test this with the Terminal app, as I could not find an option to configure hardware acceleration. I imagine this will be a problem with most variable refresh rate configurations, however, I have been unable to test this as I only have NVIDIA hardware available.
Author
Owner

@rightpad commented on GitHub (Jun 24, 2019):

I'm experiencing the same issue with an NVIDIA card with GSYNC enabled in both fullscreen and window mode. I enabled my monitor's OSD to display the refresh rate (mine goes up to 165hz) and had both the Windows Terminal Preview and the default terminal for WSL on screen. You can see in the recording that having Windows Terminal Preview focused causes the refresh rate to drop down to a maximum of 30hz while interacting via mouse movement, and can drop down to 2hz when no activity is occurring.

output

@rightpad commented on GitHub (Jun 24, 2019): I'm experiencing the same issue with an NVIDIA card with GSYNC enabled in both fullscreen and window mode. I enabled my monitor's OSD to display the refresh rate (mine goes up to 165hz) and had both the Windows Terminal Preview and the default terminal for WSL on screen. You can see in the recording that having Windows Terminal Preview focused causes the refresh rate to drop down to a maximum of 30hz while interacting via mouse movement, and can drop down to 2hz when no activity is occurring. ![output](https://user-images.githubusercontent.com/690524/60024532-e4713b00-9665-11e9-89ba-5d8862dd0399.gif)
Author
Owner

@DHowett-MSFT commented on GitHub (Jun 24, 2019):

Does this still happen if you turn acrylic off by setting useAcrylic: false?

@DHowett-MSFT commented on GitHub (Jun 24, 2019): Does this still happen if you turn acrylic off by setting `useAcrylic: false`?
Author
Owner

@NEXUS2345 commented on GitHub (Jun 24, 2019):

@DHowett-MSFT adding useAcrylic: false to global settings did not fix the issue. Updating my NVIDIA drivers to the latest (430.86) also did not fix it.

@NEXUS2345 commented on GitHub (Jun 24, 2019): @DHowett-MSFT adding `useAcrylic: false` to global settings did not fix the issue. Updating my NVIDIA drivers to the latest (430.86) also did not fix it.
Author
Owner

@DHowett-MSFT commented on GitHub (Jun 24, 2019):

Awesome! Thanks.

@DHowett-MSFT commented on GitHub (Jun 24, 2019): Awesome! Thanks.
Author
Owner

@DHowett-MSFT commented on GitHub (Jun 24, 2019):

Wait, to the global settings? Would you mind trying it in the profile you have running? Search for existing instances of useAcrylic 😄

@DHowett-MSFT commented on GitHub (Jun 24, 2019): Wait, to the global settings? Would you mind trying it in the profile you have running? Search for existing instances of `useAcrylic` :smile:
Author
Owner

@NEXUS2345 commented on GitHub (Jun 24, 2019):

@DHowett-MSFT the Powershell profile, which is the default one that appears when I open Terminal, has useAcrylic set to false by default, and I haven't changed that.

@NEXUS2345 commented on GitHub (Jun 24, 2019): @DHowett-MSFT the Powershell profile, which is the default one that appears when I open Terminal, has `useAcrylic` set to false by default, and I haven't changed that.
Author
Owner

@DHowett-MSFT commented on GitHub (Jun 24, 2019):

@miniksa i bet we need to enable tearing

@DHowett-MSFT commented on GitHub (Jun 24, 2019): @miniksa i bet we need to enable [tearing](https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/variable-refresh-rate-displays)
Author
Owner

@miniksa commented on GitHub (Jun 25, 2019):

@NEXUS2345, @da-moo, if I make a branch with the proposed fix in it, can one or both of you build and try it out on your machine?

We don't have variable refresh rate displays around here that I could test this with. I believe @DHowett-MSFT's idea is correct, but I cannot confirm it.

@miniksa commented on GitHub (Jun 25, 2019): @NEXUS2345, @da-moo, if I make a branch with the proposed fix in it, can one or both of you build and try it out on your machine? We don't have variable refresh rate displays around here that I could test this with. I believe @DHowett-MSFT's idea is correct, but I cannot confirm it.
Author
Owner

@NEXUS2345 commented on GitHub (Jun 25, 2019):

@miniksa I can give it a try, yes. I've already got VS installed with the needed modules so just let me know which branch I need.

@NEXUS2345 commented on GitHub (Jun 25, 2019): @miniksa I can give it a try, yes. I've already got VS installed with the needed modules so just let me know which branch I need.
Author
Owner

@miniksa commented on GitHub (Jun 25, 2019):

@NEXUS2345, I just pushed miniksa-varrefresh which contains the guidance from https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/variable-refresh-rate-displays. Please try to pull that one and build/run it and see if it fixes the issue for you.

@miniksa commented on GitHub (Jun 25, 2019): @NEXUS2345, I just pushed miniksa-varrefresh which contains the guidance from https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/variable-refresh-rate-displays. Please try to pull that one and build/run it and see if it fixes the issue for you.
Author
Owner

@NEXUS2345 commented on GitHub (Jun 25, 2019):

@miniksa I have just built and tested it and it doesn't appear to fix the issue for me.

@NEXUS2345 commented on GitHub (Jun 25, 2019): @miniksa I have just built and tested it and it doesn't appear to fix the issue for me.
Author
Owner

@miniksa commented on GitHub (Jun 25, 2019):

OK, unfortunately I'm flying blind because we don't have any of this hardware around here. I'm not sure what else could be going wrong.

We'll either have to figure out how to acquire some or have someone with this hardware setup figure out the problem and help contribute the fix.

@miniksa commented on GitHub (Jun 25, 2019): OK, unfortunately I'm flying blind because we don't have any of this hardware around here. I'm not sure what else could be going wrong. We'll either have to figure out how to acquire some or have someone with this hardware setup figure out the problem and help contribute the fix.
Author
Owner

@JorgenSmith commented on GitHub (Jun 26, 2019):

Just wanted to chime in: On my Acer X34 Predator (the first version), which is configured to 95hz (100hz has blanking issue), my mouse gets very laggy with G-Sync enabled. Turning G-Sync off completely resolved the issue; enabling it for full screen only does not. Latest NVidia driver (430.86) for a 1080TI gpu. Triple screen; 2x 1920x1200s surrounding it. Turning sides off doesn't change anything (Win+P=>PC Screen Only).

The same occurs for Slack desktop, if that helps - disabling G-Sync fixes the mouse here too. I was always wondering why Slack was so laggy; there could be commonality here.

@JorgenSmith commented on GitHub (Jun 26, 2019): Just wanted to chime in: On my Acer X34 Predator (the first version), which is configured to 95hz (100hz has blanking issue), my mouse gets very laggy with G-Sync enabled. Turning G-Sync off completely resolved the issue; enabling it for full screen only does not. Latest NVidia driver (430.86) for a 1080TI gpu. Triple screen; 2x 1920x1200s surrounding it. Turning sides off doesn't change anything (Win+P=>PC Screen Only). The same occurs for Slack desktop, if that helps - disabling G-Sync fixes the mouse here too. I was always wondering why Slack was so laggy; there could be commonality here.
Author
Owner

@rightpad commented on GitHub (Jun 26, 2019):

I setup a build environment on my machine and deployed from the miniksa-varrefresh branch as well, same issue happens. Disabling GSYNC is a workaround but I'd rather not have to constantly disable and re-enable it just to use the app. If you need me to test any other proposed fixes, just tag me.

@rightpad commented on GitHub (Jun 26, 2019): I setup a build environment on my machine and deployed from the miniksa-varrefresh branch as well, same issue happens. Disabling GSYNC is a workaround but I'd rather not have to constantly disable and re-enable it just to use the app. If you need me to test any other proposed fixes, just tag me.
Author
Owner

@JorgenSmith commented on GitHub (Jun 26, 2019):

I realised that there's issues with Windowed G-Sync after finding this thread: https://forums.geforce.com/default/topic/1045242/geforce-drivers/windows-10-april-update-1803-windowed-g-sync-broken-hotfix-released-/52/

It seems like changing G-Sync mode (windowed+full/full screen only) needs a reboot for it to set.

I did a reboot after setting G-Sync to Full Screen only, and the lag was gone. I could change it to Windowed after that and hit apply, without the issue taking effect immediately - but if I then reboot then the lag's back.

So it would seem this is a driver level issue by Nvidia - at least in my situation. If you don't need Windowed G-Sync, I would recommend turning it off for now; this resolves the lag in both Slack and Windows Terminal.

It'd be great to figure out why it happens only in certain apps. E.g., VSCode is not impacted.

@JorgenSmith commented on GitHub (Jun 26, 2019): I realised that there's issues with Windowed G-Sync after finding this thread: https://forums.geforce.com/default/topic/1045242/geforce-drivers/windows-10-april-update-1803-windowed-g-sync-broken-hotfix-released-/52/ It seems like changing G-Sync mode (windowed+full/full screen only) needs a reboot for it to set. I did a *reboot* after setting G-Sync to Full Screen only, and the lag was gone. I could change it to Windowed after that and hit apply, without the issue taking effect immediately - but if I then reboot then the lag's back. So it would seem this is a driver level issue by Nvidia - at least in my situation. If you don't need Windowed G-Sync, I would recommend turning it off for now; this resolves the lag in both Slack and Windows Terminal. It'd be great to figure out why it happens only in certain apps. E.g., VSCode is not impacted.
Author
Owner

@miniksa commented on GitHub (Jun 27, 2019):

OK, well, it sounds like my blind fix didn't work and I don't really have a way of getting this hardware. So I'm removing myself as assignee for now and adding "Help-Wanted" hoping that someone with this hardware can figure it out.

@miniksa commented on GitHub (Jun 27, 2019): OK, well, it sounds like my blind fix didn't work and I don't really have a way of getting this hardware. So I'm removing myself as assignee for now and adding "Help-Wanted" hoping that someone with this hardware can figure it out.
Author
Owner

@JaimeStill commented on GitHub (Aug 8, 2019):

Potential duplicate of #649. Came here to bring up this issue and glad to see it's being documented. I've had this issue with Spotify and they have an option to disable hardware acceleration. Not sure how relevant that is to this, but if a similar setting can be created for Terminal, it would sure beat having to turn off windowed GSYNC.

@JaimeStill commented on GitHub (Aug 8, 2019): Potential duplicate of #649. Came here to bring up this issue and glad to see it's being documented. I've had this issue with Spotify and they have an option to disable hardware acceleration. Not sure how relevant that is to this, but if a similar setting can be created for Terminal, it would sure beat having to turn off windowed GSYNC.
Author
Owner

@miniksa commented on GitHub (Aug 16, 2019):

@JaimeStill thanks for finding that duplicate. I'm going to resolve this one as a duplicate of that one.

@miniksa commented on GitHub (Aug 16, 2019): @JaimeStill thanks for finding that duplicate. I'm going to resolve this one as a duplicate of that one.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#1891