microsoft / terminal

The new Windows Terminal and the original Windows console host, all in the same place!
MIT License
94.88k stars 8.22k forks source link

GSync/Freesync refresh rate / FPS drops when using Terminal #649

Open MoshiBin opened 5 years ago

MoshiBin commented 5 years ago

My main monitor is 144Hz. An easy way of seeing the current FPS is wiggling the mouse - the movement in 144 FPS is much smoother than 60 FPS, and this is very noticeable.

While using Terminal, the FPS constantly drops, and moves between low FPS and full 144 FPS. I can't tell if it drops to 60 FPS or a different amount, but it's way lower than 144 FPS. Wiggling the cursor while typing shows this problem well.

It seems like every interaction with the Terminal can cause the FPS to "flip" between low and high: Focusing on the window, typing, etc. Sometimes waiting ~3 seconds is enough for the FPS to switch back to high.

Graphics card is an Nvidia GTX 1080 Ti and monitor is an Asus PG279Q.

C:\WINDOWS\system32>ver

Microsoft Windows [Version 10.0.18362.86]
lcrownover commented 4 years ago

Adding "experimental.rendering.software": true also helped me. Running Windows Terminal 1.0.1401.0 using GTX 970 (Nvidia driver 432.00). This issue isn't specific to Windows Terminal. I also had to set an experimental flag for Ableton Live and disable hardware acceleration for Spotify.

This fixes the issue for me using 2080ti and several 165hz GSynced displays

This also resolves the issue for me with 1080ti and 165hz GSync.

arthurlt commented 4 years ago

Adding "experimental.rendering.software": true also helped me. Running Windows Terminal 1.0.1401.0 using GTX 970 (Nvidia driver 432.00). This issue isn't specific to Windows Terminal. I also had to set an experimental flag for Ableton Live and disable hardware acceleration for Spotify.

This fixes the issue for me using 2080ti and several 165hz GSynced displays

This also resolves the issue for me with 1080ti and 165hz GSync.

This resolves the issue for me on a RTX 2070 and 144hz GSync

Seefer commented 4 years ago

Same thing is happening on a GeForce 2080 Ti with driver 451.67. Just what is Windows Terminal doing differently to other terminal applications with its screen rendering? Powershell, Powershell ISE, the default Windows command line, Cmder all do not exhibit this strange behavior and are fine with Gsync window or windowed settings.

lhecker commented 4 years ago

I'd like to again mention my comments above as they explain the situation in detail. This comment in particular should be the most concise: https://github.com/microsoft/terminal/issues/649#issuecomment-647777960

Seefer commented 4 years ago

I'd like to again mention my comments above as they explain the situation in detail. This comment in particular should be the most concise: #649 (comment)

I understand the reasoning in your comment if we were talking about the difference between how games capture mouse input vs other application types but I'm wondering why other terminal applications I mention seem to handle mouse input under a Gsync-enabled screen refresh rate without issue. These are standard applications and I'm sure they do not have a custom Nvidia Control Panel profile for them. What is the difference in how Windows Terminal is handling display rendering and can it be fixed by the devs, do Nvidia need to handle this or both of them?

lhecker commented 4 years ago

@Seefer You're misunderstanding... G-Sync works by throttling your monitor's refresh rate and not the frame rate of your cursor. Windows Terminal (WT) exhibits this behavior as it renders the shell using your GPU and not CPU, unlike the other terminals you tried. Nvidia incorrectly recognizes WT as an application that wants G-Sync. You can read more about this in my other comments in this issue and in the comment I linked above.

I know this sounds very rude, but as non-native english speaker and a lack of better words: Many commenters here appear to me as if they actually are very unaware what G-Sync is and how it works. I strongly suggest to everyone here to turn off G-Sync for windowed applications. You should consider that Nvidia feature a very low-level, expert-only knob that should better be left on default (namely disabled). The Nvidia control panel settings should look like this: image

There are only very rare circumstances in which you'd want it to be enabled. Basically the only case in which you'd want to change this setting is if you have windowed (non-fullscreen) games or other graphical applications that don't run at your monitors native refresh rate (144Hz, 240Hz, etc.).

Seefer commented 4 years ago

I see your point now. Sadly, the Gsync full screen or windowed mode setting option is not really an option for me as a gamer. I run games mainly in borderless full screen wherever possible as this avoids loss-of-graphics-device issues for games that don't handle ALT-TAB very well. It's also easier to drop back to the desktop if a game crashes in order to fire up Task Manager or Process Explorer in order to End Task the frozen game. I think I'll be sticking with Cmder for my terminal needs until Windows Terminal mouse behavior is solved :(

lhecker commented 4 years ago

@Seefer G-Sync's benefit is the removal of screen tearing if your application/game's framerate cannot keep up with your monitor. And technically windowed (even fullscreen windowed) applications cannot have screen tearing as they're first being composited by DWM before being shown on your monitor. So I'm personally wondering which game requires G-Sync in windowed mode... 🤔

iziddiqi commented 4 years ago

@lhecker I don't know why exactly, but G-Sync in windowed (borderless fullscreen) mode absolutely makes a visible difference for me so I keep it on. Without it, variable refresh rate doesn't work properly (I've tried several things) and I think the framerate gets clamped by either Windows or Nvidia drivers. This is the case in all games I've played recently. I have two G-Sync monitors so I prefer using borderless fullscreen.

I remember reading that previously, games would only get exclusive access to the driver if they were in fullscreen mode but a few years ago borderless fullscreen also started giving games exclusive access with the benefit of being able to use multi-monitor setups with ease.

iziddiqi commented 4 years ago

I should also mention that this happens even when the mouse is not over the terminal as long as the focus is set on the terminal. If I have the terminal taking up have the screen and selected then the mouse will lag anywhere I move it. Take the focus off and everything is perfect.

Luckz commented 4 years ago

EDIT/UPDATE: I posted more comprehensive profile downloads a bit below https://github.com/microsoft/terminal/issues/649#issuecomment-718102564


@jalada @SirJson and others, you just have to override it "the right way". For Store/UWP stuff, you need to use the internal name <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>. There is no need to mess with C:\Program Files\WindowsApps permissions.

Save as file with .nip ending, import file with NVIDIA Profile Inspector:

<?xml version="1.0" encoding="utf-16"?>
<ArrayOfProfile>
  <Profile>
    <ProfileName>Windows Terminal Gsync Fix</ProfileName>
    <Executeables>
      <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>
    </Executeables>
    <Settings>
      <ProfileSetting>
        <SettingNameInfo>G-SYNC</SettingNameInfo>
        <SettingID>279476687</SettingID>
        <SettingValue>1</SettingValue>
        <ValueType>Dword</ValueType>
      </ProfileSetting>
    </Settings>
  </Profile>
</ArrayOfProfile>

Or unzip from this: Nvidia-Terminal.zip

Only <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string> is necessary for a Store install (on my PC/Win/driver). I can't test other configs, so I left whatever else seemed somewhat reasonable in that zip file:

      <string>windowsterminal.exe</string>
      <string>c:/program files/windowsapps/microsoft.windowsterminal_1.1.2021.0_x64__8wekyb3d8bbwe/windowsterminal.exe</string>
      <string>Microsoft.WindowsTerminal_1.1.2021.0_x64__8wekyb3d8bbwe</string>

The post further down has better downloads.

I didn't know how NV would name such a profile (they have inconsistent Microsoft ... / Windows ... naming) and don't know what happens to this custom one if a future driver ships their own.

[on my previous driver 445.78 the Start Menu was also behaving like this half the time, ~32 Hz refresh rate; fixed in newer drivers like 451.85]

Seefer commented 4 years ago

@jalada @SirJson and others, you just have to override it "the right way". For Store/UWP stuff, you need to use the internal name <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>

Save as file with .nip ending, import file with NVIDIA Profile Inspector:

<?xml version="1.0" encoding="utf-16"?>
<ArrayOfProfile>
  <Profile>
    <ProfileName>Windows Terminal Gsync Fix</ProfileName>
    <Executeables>
      <string>windowsterminal.exe</string>
      <string>c:/program files/windowsapps/microsoft.windowsterminal_1.1.2021.0_x64__8wekyb3d8bbwe/windowsterminal.exe</string>
      <string>Microsoft.WindowsTerminal_1.1.2021.0_x64__8wekyb3d8bbwe</string>
      <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>
    </Executeables>
    <Settings>
      <ProfileSetting>
        <SettingNameInfo>G-SYNC</SettingNameInfo>
        <SettingID>279476687</SettingID>
        <SettingValue>1</SettingValue>
        <ValueType>Dword</ValueType>
      </ProfileSetting>
    </Settings>
  </Profile>
</ArrayOfProfile>

Or unzip from this: Nvidia-Terminal.zip

Only <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string> is necessary for a Store install.

I didn't know how NV would name such a profile (they have inconsistent Microsoft ... / Windows ... naming) and don't know what happens to this custom one if a future driver ships their own.

[on my previous driver 445.78 the Start Menu was also behaving like this half the time, ~32 Hz refresh rate]

Thanks for that. Great tool. I was unaware there were so many other Nvidia profile settings hidden away. I had already added the Windows Terminal executable to Nvidia profiles but no messing around with the GSYNC settings exposed in there allowed me to adjust Windows Terminal mouse capture behaviour.

It does not seem to dynamically change my Global GSYNC Mode from Windowed or Fullscreen to Fullscreen on a per profile basis. Using Nvidia Control Panel to set GSYNC Mode to Fullscreen,, Windows Terminal mouse problems do indeed go away but if using this Profile Inspector tool to set GSYNC Mode to Fullscreen and then run Windows Terminal, mouse problems remain as though the profile setting is not able to override the Global setting. This is all very frustrating with no clear idea which party needs to make the fix (Nvidia or WT devs). Until this is resolved I'm sticking with Cmder, which is a pity because I totally dig how WT makes using WSL2 a little bit nicer :(

Seefer commented 4 years ago

@jalada @SirJson and others, you just have to override it "the right way". For Store/UWP stuff, you need to use the internal name <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string> Save as file with .nip ending, import file with NVIDIA Profile Inspector:

<?xml version="1.0" encoding="utf-16"?>
<ArrayOfProfile>
  <Profile>
    <ProfileName>Windows Terminal Gsync Fix</ProfileName>
    <Executeables>
      <string>windowsterminal.exe</string>
      <string>c:/program files/windowsapps/microsoft.windowsterminal_1.1.2021.0_x64__8wekyb3d8bbwe/windowsterminal.exe</string>
      <string>Microsoft.WindowsTerminal_1.1.2021.0_x64__8wekyb3d8bbwe</string>
      <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>
    </Executeables>
    <Settings>
      <ProfileSetting>
        <SettingNameInfo>G-SYNC</SettingNameInfo>
        <SettingID>279476687</SettingID>
        <SettingValue>1</SettingValue>
        <ValueType>Dword</ValueType>
      </ProfileSetting>
    </Settings>
  </Profile>
</ArrayOfProfile>

Or unzip from this: Nvidia-Terminal.zip Only <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string> is necessary for a Store install. I didn't know how NV would name such a profile (they have inconsistent Microsoft ... / Windows ... naming) and don't know what happens to this custom one if a future driver ships their own. [on my previous driver 445.78 the Start Menu was also behaving like this half the time, ~32 Hz refresh rate]

Thanks for that. Great tool. I was unaware there were so many other Nvidia profile settings hidden away. I had already added the Windows Terminal executable to Nvidia profiles but no messing around with the GSYNC settings exposed in there allowed me to adjust Windows Terminal mouse capture behaviour.

It does not seem to dynamically change my Global GSYNC Mode from Windowed or Fullscreen to Fullscreen on a per profile basis. Using Nvidia Control Panel to set GSYNC Mode to Fullscreen,, Windows Terminal mouse problems do indeed go away but if using this Profile Inspector tool to set GSYNC Mode to Fullscreen and then run Windows Terminal, mouse problems remain as though the profile setting is not able to override the Global setting. This is all very frustrating with no clear idea which party needs to make the fix (Nvidia or WT devs). Until this is resolved I'm sticking with Cmder, which is a pity because I totally dig how WT makes using WSL2 a little bit nicer :(

Ok it seems to be working. I had to Remove my previous WT Profile in Control Panel and just use your .nip file to import using Nvidia Profile Inspector. I assumed because I already had a WT profile, importing yours was not necessary to get access to the WT executable profile settings. Things seem to work fine now. I can leave my Global GSYNC Mode to windowed or full screen and your profile takes care of adjusting GSYNC Mode to Full screen only when I launch WT.

Many thanks!

Seefer commented 4 years ago

@Seefer G-Sync's benefit is the removal of screen tearing if your application/game's framerate cannot keep up with your monitor. And technically windowed (even fullscreen windowed) applications cannot have screen tearing as they're first being composited by DWM before being shown on your monitor. So I'm personally wondering which game requires G-Sync in windowed mode... 🤔

Any game that you run in 'borderless window' mode is basically a windowed game, just without any of the Windows OS chrome. This mode has been around for ages. I remember using it during my time programming in WIN32.

lhecker commented 4 years ago

@Seefer Which is exactly why I personally haven't entirely grasped why some people require G-Sync for non-exclusive fullscreen applications. There can't be a significant benefit, since everything that G-Sync provides is something that DWM does about as well. (Given that you didn't forget to enable V-Sync.)

Either way, what needs to happen is for Nvidia to fix it on their side. They should only enable G-Sync for fullscreen windowed applications that also hide the cursor and not all regular windowed applications.

Luckz commented 4 years ago

@Seefer Which is exactly why I personally haven't entirely grasped why some people require G-Sync for non-exclusive fullscreen applications. There can't be a significant benefit, since everything that G-Sync provides is something that DWM does about as well. (Given that you didn't forget to enable V-Sync.)

This is getting wildly off-topic now, but for example: Overwatch, shows that, no, with G-SYNC enabled, both borderless and windowed mode do not add 1 frame of delay over exclusive fullscreen. Standalone “V-SYNC,” however, does show the expected 1 frame of delay. source

They should only enable G-Sync for fullscreen windowed applications that also hide the cursor and not all regular windowed applications.

Surely there could be both games that don't hide the cursor and non-games that do? Apologies if I misunderstand you, but when my media player hides the cursor it doesn't become a game, and I suppose a game can keep showing the Windows cursor as well.

SirJson commented 4 years ago

@Luckz You realize that I posted the solution months ago, but then wasn't sure if it's also fixable on application level because I simply didn't remember how G-Sync exactly works. These days you can turn it on even on your toaster which makes it easy to forget what that option actually means. So that's my bad, but back then, when I posted the solution, I also mentioned how silly it was to enable windowed G-Sync in the first place. I can also note that I didn't have had a single issue since then.

After that all discussion from me was about seeking a solution that wasn't: "We wait until Nvidia notices this." But that's the only option for a real fix and software rendering is a workaround until then.

I know you didn't mean anything bad, but only because you see a name often that doesn't mean that User is also having the biggest issue.

lhecker commented 4 years ago

@Luckz I agree we're drifting a bit off and I believe I'm kinda to blame for that. Sorry. 😅

But I expected that article to be mentioned, especially since it's factually wrong, or at least quite misleading. I mean it's not like that article has been peer reviewed right? So please allow me one last time to explain how the author of that article is misinterpreting their own results. The application frame rate is virtually capped to 142 FPS, despite V-Sync being used, which would cap the framerate to 144 FPS anyways. tl;dr: Don't cap frame rates if you use V-Sync. The author of your article did just that mistake, incorrectly making them (and you believe) that you regularly/always get a 1 frame delay, which couldn't be further from the truth. In fact only 2 out of every 144 frames are getting delayed due to this "misalignment" of application frame rate and monitor refresh rate. A proper comparison can be seen here (you need to switch the first image over to the 144+ Hz versions). For comparison of the 0-2ms difference: An expensive, modern 144Hz monitor usually has a measured GtG response time of about 4ms and I doubt many ever noticed that. 😄

jetersen commented 4 years ago

Thanks @Luckz for a fix/workaround.

I would add to the symptoms that I had experienced before putting it together that it was Windows Terminal causing it. Running Windows 10 20H2 (OS Build 19042.450) I have seen the GSYNC monitor go to black and not turn on again (reboot required). Also seen flashing black screen across all 3 monitors. Once I applied the fix issues seems to be gone.

xXGoziXx commented 3 years ago

Hey everyone, I've been having the same problem. I thought my laptop was the one with the issue at first but then I noticed the problem was also occurring on certain types of applications notably Windows Store applications. I've noticed it to occur Splashable, WhatsApp, Windows Terminal, Speedtest among many others. My laptop is the ASUS ROG Zephyrus Duo 15 GX550LWS Specs here My external monitor is the ASUS VG278QR (GSYNC Compatible) Gaming Monitor running @ 165Hz

Setting GSYNC to Fullscreen mode, which is ridiculous, does solve the problem though. Also, since my GPU is Max-Q design I have the option of switching between optimus mode and discrete graphics mode. In discrete graphics mode focusing on said applications, causes my laptops second screen to go black unless their's mouse movement or something in the application is changing. I assume this is to do with rendering frames.

Luckz commented 3 years ago

Splashable, WhatsApp, Speedtest among many others.

You're welcome to create profiles for all of those and send them to Nvidia ideally for inclusion in a future driver release.

DoubleStrike commented 3 years ago

I hate to pile on to an old issue, but I'm seeing that the usual fix (adding a custom profile with "Monitor Technology" set to "Fixed Refresh") is not actually working. I have an LG 38GL950G ultrawide monitor set to 100Hz. It has a hardware refresh rate display that can be turned on. Even with a profile set to disable GSync for the app, it still drops to as low as 12FPS when the Terminal is the foreground app.

Turning off G-Sync for windowed apps isn't an option, as I frequently play windowed games. This would solve this behavior, but has too many negative side effects.

Are you guys doing something different with profiles to get it to work?

agret commented 3 years ago

Splashable, WhatsApp, Speedtest among many others.

You're welcome to create profiles for all of those and send them to Nvidia ideally for inclusion in a future driver release.

This issue needs to be upstreamed to Microsoft as it seems to be a fundamental issue with the way the UWP technology handles window draws, hopefully it can be fixed in the next Windows build. None of my non-UWP programs experience this weird behavior.

Luckz commented 3 years ago

Even with a profile set to disable GSync for the app

Are you sure you got the right app? Perhaps paste what you're using as the app. (after checking a few posts above to see what usually works)

DoubleStrike commented 3 years ago

Even with a profile set to disable GSync for the app

Are you sure you got the right app? Perhaps paste what you're using as the app. (after checking a few posts above to see what usually works)

I'm using c:\program files\windowsapps\microsoft.windowsterminal_1.3.2651.0_x64__8wekyb3d8bbwe\windowsterminal.exe as the program, which is the path to the executable image as per Task Manager. I also tried WT.EXE in the same folder.

EladKarni commented 3 years ago

So I tried setting GSync to Fullscreen only like suggested above, but that didn't help. I outright disabled Gysnc on my machine, and if fixed the mouse flicker (low refresh rate) but when moving the window around, it is still a laggy mess (with no GSync).

What other options can I attempt?

Luckz commented 3 years ago

Are you sure you got the right app? Perhaps paste what you're using as the app. (after checking a few posts above to see what usually works)

I'm using c:\program files\windowsapps\microsoft.windowsterminal_1.3.2651.0_x64__8wekyb3d8bbwe\windowsterminal.exe as the program, which is the path to the executable image as per Task Manager. I also tried WT.EXE in the same folder.

That's exactly why I asked. You have to use Microsoft.WindowsTerminal_8wekyb3d8bbwe. I uploaded a profile above (with too many other variants that aren't needed). Here's the minimum: Nvidia-Terminal.zip

Apply with https://github.com/Orbmu2k/nvidiaProfileInspector/releases (scoop: scoop install nvidia-profile-inspector). Click the import button in the toolbar, feed it the .nip(s), and you're good to go. (You don't have to wait for the progress bar to finish after each import, that's just re-reading the list.)

some more apps with issues that I created a few profiles for: One Note: Microsoft.Office.OneNote_8wekyb3d8bbwe Paint 3D Microsoft.MSPaint_8wekyb3d8bbwe Snip & Sketch Microsoft.ScreenSketch_8wekyb3d8bbwe Xbox Accessories Microsoft.XboxDevices_8wekyb3d8bbwe Camera (requires overriding existing Nvidia profile) Cortana / Search UI (requires overriding existing Nvidia profile) Feedback Hub Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe Microsoft To Do Microsoft.Todos_8wekyb3d8bbwe

third party: Amazon: Amazon.com.Amazon_343d40qqvtj1t Amazon Prime Video for Windows: AmazonVideo.PrimeVideo_pwbj9vvecjh7j Liberty Global Horizon Go: LibertyGlobal.HorizonGODE_gmwgfebrpy77e my current 12 profile collection: Nvidia-UWP-NoGsync-Profiles.zip

But there are countless more (Mixed Reality Portal, 3D Viewer, ...)

wbollock commented 3 years ago

Also keeping this issue alive/recap. Best fix so far on Windows Terminal Version 1.3.2651.0 (installed w/ choco) is "experimental.rendering.software": true in settings.json.

Downside: Cannot have a game and Windows Terminal window on the Gsync monitor, as Windows Terminal is still treated as a game.

Upside: As Windows Terminal is installed via Microsoft Store, you cannot easily apply the Nvidia Control Panel fix unless using third party nvidiaProfileInsepctor.

kemayo commented 3 years ago

I'll confirm that "experimental.rendering.software": true is a fix for my experience of this. I was seeing the issue regardless of what my fullscreen/windowed settings were for G-Sync.

DoubleStrike commented 3 years ago

I'll confirm that "experimental.rendering.software": true is a fix for my experience of this. I was seeing the issue regardless of what my fullscreen/windowed settings were for G-Sync.

I can also jump in and state that applying this setting at the global level does fix the GSync issues. If we're doing non-hardware-accelerated rendering, does that mean we now suffer a performance penalty? If it's something minor, I wouldn't mind that.

That said, the profile uploaded by @Luckz above did the trick for me. Not sure how that was different than manually picking the correct exe. I also found that since you can add multiple executables to the profile text file, I was able to just add several problem programs to one profile and import it and done.

phknot commented 3 years ago

Just commenting to confirm this issue is still present when using the default settings. Using a RTX3080 with 240Hz G-Sync monitor.

The experimental.rendering.software": true option does fix it though.

Chosin137 commented 3 years ago

@Luckz Nvidia Inspector profile fix worked for me! Thank you for this work around.

I wanted to comment that using "experimental.rendering.software": true option did not fix this issue for me. It still blows my mind that High Framerate Monitors are not the standard in the industry yet.

AeroDeveloper commented 3 years ago

@jalada @SirJson and others, you just have to override it "the right way". For Store/UWP stuff, you need to use the internal name <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>. There is no need to mess with C:\Program Files\WindowsApps permissions.

Save as file with .nip ending, import file with NVIDIA Profile Inspector:

<?xml version="1.0" encoding="utf-16"?>
<ArrayOfProfile>
  <Profile>
    <ProfileName>Windows Terminal Gsync Fix</ProfileName>
    <Executeables>
      <string>windowsterminal.exe</string>
      <string>c:/program files/windowsapps/microsoft.windowsterminal_1.1.2021.0_x64__8wekyb3d8bbwe/windowsterminal.exe</string>
      <string>Microsoft.WindowsTerminal_1.1.2021.0_x64__8wekyb3d8bbwe</string>
      <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>
    </Executeables>
    <Settings>
      <ProfileSetting>
        <SettingNameInfo>G-SYNC</SettingNameInfo>
        <SettingID>279476687</SettingID>
        <SettingValue>1</SettingValue>
        <ValueType>Dword</ValueType>
      </ProfileSetting>
    </Settings>
  </Profile>
</ArrayOfProfile>

Or unzip from this: Nvidia-Terminal.zip

Only <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string> is necessary for a Store install (on my PC/Win/driver; can't test other configs, so I left whatever else seemed somewhat reasonable).

I didn't know how NV would name such a profile (they have inconsistent Microsoft ... / Windows ... naming) and don't know what happens to this custom one if a future driver ships their own.

[on my previous driver 445.78 the Start Menu was also behaving like this half the time, ~32 Hz refresh rate; fixed in newer drivers like 451.85]

@Luckz I would like to implement this fix myself however because NVIDIA Profile Inspector is a 3rd party tool I am struggling to identify the correct source for installing the utiltiy. For the sake of others like me, who are having this issue and used this tool yet, can you point to the source you downloaded the profile inspector from? I would like to make sure that I'm not only installing a legit release but also one that will work in the manner that is consistent with the fix you proposed here. The following are potential locations I have come across in my search: https://github.com/Orbmu2k/nvidiaProfileInspector/releases https://www.guru3d.com/files-get/nvidia-inspector-download,1.html https://github.com/DeadManWalkingTO/NVidiaProfileInspectorDmW/releases

Edit for reply: Per @Luckz response https://github.com/microsoft/terminal/issues/649#issuecomment-739652961 use: https://github.com/Orbmu2k/nvidiaProfileInspector/releases

Feel silly for not scrolling a little further. Thank you @Luckz !

Luckz commented 3 years ago

@AeroDeveloper https://github.com/microsoft/terminal/issues/649#issuecomment-718102564

@DoubleStrike

I also found that since you can add multiple executables to the profile text file, I was able to just add several problem programs to one profile and import it and done.

Unfortunately you cannot have multiple profiles covering the same executables, so in case a future Nvidia driver will add profiles for any of the executables you added, you'll have a conflict and have to remove them one by one (and, if necessary, add the fixes to those new profiles too). I would also prefer having one central master list of apps I need to disable G-SYNC for, but the system doesn't seem designed for that.

wbollock commented 3 years ago

@Luckz Nvidia Inspector profile fix worked for me! Thank you for this work around.

I wanted to comment that using "experimental.rendering.software": true option did not fix this issue for me. It still blows my mind that High Framerate Monitors are not the standard in the industry yet.

Or that Microsoft won't shell out for their developers to have a comfy high framerate monitor

Don-Vito commented 3 years ago

Or that Microsoft won't shell out for their developers to have a comfy high framerate monitor

@wbollock - We've got neither this nor RTX3080 to play Flight Simulator 😿

Counting 3.. 2.. 1.. for @zadjii-msft marking this off-topic and stopping all the fun.

rezuankassim commented 3 years ago

This issue is still happening and for me using nvidia profile inspector method helps me to fix the problem

ghost commented 3 years ago

This doesn't exactly sound like a bug. I believe G-Sync is working the way it was intended alongside Windows Terminal. When Windows Terminal is in focus it will adaptively reduce the framerate to run at the framerate of Windows Terminal and thus cause what appears to be stuttering. Do other UWP apps suffer for a similar experience?

AeroDeveloper commented 3 years ago

Let's recap. Apps like Windows Terminal should not use Gsync, it should be reserved for games and fullscreen applications that benefit from variable refresh rates. However as of current it seems that Windows Terminal (the only WUP app from my testing, no other apps seem to cause this issue EDIT: Luckz has identified quite a few others ) is being detected as a "game" by default and is causing GSync to force the refresh rate of monitors to drop well below 60fps. Now this may have to be something that Windows Terminal devs and Nvidia sort out, but if that route isn't possible then a workaround should be acheived that ensures that Windows Terminal refreshes at least 60 fps (ideally refresh at the capabilities of the display) regardless of whether or not there is an update to the terminal content.

A proper solution should not require that the end user utilize a 3rd party application to make changes to their graphics card settings. Since that's what we have I don't think we should be arguing whether or not this is a bug. "Operating as intended" is not something I would ascribe to this scenerio.

jefmes commented 3 years ago

Been a while since I revisited this, and saw an email update that others are still experiencing the problem. My primary system is on the Slow Insiders ring, now on Windows 10 Pro, 20H2, OS Build 19042.746. I have the latest Nvidia driver from last week with my ASUS RTX 2080, driver 461.09. I'm using an LG Ultrawide G-Sync monitor with a native 3440 x 1440 resolution at 100 Hz. Nvidia G-SYNC option is set to "Enable G-SYNC, G-SYNC Compatible" option "Enable for windowed and full screen mode." All other windows are very responsive except the new Terminal (running version 1.4.3243.0) and resizing and moving the terminal window is choppy and sluggish and just plain not right. I was having no luck this time with the Nvidia profiles as I did some time last year, and instead of using the profiler tool listed earlier I gave the experimental rendering option a try by adding the following to the settings.json file:

// Adding custom rendering option to try to address G-SYNC issue
"experimental.rendering.software": true,

Voila...no more lag. Has anyone experienced additional problematic issues by using this experimental software renderer option? If not, perhaps it's time to make this mode non-experimental and enable it by default? Or has this been confirmed to be some deeper UWP issue, and said someone has a better idea for making full hardware acceleration work properly with this? I suspect there are many other people out there experiencing this who have yet to stumble across this posted issue, and if there's a known solution I would think it'd be better to enable it until a better one can be found.

Luckz commented 3 years ago

Let's recap. Apps like Windows Terminal should not use Gsync, it should be reserved for games and fullscreen applications that benefit from variable refresh rates. However as of current it seems that Windows Terminal (the only WUP app from my testing, no other apps seem to cause this issue) is being detected as a "game" by default and is causing GSync to force the refresh rate of monitors to drop well below 60fps.

I listed about eleventy billion other UWP applications that suffer from this issue. The Win10 Start Menu itself (or Cortana/Search inside it?) was one until recently.

Plex and Plex Media Player are two applications NOT delivered via the Windows Store or Windows itself that need this workaround (disallowing GSync or forcing GSync off).

AeroDeveloper commented 3 years ago

I listed about eleventy billion other UWP applications that suffer from this issue. The Win10 Start Menu itself (or Cortana/Search inside it?) was one until recently.

I updated my comment referencing this but it should be noted that it does not change my overall response to nightfuryninja, this is still a bug. Any idea on how other apps fixed this?

afonsojramos commented 3 years ago
// Adding custom rendering option to try to address G-SYNC issue
"experimental.rendering.software": true,

@jefmes My eyes thank you so much.

zyazhb commented 3 years ago

works well now with the following

// Adding custom rendering option to try to address G-SYNC issue
"experimental.rendering.software": true, 

@jefmes tnx a lot

lemongarbage commented 3 years ago

@Luckz #649 (comment)

This fixed my issue for me. No other solution was acceptable since it required manual interaction with programs (e.g., toggling G-Sync on/off).

Thank you sir!!

TheNoobWar commented 3 years ago
"experimental.rendering.software": true, 

This resolves my GSync issues on Windows Terminal 1.6.10571.0.

As this may be related to hardware, my GPU for reference is EVGA GeForce 2080 Ti FTW3 Ultra on driver 461.72.

Thank you!

Znuff commented 3 years ago
"experimental.rendering.software": true, 

This doesn't resolve my issue.

nVidia GTX 1080 Ti with Dell S2721DGF.

yoroshikun commented 3 years ago

Hi all, just letting everyone know that enabling this in the settings tab worked for me image

RTX 3080

rubenalamina commented 3 years ago

Hi all, just letting everyone know that enabling this in the settings tab worked for me image

Can confirm using software rendering fixes the issue for me as well. I'm assuming it's the same as the workaround mentioned several times in this thread: "experimental.rendering.software": true,

ACastanza commented 3 years ago

The "Use software rendering" toggle fixed it for me as well!