Terminal: 使用终端时GSync / Freesync刷新率/ FPS下降

创建于 2019-05-10  ·  128评论  ·  资料来源: microsoft/terminal

我的主显示器是144Hz。 查看当前FPS的一种简单方法是摆动鼠标-144 FPS的运动比60 FPS平滑得多,这非常引人注目。

在使用终端时,FPS会不断下降,并在低FPS和完整144 FPS之间移动。 我不能说它是否下降到60 FPS或不同的数量,但远低于144 FPS。 键入时摆动光标可以很好地解决此问题。

似乎与终端的每次交互都可能导致FPS在高低之间“翻转”:聚焦于窗口,打字等。有时,等待大约3秒钟足以使FPS切换回高电平。

显卡是Nvidia GTX 1080 Ti ,显示器是Asus PG279Q

C:\WINDOWS\system32>ver

Microsoft Windows [Version 10.0.18362.86]
Area-Rendering Help Wanted Issue-Bug Priority-2 Product-Terminal v1-Scrubbed

最有用的评论

过去几天,我一直在处理相同的问题。 到目前为止,我发现的唯一解决方法是禁用Windows终端的G-Sync。

  1. 打开NVidia控制面板。
  2. 在左侧,选择“管理3D设置”。
  3. 选择程序设置选项卡。
  4. 您必须将Windows Terminal应用程序添加到下拉列表中的程序列表中。
  5. 框中的选项之一应显示已启用G-Sync。 禁用它。
  6. 应用更改。

但这只会处理问题,而不会处理源。 我以前从未有其他UWP应用程序遇到此问题,因此这很可能是Windows终端问题。

我遇到了Nvidia GTX 1080 Ti和这款144hz Dell G-Sync显示器的问题。 我已确保已安装最新的Nvidia驱动程序,但尚未尝试任何预发行版驱动程序。

所有128条评论

我不认为开发团队中的任何人都拥有144Hz监视器,因此如果社区中有人愿意帮助我们进行调试,我们将不胜感激。

过去几天,我一直在处理相同的问题。 到目前为止,我发现的唯一解决方法是禁用Windows终端的G-Sync。

  1. 打开NVidia控制面板。
  2. 在左侧,选择“管理3D设置”。
  3. 选择程序设置选项卡。
  4. 您必须将Windows Terminal应用程序添加到下拉列表中的程序列表中。
  5. 框中的选项之一应显示已启用G-Sync。 禁用它。
  6. 应用更改。

但这只会处理问题,而不会处理源。 我以前从未有其他UWP应用程序遇到此问题,因此这很可能是Windows终端问题。

我遇到了Nvidia GTX 1080 Ti和这款144hz Dell G-Sync显示器的问题。 我已确保已安装最新的Nvidia驱动程序,但尚未尝试任何预发行版驱动程序。

在明确禁用终端的G-Sync(并重新启动后)可以确认
它)问题不复存在。 同意这可以治疗症状,而不是
问题。 至少我们现在有一种解决方法:+1:

在2019年5月10日星期五4:27下午mblowey [email protected]写道:

过去几天,我一直在处理相同的问题。 唯一的解决方法
到目前为止,我发现要为Windows终端禁用G-Sync。

  1. 打开NVidia控制面板。
  2. 在左侧,选择“管理3D设置”。
  3. 选择程序设置选项卡。
  4. 您必须将Windows Terminal应用程序添加到以下列表中
    程序在下拉列表中。
  5. 框中的选项之一应显示已启用G-Sync。
    禁用它。
  6. 应用更改。

但这只会处理问题,而不会处理源。 我从来没有过
其他UWP应用之前曾出现过此问题,因此这可能是Windows终端
问题。

我遇到了Nvidia GTX 1080 Ti和144hz Dell的问题
G-Sync监视器
https://www.dell.com/zh-cn/shop/dell-24-gaming-monitor-s2417dg/apd/210-aizs/monitors-monitor-accessories
我确定我已经安装了最新的Nvidia驱动程序,但我没有
尝试了任何预发布的驱动程序。

-
您收到此消息是因为您创建了线程。
直接回复此电子邮件,在GitHub上查看
https://github.com/microsoft/Terminal/issues/649#issuecomment-491288003
或使线程静音
https://github.com/notifications/unsubscribe-auth/AAJ4X3HNJEYYNFGNVJEUF7LPUVZ2TANCNFSM4HL63MAQ

同样在这里。 我有Gsync屏幕和卡,并且终端像疯了似的落后了。 我可怜的165hz屏幕:(

这里也一样。 165hz G-Sync监视器,GTX 1070,终端中的FPS低。

我有一个144Hz兼容G-Sync(FreeSync)的显示器。 当为窗口(非全屏)应用程序启用G-Sync时,也会遇到FPS较低的问题。

我的显示器有一个FPS指示灯。 我录制了一段视频,以显示运行终端时FPS的变化。 当终端没有焦点时,FPS为144。当终端获得焦点时,FPS通常为48(我的显示器的VRR刷新率的下限。VRR:可变刷新率),当终端没有焦点时,FPS短暂上升。内容被更新,然后再次返回到最小刷新率(48FPS)。

我的视频:
https://youtu.be/wokdiOQzwnU
原谅我失去焦点(由于屏幕弯曲)和背景噪音(您可以将其静音)。

您还可以在此处下载具有HEVC 240FPS(低比特率)的视频文件:
http://qiniu.img.hu60.cn/file-hash-mp4-fb6775bfceeb0577b7244c58851f85a983686237.mp4

注意:此显示器尚未通过Nvidia兼容性测试,因此,当VRR刷新率剧烈波动时,它会闪烁和抖动。 经过认证的G-Sync显示屏可能没有抖动,但是在低刷新率下的输入延迟(鼠标移动速度)是显而易见的。


从视频中的FPS更改来看,Windows Terminal是典型的VRR不友好的GPU加速应用程序。 当内容未更新时,此类应用程序通常不绘制任何内容(因此FPS为0,Nvidia驱动程序将触发超时重绘机制以保持显示器的最小刷新率),并且仅在内容更新时刷新(刷新率)短暂上升)。

这样的应用会导致低端VRR显示屏(通常是早期的G-Sync / FreeSync显示屏)闪烁,并在打开VRR时显着增加输入延迟。

从当前情况来看,禁用Windows终端的VRR(G同步)是唯一正确的选择。


参考:为什么VRR在某些场景中显示闪烁
https://pcper.com/2014/12/a-look-into-reported-g-sync-display-flickering/

因此,在启用了G-Sync的监视器上也遇到了同样的问题,并且在查找代码之后,我能够缩小原因范围。 对于那些不熟悉的人,G-Sync是一项NVIDIA技术,可以将显示器的刷新率与屏幕上的帧速率同步。

如果在支持G-Sync的系统上,将NVIDIA控制面板中的窗口和全屏模式的G-Sync选项设置为“已

image

如果将选项设置为“全屏”模式启用,则终端的低FPS不会降低G-Sync监视器的刷新率,并且一切都会按预期进行。

较低的FPS(和较低的刷新率)似乎是由于出于性能原因仅出于更改而重新渲染屏幕的事实。 在空闲状态下,只有闪烁的光标会刷新屏幕,导致FPS下降约42。如果您开始键入,则帧速率会上升,并且可以看到刷新率的变化。

这是一种不寻常的情况,有几种解决方案。

  • 当您想使用启用了G-Sync的Windows终端时禁用窗口模式选项(不理想)
  • 每个周期重新绘制屏幕,​​将窗口的FPS提高到监视器的最大刷新率(也不理想,因为这会降低性能)
  • 要求Nvidia在其Windows终端驱动程序中添加一个例外(不确定是否可能)。

我没有要测试的硬件,但这也可能是FreeSync监视器的问题。 目前,简单的解决方法是在NVIDIA控制面板中将“全屏同步”选项设置

正如其他人所说,最好的解决方案是为终端创建一个应用程序配置文件,以仅为此应用程序禁用GSync。 NVIDIA可以发布具有驱动程序更新的游戏/程序的配置文件,并且每次您更新驱动程序时,它们通常都会执行此操作,因此,我认为最好的做法是向NVIDIA报告,以便他们可以使用新终端来解决意外行为。

较低的FPS(和较低的刷新率)似乎是由于以下事实而导致的:仅出于性能原因更改屏幕才进行渲染

哦,那很有道理。 当我们只有一个GDI(CPU)渲染器时,我们显然只想对更改进行重新绘制。 但是,使用DX渲染器,也许并不是什么大问题。

@miniksa有什么方法可以触发GPU帧速率的假帧? 这样,即使没有新内容,我们也不会放弃FPS?

确认这发生在内部版本18990上,完美的解决方法是在未全屏显示时禁用G-Sync。

我遇到了同样的问题,可以确认在窗口模式下禁用G-Sync是有帮助的。

@ zadjii-msft,我确实在没有这些监视器之一的情况下将其伪装用于先前的修复方法。 一旦我将分支交给具有监视器的人员,它就无法正常工作。

我们需要这种硬件,或者我们需要抱怨这种硬件的人之一,还要具备从源代码进行构建和调试的技能。

我本来是想帮助调试的,但看来我再也无法重现此问题了。 我已经确认Windows终端设置为使用G-Sync,但是在与该应用进行交互时,我再也看不到任何帧频下降。
自从我的第一反应以来,

我本来是想帮助调试的,但看来我再也无法重现此问题了。 我已经确认Windows终端设置为使用G-Sync,但是在与该应用进行交互时,我再也看不到任何帧频下降。
自从我的第一反应以来,

有趣。 那么可能是驾驶员的事情吗? 感谢数据点@mblowey。

@miniksa有趣的问题,我只是打开计算机,并为所有窗口应用程序启用了G-SYNC,即使重新启动后,也无法重现此问题。

我也没有改变任何硬件和软件(没有重新安装或更新的Windows,并没有重新安装或更新我的图形卡驱动程序,并没有重新安装或更新我的Windows终端),因为我在这里的第一个响应的https:/ /github.com/microsoft/terminal/issues/649#issuecomment -544209435

我曾经按照此评论https://github.com/microsoft/terminal/issues/649#issuecomment -491288003解决此问题

另外,在我发表第一个评论后,我从Steam安装了很多游戏,也许他们安装了一些重要的图形依赖项然后解决了此问题。

如果有人遇到此问题,请尝试执行此操作

  1. 遵循此评论https://github.com/microsoft/terminal/issues/649#issuecomment -491288003
  2. 重启
  3. 第一步

也许可以判断这是否是由NVIDIA驱动程序引起的

可以在Windows 10 Build 10.0.19033.1上使用最新的Nvidia驱动程序441.20与ASUS GTX 2080进行确认,此问题仍然存在。 如果我关闭了“窗口和全屏模式”的G-SYNC并仅切换回“启用全屏模式”,则它在正常性能下的表现应为正常。 我正在使用最新的终端版本(截至2019年11月26日,很抱歉,不确定如何直接获取该版本。)不确定我还能提供什么帮助,但是我认为我至少要报告该问题还在那里

编辑:还确认将应用程序排除项添加到Nvidia控制面板工具的方法仍然有效。 不知道您可以这样做,所以谢谢您的分享! 可能会解决我在Quicken中遇到的类似问题。 :)

正如上面@jefmes所指出的,我已经用相同的win 10,终端,驱动程序和图形卡重现了此问题。

在144hz G-Sync显示器上,当前的0.7.3451.0版本存在相同的问题。 在Nvidia控制面板中将Monitor Technology(显示器技术)设置为“ Fixed Refresh”(固定刷新)并将Vertical Sync设置为“ Fast”之后,问题就消失了。

我正在Windows 10 Insider Build 19041.1上运行GTX 1070,驱动程序版本441.66。

我了解终端和图形驱动程序之间的混乱是如何产生的,我不了解的是像Microsoft这样的小型开发人员如何负担不起/证明200美元至300美元的显示器来调查错误的合理性。 也许与nvidia一起使Windows标记为空闲模式或桌面模式(即使使用Directx时),应用程序刷新也很慢,但光标仍然显示,因此您需要最大fps。 基本上是MS可以控制的解决方法的自动版本。

FYI Cmder和Hyper终端窗口的重绘率没有问题。 无论我设置了什么刷新率,在焦点对准和拖动两个终端的窗口时,光标移动都可以正常工作,并且黄油平滑。

为什么Windows Terminal窗口不能以当前的桌面刷新率工作?

为什么Windows Terminal窗口不能以当前的桌面刷新率工作?

由于存在一个错误,我们仍在努力解决。

我不知道它是否有帮助,但是我不仅在新的Windows Terminal中而且在XAML应用程序中都看到相同的行为。 在这些情况下,同样的解决方法也适用。

像Nvidia驱动程序这样的感觉需要更好地检测什么是游戏以及什么是应用程序。 有人在带有FreeSync的AMD上看到此行为吗?

我注意到,如果您有足够的文本历史记录,可以使用滚动条使光标闪烁的当前行变为“屏幕外”,则拖动窗口时的刷新率将恢复正常。

好的,是的,所以我正在考虑在办公室中安装硬件,以便实际上可以对此进行处理。

我去了解了这些东西是如何工作的,结果发现这两种技术比我意识到的要大得多。

这仅在GSYNC显示器+ NVIDIA图形卡的NVIDIA管线上发生吗? 还是FreeSync显示器+ AMD(或NVIDIA)显卡可以实现?

我基本上是在寻找可以放在采购清单上的两部分,希望它们不会比GTX 1080Ti和Asus PG279Q贵。

如果该线程上的任何人都可以提出建议或他们的报告是否在FreeSync / AMD世界中发生,我将不胜感激。

我有在GSync兼容模式下运行的Nvidia RTX 2060和Acer XF270HU(这是FreeSync显示器)。 我也遇到了这个问题,但是注释https://github.com/microsoft/terminal/issues/649#issuecomment -568196580中描述的方法可以做到fix
删除该修补程序会使问题再次出现,但并非总是如此。 当我第一次删除这些更改时,它并没有立即下降到〜60-40fps,而只是在一段时间/重启后才出现。
然后,我想尝试使用Nvidia的GeForce体验记录功能进行记录。 一旦开始记录,它就会跳回144,甚至在使用终端时也保持在该位置(这可能是由于记录以某种方式强制了整体固定刷新率)。 一旦停止,它就保持在144(即使没有前面提到的修复程序)。 我尝试了Ctrl + Shift + Win + B组合,但没有任何影响,但仍然保持在144。
因此,尽管该问题似乎仍然存在,但要始终如一地重现也很困难,并且总体来说还是很挑剔的,但这并不是纯GSYNC监视器所独有的。

我想我知道如何始终如一地重现此问题。 我在重新安装Windows后发现了这个问题,想知道为什么我从来没有一次出现终端滞后:smile:

image

将其切换回“启用全屏模式”或完全禁用它,问题解决了。

我认为您甚至可以在通过DP连接的非G-Sync 60hz显示器上重现此行为。 唯一的区别是这样的配置没有意义,并且驱动程序通知Nvidia尚未显示该信息。

但是我认为还有更多。 我在屏幕快照上显示的是“配置错误”,而不是默认设置。 如果我因为要在窗口模式下玩游戏而仍然使用G-Sync那样进行设置,该怎么办?

我不了解的是它甚至如何减慢系统光标的速度。 光标,窗口绘制循环和更新循环不应该是独立的吗?

我想我知道如何始终如一地重现此问题。 我在重新安装Windows后发现了这个问题,想知道为什么我从来没有一次出现终端延迟😄

image

将其切换回“启用全屏模式”或完全禁用它,问题解决了。

我认为您甚至可以在通过DP连接的非G-Sync 60hz显示器上重现此行为。 唯一的区别是这样的配置没有意义,并且驱动程序通知Nvidia尚未显示该信息。

但是我认为还有更多。 我在屏幕快照上显示的是“配置错误”,而不是默认设置。 如果我因为要在窗口模式下玩游戏而仍然使用G-Sync那样进行设置,该怎么办?

我不了解的是它甚至如何减慢系统光标的速度。 光标,窗口绘制循环和更新循环不应该是独立的吗?

我也在3440x1440 144hz FreeSync2显示器上也遇到了这个问题,并且在NVIDIA控制面板中将GSync模式设置为Enable for full screen mode为我解决此问题。 同意以上观点-应用程序窗口滞后立即引起注意。

运行版本:0.11.1121.0

我想我知道如何始终如一地重现此问题。 我在重新安装Windows后发现了这个问题,想知道为什么我从来没有一次出现终端延迟😄
image
将其切换回“启用全屏模式”或完全禁用它,问题解决了。
我认为您甚至可以在通过DP连接的非G-Sync 60hz显示器上重现此行为。 唯一的区别是这样的配置没有意义,并且驱动程序通知Nvidia尚未显示该信息。
但是我认为还有更多。 我在屏幕快照上显示的是“配置错误”,而不是默认设置。 如果我因为要在窗口模式下玩游戏而仍然使用G-Sync那样进行设置,该怎么办?
我不了解的是它甚至如何减慢系统光标的速度。 光标,窗口绘制循环和更新循环不应该是独立的吗?

我也在3440x1440 144hz FreeSync2显示器上也遇到了这个问题,并且在NVIDIA控制面板中将GSync模式设置为Enable for full screen mode为我解决此问题。 同意以上观点-应用程序窗口滞后立即引起注意。

运行版本:0.11.1121.0

@zackhorvath有哪些特定的显示器和图形卡型号?

我仍然有兴趣在某个时候解决此问题,即使该流行病在硬件采购上有点延迟。

感谢您的回复@miniksa

我目前正在运行带有NVIDIA GeForce GTX 1080ti(EVGA型号# 11G-P4-6393-RX )的LG 34GK950F-B显示器。 我特定的NVIDIA驱动程序是26.21.14.4587

如果需要,我可以提供其他信息!

不,很好,谢谢@zackhorvath。 我希望您的repro设置不是$ 900的显示器和$ 1100的显卡,而是更像是$ 300的显示器和$ 200的显卡...

正如我所说的,它可以用我便宜又旧的三星60hz Full HD显示器重现。 所需要的就是可以执行某种形式的G-Sync或FreeSync和DP电缆的Nvidia GPU。

当G-SYNC设置为“启用窗口模式和全屏模式时”,此问题并不孤立于终端。 我在其他一些应用程序中也看到了相同的行为,例如:

  • Malwarebytes反恶意软件
  • 吉特叉
  • WhatsApp桌面

正如我所说的,它可以用我便宜又旧的三星60hz Full HD显示器重现。 所需要的就是可以执行某种形式的G-Sync或FreeSync和DP电缆的Nvidia GPU。

抱歉,被隔离时我的阅读理解不是很好。 我错过了。

当G-SYNC设置为“启用窗口模式和全屏模式时”,此问题并不孤立于终端。 我在其他一些应用程序中也看到了相同的行为,例如:

  • Malwarebytes反恶意软件
  • 吉特叉
  • WhatsApp桌面

这听起来越来越像是NVIDIA驱动程序错误,那时我什么也不能做...

我与@miniksa讨论了此问题,并正在寻找可能的缓解措施。 我拥有所需的硬件,可以轻松重现该问题。

对于它的价值,我也在其他几个应用程序中以及一些意外的应用程序中观察到了这一点。 例如,Visual Studio安装程序也出现相同的问题。 它们中的每一个似乎都是基于UWP和/或XAML的。

坦白地说,我也认为这是一个驱动程序错误,但是由于这在Windows中到处都是,而且Nvidia GPU并不少见,所以我认为Microsoft的某人可以转发此问题。 可能有些麻烦,但是那些Nvidia驱动程序已通过WHQL认证吗? 他们不应该破坏Windows。

刚刚提到,当前版本的软件(Windows终端版本:0.11.1251.0),Nvidia GPU和Freesync监视器仍然存在此问题。 第三条评论中的解决方法仍然有所帮助。 我会说禁用窗口应用程序的G-sync的另一种解决方法不太好,因为至少我以无边界窗口模式玩了一些游戏。

似乎最好的解决方案是让Nvidia驱动程序更好地检测从G-sync受益的应用程序,无论是游戏还是其他程序。 但是专门用于Windows Terminal的内置Nvidia配置文件将是一项省力的修复程序。

但是专门用于Windows Terminal的内置Nvidia配置文件将是一项省力的修复程序。

我不知道这是什么意思。 您说的这个简介是什么? 我可以在我们的应用程序旁边添加一个清单,以告诉NVIDIA驱动程序退出G同步吗? 还是NVIDIA必须在驱动程序包中包含这些内容?

但是专门用于Windows Terminal的内置Nvidia配置文件将是一项省力的修复程序。

我不知道这是什么意思。 您说的这个简介是什么? 我可以在我们的应用程序旁边添加一个清单,以告诉NVIDIA驱动程序退出G同步吗? 还是NVIDIA必须在驱动程序包中包含这些内容?

他们指的是您可以在nVidia控制面板中设置的nvidia应用程序配置文件,但据我所知,这不是可行的解决方案。 无论我为Windows终端的应用程序特定的配置文件选择了什么设置,其行为都保持不变。 如果有人找到了可行的组合,可以分享一下,因为这样可能会给我一些有关如何在终端本身中解决此问题的想法。

另外,据我所知,即使配置文件确实有效,nVidia也必须是将其包含在驱动程序包中的配置文件。

到目前为止,我已经尝试对终端进行各种修改,但均未成功,包括禁用垂直同步,DXGI_PRESENT_ALLOW_TEARING,DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING的应用等。 我已经询问了其他一些专家,希望有人知道可以应用的特定于应用程序的解决方法,但是目前尚无ETA。

此问题并非特定于Windows Terminal。

到目前为止,我已经尝试对终端进行各种修改,但均未成功,包括禁用垂直同步,DXGI_PRESENT_ALLOW_TEARING,DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING的应用等。 我已经询问了其他一些专家,希望有人知道可以应用的特定于应用程序的解决方法,但是目前尚无ETA。

此问题并非特定于Windows Terminal。

谢谢,@ binarycrusader。 如果可以访问硬件,这些就是所有要尝试的标志和事情。

这似乎发生在Deezer Music(UWP),WhatsApp Desktop和大多数基于Electron的应用程序中。 有点无关,但NVIDIA“ Web”驱动程序几乎在所有macOS应用程序中都显示了此行为。

哎呀,看来这个问题的电子答案是\ _(ツ)_ /

https://github.com/electron/electron/issues/3026

我也不确定它是否已固定在铬中-他们的跟踪器上的这个问题仍然存在,尽管此时已经过了几年😕

我想知道是否将https://github.com/microsoft/terminal/blob/e61968ca87de7fd9c08b50f63e8cccb01f240596/src/renderer/base/thread.cpp#L208 -L212更改为使用IDXGIOutput::WaitForVBlank (https://docs.microsoft。 com / en-us / windows / win32 / api / dxgi / nf-dxgi-idxgioutput-waitforvblank)将有助于解决此问题...

另请参阅: https : ? id= 467617https://www.vsynctester.com/firefoxisbroken.htmlhttps://bugzilla.mozilla.org/show_bug .cgi?id = 1628137https://bugs.chromium.org/p/chromium/issues/detail?id=953970

@miniksa

您说的这个简介是什么? 我可以在我们的应用程序旁边添加一个清单,以告诉NVIDIA驱动程序退出G同步吗? 还是NVIDIA必须在驱动程序包中包含这些内容?

为了澄清,我指的是Nvidia必须包含在驱动程序中的设置。 它已经在其内置的“程序设置”列表中列出了大约1000个程序(我没有的游戏和应用程序),我认为它们为所有这些程序都提供了一些自定义设置,但是我现在不确定。

@binarycrusader

无论我为Windows终端的应用程序特定的配置文件选择了什么设置,其行为都保持不变。 如果有人找到了可行的组合,可以分享一下,因为这样可能会给我一些有关如何在终端本身中解决此问题的想法。

这些设置为我修复了它:

image

我想我只将其设置为“固定刷新”,我不确定为什么其他两个设置会以粗体显示。 但是所有其他设置均为默认设置。

通过Nvidia自身当前的控制面板创建的用户定义的配置文件似乎总是通过可执行文件的绝对路径来引用应用程序。 这对于我以前使用的其他应用程序效果很好,但是由于Windows应用商店将每个Windows终端更新都安装到了一个不同的目录,因此关联的配置文件短暂地令人讨厌。

我已经在少数情况下使用Nvidia Profile Inspector进行更精细的控制,并发现使用该工具创建的用户定义的配置文件:

  1. 仅在没有路径的情况下匹配可执行文件名称
  2. 允许将多个可执行文件添加到单个配置文件
  3. 允许自定义名称以使其清晰

它还可以更好地了解Nvidia已随当前驱动程序包提供的数百个配置文件,但这些配置文件已隐藏在其控制面板中。 已经有数十种Microsoft应用程序,包括Microsoft Win10 StoreMicrosoft Visual Studio等,它们倾向于匹配一些不同的可执行文件(无路径),并且在其Sync and Refresh部分中,将GSYNC - Application State覆盖Force Off

我现在有一个单独的__No_GSync配置文件(命名为方便排序到列表的顶部), WindowsTerminal.exe__No_GSync配置文件中通过检查器覆盖的唯一设置是GSYNC - Application StateForce Off 。 在Nvidia自己的控制面板中查看时,此配置文件显示的唯一替代项是Monitor Technology ,它似乎设置为Not supported for this application ,甚至不允许在该视图中更改此值。

我希望这对我自己来说是一个更可靠的“一劳永逸”解决方案,并且希望Windows终端团队可以与Nvidia交流,以将类似的配置文件捆绑到将来的驱动程序版本中。

Windows Terminal Release Candidate v0.11.1333.0(1.0rc2)上的settings.json中添加"experimental.rendering.software": true为我解决了这个问题。

我认为我会损失一些级别的性能,但是我在计算机上感觉不到。

在我的系统上,没有任何使用配置文件来管理它的运气。 使用nVidia配置文件强制关闭GSYNC似乎无效。 我尝试了可执行文件和设置的所有变体。 我尝试同时使用nVidia控制面板和配置文件检查器工具。

我也无法获得基于配置文件的解决方案。 我注意到,在添加自定义配置文件时,在NVIDIA控制面板中Windows终端永远不会出现在最近使用的程序列表中。 我怀疑NVIDIA驱动程序无法识别Windows Terminal正在运行。

如果这可能对其他人有所帮助,这些是我在Nvidia控制面板中的设置

image

Windows Terminal Release Candidate v0.11.1333.0(1.0rc2)上的settings.json中添加"experimental.rendering.software": true为我解决了这个问题。

我认为我会损失一些级别的性能,但是我在计算机上感觉不到。

我也遇到了这个问题,G-Sync配置文件的更改无法解决问题,但是确实可以解决。 谢谢。

在使用了几天之后,配置文件解决方案对我来说最有效,但是我偶尔会遇到不适用于Windows Terminal的情况。 我也没有在相同的no-gsync配置文件中看到任何其他应用程序的此问题。

在一段时间内,我的Nvidia配置文件当前忽略了我的Windows应用商店安装的Terminal副本,我直觉地从发布页面下载了匹配的msix(1.0.1401.0),并将x64版本的文件夹直接提取到了我的文件夹中。桌面。 启动该副本的WindowsTerminal.exe已为其窗口正确禁用gsync,而仍同时运行的Windows应用商店安装的副本已启用其gsync。 每次连续几次重启将产生相同的结果。

这些启动之间未更改配置文件。 从理论上讲,我希望同一个配置文件对两者都具有同等影响,以至于都不使用gsync。 我想知道这是否可能是权限的复杂化,并通过wt.exe链接来启动商店分布式版本,从而导致它被Nvidia当前的检测机制所影响。 我不知道如何解释我的现有配置文件,在大多数情况下似乎也正确地适用于Store副本...我清除了所有其他用户定义的配置文件,并尝试关联使用中的其他窗口,但未发现任何模式。

我可能会继续使用提取的版本而不是商店的版本一段时间,以查看它是否可靠。 它具有额外的好处,即在固定到任务栏时,可以轻松地在其快捷方式上设置工作目录,并且在存储库强制执行更新时,在托管长时间运行的终端进程时,它也永远不会被悄悄杀死。 到目前为止,唯一显然缺少的东西是ms-appx路径引用的配置文件图标。


顺便说一句,我还一直在测试neovim的基于gpu的GUI前端),在懒惰屏幕重绘方面表现类似,因此默认情况下,当它不需要任何内容​​时,gsync刷新率下降相同重画。 据我所知,nvidia配置文件解决方案适用于具有100%可靠性的neovide。 从实验那里还可以看出,nvidia配置文件仅在首次启动应用程序时进行评估,因此在neovide已运行时向我的no-gsync配置文件中添加/删除neovide.exe不会改变其已在运行的gsync状态,但会在下一次发射。 对于其他任何进行故障排除的人员,可能会很有用。

这样就排除了DirectX中的问题,因为neovide使用Vulkan。。对于更现代的游戏,尤其是基于UWP的游戏,仅提供“全屏窗口模式”而不是“独占全屏模式”,我想知道G-Sync是否在做什么?我们没有为窗口模式启用G-Sync。

但是,此错误似乎超出了此存储库的范围(以及其他所有发生此问题的项目),因此,如果没有人注意到这一错误,并且没有人与Nvidia的某人有任何联系,这种情况是否会得到解决? 使用Windows并能够使用我购买的硬件和功能玩游戏会很酷,而不是在系统上堆积很多麻烦。

对于使用Nvidia控制面板/管理3D设置的方法,您能否阐明如何将Windows Terminal添加到“程序设置”下拉列表中? 对于我来说,它没有出现在下拉列表中,并且如果从Windows应用商店安装了可执行文件,我不确定如何浏览该可执行文件。

对于使用Nvidia控制面板/管理3D设置的方法,您能否阐明如何将Windows Terminal添加到“程序设置”下拉列表中? 对于我来说,它没有出现在下拉列表中,并且如果从Windows应用商店安装了可执行文件,我不确定如何浏览该可执行文件。

自从我进行设置以来已经有一段时间了,但是我相信我只是确保在打开面板时确保程序正在运行,并且它要么立即显示出来,要么我可以在上面发布的屏幕快照中点击“添加”,选择“当前正在运行的程序”或类似的方法。

不知道为什么MSBOT会解决此问题以及所有重复的问题,因为在settings.json中添加设置"experimental.rendering.software": true settings.json是我可以在计算机上“解决”此问题的唯一方法

意思是渲染发生了什么?

不知道为什么MSBOT关闭了

这个问题尚未解决,在我们为图形驱动程序功能不佳的人找到解决方案之前,它将一直没有解决。 就目前而言,软件渲染(或)告诉图形堆栈不要将Terminal视为解决该问题的游戏。

不知道为什么MSBOT关闭了

这个问题尚未解决,在我们为图形驱动程序功能不佳的人找到解决方案之前,它将一直没有解决。 就目前而言,软件渲染(或)告诉图形堆栈不要将Terminal视为解决该问题的游戏。

不幸的是,我也无法通过功能异常的图形驱动程序设置来解决此问题。 它也没有出现在Nvidia的“控制面板” /“管理3D设置” /“程序设置”下拉菜单中。

Nvidia RTX 2080上的settings.json "experimental.rendering.software": true设置也为我修复了。与更改Nvidia的“控制面板”中的全局​​设置相比,我认为这是首选的解决方案。

更新:

我会把它当作。 如果您有两台显示器:一台具有G-Sync高刷新率,另一台具有基本60hz,则将终端置于60hz屏幕上仍会导致高刷新率屏幕上的所有应用运行缓慢。

另一个更新:

使用设置"experimental.rendering.software": true ,并将Windows 10更新到v 2004,为我修复了该问题。

它也没有出现在Nvidia的“控制面板” /“管理3D设置” /“程序设置”下拉菜单中。

它不会自动出现在下拉列表中,但是在按下旁边的“添加”后,它应该出现在检测到的应用程序列表中。

它也没有出现在Nvidia的“控制面板” /“管理3D设置” /“程序设置”下拉菜单中。

它不会自动出现在下拉列表中,但是在按下旁边的“添加”后,它应该出现在检测到的应用程序列表中。

不幸的是,它也没有出现..:/

1.0版和gsync版本存在相同的问题-帧速率下降到约40 fps,并且监视器闪烁。 使Windows终端几乎无法使用

更新: "experimental.rendering.software": true似乎可以在Windows 2004上正常工作

@ robert-sandor如上所述,在该线程中,某些用户已经成功设置了"experimental.rendering.software": true

@ robert-sandor如上所述,在该线程中,某些用户已经成功设置了"experimental.rendering.software": true

我在SLI中有两个1070ti,驱动程序v446.14,以及台式机上120hz的Alienware AW3420DW。 我也遇到了帧速率降低的问题。 将此设置添加到配置中可以解决该问题。

Windows Terminal Release Candidate v0.11.1333.0(1.0rc2)上的settings.json中添加"experimental.rendering.software": true为我解决了这个问题。

我认为我会损失一些级别的性能,但是我在计算机上感觉不到。

这为我解决了。 我们什么时候可以期望它不在实验性的@ zadjii-msft之外?
仅供参考:2台显示器,1 144hz Gsync其他60hz

通过允许Nvidia配置文件强制禁用Gsync,过去两周来,我通过将软件包提取到我自己的文件夹并直接运行WindowsTerminal.exe来绕过商店的解决方法一直是100%可靠的。 全局启用Gsync并在这样的特定应用中强制禁用它仍然是我的首选解决方案。 降级为软件渲染似乎是不可取的。

我已经在当前的Nvidia驱动程序版本446.14上尝试了多种其他应用和方案。 通过该组合专门遇到的唯一Windows终端是通过Windows Store安装的:1)Gsync启动,2)不受欢迎,3)特定于应用程序的Nvidia驱动程序配置文件无法禁用它。 这包括通过Windows应用商店安装的UWP游戏(例如Astroneer- Astro-UWP64-Shipping.exe )。 对于包装/许可/交付情况,这似乎是一个有用的比较点,但是Gsync可以按照我的期望启动,并且可以通过特定于应用程序的配置文件禁用。

“ experimental.rendering.software”:真为我修复了它。

截至目前为止,带有最新nVidia驱动程序的1080Ti和Windows 10 2004。

在这个问题上最新的官方词汇是什么?
我宁愿在其他地方使用我的CPU周期。

谢谢你们的解决方案。

软件渲染仍然表现出色:我们站在巨人的肩膀上,我们仍然仅渲染屏幕上已更改的区域。 虽然没有加速,但这是下一件好事。

“ experimental.rendering.software”:true也为我修复了它。

1080和Windows 10 Pro Build 2004上的最新NVidia驱动程序。

此方法是否存在性能问题? 因为据我所知,到目前为止我还没有任何问题。

“ experimental.rendering.software”:true也为我修复了它。

1080和Windows 10 Pro Build 2004上的最新NVidia驱动程序。

此方法是否存在性能问题? 因为据我所知,到目前为止我还没有任何问题。

到现在为止还挺好。

我之前已经很好地关闭了gsync Windows终端预览,但是在驱动程序全新更新后我找不到Windows终端。 而且软件渲染不是修复的好方法,因为我想要GPU加速术语:(

有没有办法手动添加Windows终端不使用gsync? 我认为把exe不适用于uwp。

image

添加"experimental.rendering.software": true也对我有帮助。 使用GTX 970(Nvidia驱动程序432.00)运行Windows Terminal 1.0.1401.0。

此问题并非特定于Windows Terminal。 我还必须为Ableton Live设置实验性标志,并为Spotify禁用硬件加速。

我可以确认在通过Windows存储安装Windows Terminal的情况下, @ krage在说什么关于配置文件覆盖无效。 一般而言,UWP应用程序的某些功能似乎无法与Nvidia配置文件配合使用。 我使用Windows应用商店的终端安装到一个由管理切换(基本上模仿方法@krage使用)和我的Nvidia轮廓正确应用。

我的Windows终端Nvidia配置文件使用以下设置:

  • 首选刷新率(Acer X34):最高可用
  • 显示器技术:​​使用全局设置(G同步)
  • 垂直同步:使用全局设置(快速)

这些设置为我解决了这个问题。

我还可以确认启用"experimental.rendering.software": true解决此问题。 但是我宁愿使用基于硬件的渲染。

硬件:

  • Nvidia GeForce 1080(推送x34)
  • Nvidia GeForce 1060(6GB)(按其他面板)
  • 宏cer X34(G同步显示)
  • GS35UCR DP(非G同步,100Hz显示)
  • 2个HP N270h(60hz非G同步显示)

版本号

  • 英伟达446.14
  • Windows Terminal(未包装)1.1.200615001
  • Windows 10 2004(内部版本20150.rs_prerelease.200612-1734)(内部快速响铃)

顺便说一句,我最近调查了这个问题是否可以解决,简单的答案是:是,但主要是否。
是的,可以通过执行以下操作来缓解此问题:

  • 删除和...
  • 那条线
  • 按照此处的说明添加DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARINGDXGI_PRESENT_ALLOW_TEARING标志

_但_我认为这样做不好,这就是为什么我最后没有提交PR的原因。 因为如果您执行所有操作,那么每个非Nvidia用户现在也将以其显示的全帧速率绘制图像,这完全没有必要。
以我的拙见,Nvidia必须在其方面解决此特定问题,因为它不仅出现在Windows Terminal中,而且出现在使用DirectX的_all_ UWP应用程序中。

而且最重要的是,Nvidia控制面板中的“启用窗口和全屏模式启用”设置也不是默认设置,并且过去已知会破坏很多功能(我敢肯定-是为什么默认情况下默认未启用它)。 🙈

基本上,所有这些都归结为与DX11有关的nVidia问题/错误?

我最近买了一台新显示器(LG27850),没有任何闪烁现象,但是当我从终端到另一程序的Alt-Tab键时,我可以感觉到60Hz和144Hz的区别,这感觉很有趣。

@KrunoSaho我无法证明这一点,但我可能是错的,但我可以肯定的是...
您可以在此处尝试所有“ D2D”(Direct2D),“ DWrite”(DirectWrite)和“ DX”(DirectX)示例,您会注意到它们中的_all_都显示与Windows Terminal相同的问题。
我发现没有相同问题的_only_ UWP + DirectX应用程序是Minecraft的App Store版本。
因此,我认为根本的问题是Nvidia的启发式方法,它决定了进程是否应使用GSYNC。

每个不严格需要的人都应禁用“为窗口和全屏模式启用”:
image

以我的拙见,此问题可以解决,因为使用AMD GPU时不存在此行为,因此排除了Windows Terminal或Windows中普遍存在错误的可能性。

不幸的是,因为我们严格需要它,所以启用了“为窗口和全屏模式启用”设置。 如果我不这样做,那么窗口模式游戏将根本不会使用G-SYNC。 因此,该选项是必须的。
我在Photoshop中也遇到了这个问题,但是至少我无法正常运行的nvidia驱动程序让我只需出现在要选择的应用程序列表中,就可以为该应用程序选择固定的刷新率。

因此,如果没有其他问题,如果您可以使终端应用程序以某种方式/魔术地出现在nvidia控制面板3d设置的应用程序列表中,我将非常高兴。

我已经为此向nVidia提交了一个错误报告。 我们将看看会发生什么,如果有的话。

@electrofloat我尚未成功复制该错误...对我来说,它显示了:
image

...并且它正确地允许我更改“显示器技术”,从而解决了该问题。 如果您没有找到该终端,请尝试通过将其从开始菜单拖放到桌面上来创建桌面上终端应用程序的快捷方式。

我已经通过桌面快捷方式启动了该终端,但是不幸的是,这并没有使其显示在最近使用的应用程序列表中。 :(

@electrofloat尝试重新启动PC。 第一次打开“程序设置”时,Nvidia会在其驱动程序中列出该列表。

@lhecker我读过同样的东西,但也拒绝发送PR。 但是我想得越多,我就越会改变主意...据我所知,您可以检测到Nvidia甚至查询G-Sync,根据文档,这不是解决方法,而应该是它的工作方式。 请记住,AMD员工也将从中受益,因为G-Sync和FreeSync是可互换的。

公平地说,这是一个鸡蛋问题。 AMD显然可以通过驱动程序来解决这种情况,而Nvidia则无法。 由于时间紧迫,很容易说出Nvidia,让他们解决问题。 人们还可以说,实际上Nvidia驱动程序很好,该软件只是不查询并提供用户想要的功能。

我只是觉得有点可悲的是,有一种方法可以通过实施Microsoft已经记录的人员来解决此问题。 这个问题不仅会在Windows终端上发生,而且还会在很多UWP和WPF应用程序中发生

@electrofloat您可以尝试使用添加菜单中的浏览器搜索可执行文件。 可以在C:\Program Files\WindowsApps下的某个位置找到它,您可能需要调整此文件夹的权限。 我也无法使其显示在列表中。

请注意,这实际上对我没有帮助,我的选择是在窗口模式下禁用G-Sync(不,谢谢)或使用实验性标记(此功能有帮助)。

我还观察到,有时使用默认设置无需任何干预即可解决此问题。

可以确认这不是我的计算机上的Windows终端专用的。

@SirJson tl; dr :解决方法错误... Windows终端(WT)显式不应以可变刷新率(VRR)进行渲染。 这与我们如何支持G-SYNC无关,而与我们如何最好地禁用它无关。


WT不能像游戏一样捕获鼠标输入,因此应该正确地与窗口管理器和其他OS(光标移动,拖放等)集成。 它还应该是节能的,这意味着以全FPS运行会适得其反。 例如,Chrome会在不需要时降低速度以完全不渲染。 另一方面,为了让WT在我比较强大的PC上以165 FPS的速度渲染,仅它就占用了几乎整个CPU内核。

如果您的图形驱动程序决定应用程序需要VRR,它将把整个渲染管道(对于应用程序在屏幕上可见)置于VRR模式。 如果该单个应用程序以较低的FPS绘制,则整个屏幕将以该FPS绘制,包括窗口管理器,鼠标光标等-基本上所有内容! 这是仅对全屏应用程序或像游戏一样捕获鼠标光标的应用程序启用VRR的主要原因。 Nvidia的启发式方法几乎适用于所有常规应用程序。 常规.exe(例如Firefox,Chrome,VS代码)均已正确检测为非G-SYNC。 像WT,Slack这样的UWP应用(甚至是Slack!)被错误地检测为需要G-SYNC的应用。 这显然是Nvidia方面的错误。

最后,甚至不能保证WT的DirectX渲染器足够快,可以提供您要寻找的> 120 FPS。
如果这样做失败,则由于上述原因,您的整个屏幕都会变迟钝。

总而言之,WT不应使用VRR进行渲染,如果有人对如何使Nvidia的驱动程序将WT检测为需要G-SYNC的应用程序有任何想法,请告诉我,我将予以实现! 我知道这是有可能的,因为再次,UWP Minecraft是为数不多的被正确检测为非G-SYNC的UWP应用程序之一。

是什么让我感到困惑,来自游戏开发人员的背景,如果这是一个愚蠢的问题,对不起,为什么应用程序循环绑定到渲染器? 在游戏中,甚至在我们没有G-Sync原因之前,如果系统无法处理一个繁重的场景,甚至没人会这样做,例如内部逻辑应该继续进行,甚至渲染速度很慢。

然后,当我考虑它甚至如何使光标不稳定时,我想知道在我的心理模型的后台原因是什么,OS光标与图形应用程序的运行是分开的。 这几乎就像G-Sync正在减慢整个合成器的速度一样。

但我离题只是告诉G-Sync关闭也是一种解决方案,无论如何它并不应该在终端内放置一个位置。 但是如何从我不知道的应用程序代码中做到这一点。

@SirJson我相信渲染器中还有很多地方需要优化。 但是您需要考虑到游戏的设计并不是节能的,这就是为什么它们始终不使用潜在CPU能力的10%的原因。 作为终端,这当然不应该是这种情况,这就是为什么我们想尽可能地限制渲染循环的原因。
鼠标光标不连贯的原因是因为WT被识别为VRR应用程序,并且您的显示帧速率与WT同步。 现在,如果WT以节能的方式渲染(意味着:很少/如果需要),WT的帧速率将下降到3-4 FPS左右,这将导致整个显示器的帧速率下降到3-4 FPS。

是的,我同意,仅仅因为我们可以渲染144次相同的文本是愚蠢的。

关于G-Sync异常,我假设在驱动程序中进行了硬编码。 当我在NVIDIA控制面板中打开我的配置文件时,我会看到针对Chrome,Firefox等的自动配置文件,它们的设置都正确无误,就像人们在这里手动操作一样。 这意味着除非那里的人醒来并在驱动程序中建立配置文件或实际修复G-Sync,否则我们将无能为力。

我很好奇,现在在同一显示器和系统上使用AMD会发生什么。 毕竟,有一个原因可以使我运行此GPU设置,并且如果Windows坚持一次又一次地安装AMD驱动程序,那么我不妨现在进行测试。 我不知道AMD是否允许Window应用程序中的FreeSync。

有没有人找到将其添加到Nvidia控制面板中的应用程序列表中的方法?

根本不适合我:/

是的,单击添加->浏览并转到C:\ Program Files \ WindowsApps \应该有一个名为Microsoft.WindowsTerminal_1.0.1811.0_x64__8wekyb3d8bbwe的文件夹。

exe在里面。

这种方法虽然更好: https :

@SirJson :是的,我同意,仅仅因为我们可以将144次相同的文本渲染是愚蠢的。

如果同一文本可能突然移动,则可能需要较高的帧速率,我不知道现代显示器是否可以立即将帧速率更改为所需的帧速率,以使文本平稳地移动,例如在此类应用程序中(使用WSL配置文件启用鼠标跟踪):

ssh [email protected]

netxs-group / VTM#9使用此应用程序,您可以通过使用任意帧速率的鼠标操作文本内容来测试终端性能。

image

是的,单击添加->浏览并转到C:\ Program Files \ WindowsApps \应该有一个名为Microsoft.WindowsTerminal_1.0.1811.0_x64__8wekyb3d8bbwe的文件夹。

exe在里面。

不过,这种方法更好: #649(评论)

是的,暂时使用那个。 我尝试通过该方法制作个人资料,但是它不起作用。
因此,现在才进行SW渲染。

为UWP应用设置Nvidia配置文件时,我也遇到了麻烦。 我通过独家新闻安装了Terminal,而_still_无法获取它来应用配置文件。 最后,我以@krage的建议使用了https://github.com/Orbmu2k/nvidiaProfileInspector ,并确保配置文件简洁明了:重新将关联与windowsterminal.exe关联,只修改了一个值,即G-同步应用程序状态一

image

瞧! 155Hz端子😎

@jalada对不起,但该方法对我也不起作用:(。似乎仅使用软件渲染是一种选择。我正在使用终端机btw的预览版。

This is my inspector profile btw

经过很长一段时间,给nVidia我的msinfo32报告,他们说他们正在调查它。

你好克鲁诺,

谢谢。 我们正在调查这个问题。 目前没有进一步的更新。

问候,
乔希
NVCC

现在我们玩等待游戏。

@ o-sdn-o但这是一个基准,如果我正确地理解它,而不是您的典型用例。 我尝试从实际的角度来看它,我每天使用144hz显示器。 而且,我还没有找到需要144 FPS的终端应用程序,这不是演示还是很酷的效果。

我看到的问题是我是否要以窗口模式或新推荐的“全屏窗口模式”玩游戏,但同时使用G-Sync而不同时破坏Windows。 请记住,这不仅在Windows Terminal中发生,而且在Microsoft Whiteboard和其他UWP应用中也发生。

令我感到困惑的是,万物的光标被检测为“可变刷新率应用程序”。 对我来说,所有这些听起来都是Nvidia应该研究的东西。

最坏的情况是,分叉,解锁帧频并执行所需的操作。 但这无法解决系统范围的问题。

是的,我完全同意@SirJson ,Nvidia需要通过排除此应用程序来修复其驱动程序。
这并不是Windows终端带来的真正问题。

我觉得我需要再次澄清一下,G-Sync是Nvidia为您的显示器实施的“可变刷新率”(VRR)。
这里的重要位是_“您的监视器” _,因为刷新率不是针对每个应用程序的。 如果有任何应用程序导致启用了G-Sync,则整个监视器现在将以引起G-Sync的应用程序的速度进行渲染。
当将UWP应用与G-Sync一起使用时,您的光标不会结结巴巴,这是因为该光标被检测为VRR应用程序,而是因为整个监视器的刷新率已动态降低。 原因是桌面应用程序(例如Windows Terminal)几乎总是在必要时才绘制,这导致较低的应用程序帧速率,G-Sync最终导致显示器的刷新率较低。

好吧,这使整个功能变得毫无意义了吧? 我假设监视器报告的常数144hz是整个显示器的刷新率,但是使用它们实现此功能的合成器可能有一些花招。

幸运的是,如果我有时间玩游戏,那么我正在玩的一款游戏现在支持真正的全屏显示,由于“发生了什么”而我几个月都没有触摸此选项,因此问题零。 老实说,最初我偶然发现了这个问题,因为我的旧显示器也可能被迫在60hz下进行g-sync(这甚至少了一点,但是嘿,我很好奇会发生什么)

对于有问题且不想使用软件渲染的任何人,我只能建议您做我和其他人130多天前所做的

至少感谢@lhecker为我清理了一切

添加"experimental.rendering.software": true也对我有帮助。 使用GTX 970(Nvidia驱动程序432.00)运行Windows Terminal 1.0.1401.0。

此问题并非特定于Windows Terminal。 我还必须为Ableton Live设置实验性标志,并为Spotify禁用硬件加速。

这使用2080ti和多个165hz GSynced显示器为我解决了此问题

添加"experimental.rendering.software": true也对我有帮助。 使用GTX 970(Nvidia驱动程序432.00)运行Windows Terminal 1.0.1401.0。
此问题并非特定于Windows Terminal。 我还必须为Ableton Live设置实验性标志,并为Spotify禁用硬件加速。

这使用2080ti和多个165hz GSynced显示器为我解决了此问题

这也为我解决了1080ti和165hz GSync的问题。

添加"experimental.rendering.software": true也对我有帮助。 使用GTX 970(Nvidia驱动程序432.00)运行Windows Terminal 1.0.1401.0。
此问题并非特定于Windows Terminal。 我还必须为Ableton Live设置实验性标志,并为Spotify禁用硬件加速。

这使用2080ti和多个165hz GSynced显示器为我解决了此问题

这也为我解决了1080ti和165hz GSync的问题。

这为我解决了RTX 2070和144hz GSync上的问题

具有驱动程序451.67的GeForce 2080 Ti上也发生了同样的事情。 Windows终端的屏幕渲染与其他终端应用程序有何不同? Powershell,Powershell ISE,默认的Windows命令行,Cmder都不会表现出这种奇怪的行为,并且可以在Gsync窗口或窗口设置中使用。

我想在上面再次提及我的评论,因为它们详细解释了这种情况。
此注释尤其应该是最简洁的: https :

我想在上面再次提及我的评论,因为它们详细解释了这种情况。
该注释尤其应该是最简洁的: #649(注释)

如果我们在谈论游戏如何捕获鼠标输入与其他应用程序类型之间的区别,我理解您评论中的理由,但是我想知道为什么我提到的其他终端应用程序似乎可以在启用Gsync的屏幕刷新率下处理鼠标输入而不会出现问题。 这些是标准应用程序,我确定它们没有针对它们的自定义Nvidia控制面板配置文件。 Windows Terminal处理显示渲染的方式有什么区别,开发人员可以解决此问题吗?Nvidia是否需要处理这两个问题?

@Seefer您误会了... G-Sync的工作原理是限制显示器的刷新率而不是光标的帧率。
Windows Terminal(WT)表现出此行为,因为它使用您的GPU而不是CPU渲染外壳,这与您尝试过的其他终端不同。 Nvidia错误地将WT识别为需要G-Sync的应用程序。 您可以在本期的其他评论以及我上面链接的评论中了解更多相关信息。

我知道这听起来很粗鲁,但作为非英语母语者,却缺乏更好的用词:在这里,许多评论者向我似乎好像他们实际上并不知道G-Sync是什么以及它如何工作。 我_强烈建议所有在此关闭窗口应用程序的G-Sync。 您应该考虑到Nvidia具有非常低级的,仅限专家使用的旋钮,最好保留默认设置(即禁用)。 Nvidia控制面板设置应如下所示:
image

在极少数情况下,您希望启用它。 基本上,只有在窗口(非全屏)游戏或其他图形应用程序未以显示器的本机刷新率(144Hz,240Hz等)运行的情况下,才需要更改此设置。

我明白你的意思了。 可悲的是,对于我作为游戏玩家而言,Gsync全屏或窗口模式设置选项并不是真正的选择。 我尽可能地在无边框全屏模式下运行游戏,因为这样可以避免因不能很好地处理ALT-TAB而导致的图形丢失设备问题。 如果游戏崩溃以启动任务管理器或进程资源管理器以终止冻结的游戏,则更容易回到桌面。 我认为我将坚持使用Cmder满足终端需求,直到解决Windows Terminal鼠标行为:(

@Seefer G-Sync的好处是,如果您的应用程序/游戏的帧速率无法跟上显示器的速度,则可以消除屏幕撕裂。 从技术上讲,窗口化(甚至是全屏窗口化)应用程序也不会出现屏幕撕裂现象,因为它们首先由DWM合成,然后再显示在显示器上。 所以我个人想知道哪个游戏需要在窗口模式下进行G-Sync ...🤔

@lhecker我不知道为什么,但是在窗口(无边界全屏)模式下的G-Sync对我来说绝对有明显的不同,所以我继续使用它。 没有它,可变刷新率将无法正常工作(我已经尝试了几件事),而且我认为帧速率会受到Windows或Nvidia驱动程序的限制。 我最近玩过的所有游戏都是这种情况。 我有两个G-Sync显示器,所以我更喜欢使用无边框全屏。

我记得以前曾读过,只有在全屏模式下游戏才能获得对驱动程序的独占访问权,但是几年前,无边界全屏也开始为游戏提供独占访问权,其优势在于能够轻松使用多显示器设置。

我还要提到的是这种情况,即使鼠标不在终端,只要焦点设置在终端上。 如果我让终端占用屏幕并选择它,那么鼠标将滞后于我将其移动到的任何位置。 放下焦点,一切都变得完美。

@jalada @SirJson和其他人,您只需“正确方式”覆盖它。 对于商店/ UWP东西,您需要使用内部名称<string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string> 。 无需弄乱C:\Program Files\WindowsApps权限。

另存为.nip结尾的文件,使用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>

或解压缩:
Nvidia-Terminal.zip

只需<string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>进行Store安装(在我的PC / Win /驱动程序上;无法测试其他配置,因此我认为合理的其他选项)。

我不知道NV将如何命名这样的配置文件(它们的Microsoft ... / Windows ...命名不一致),并且不知道如果将来的驱动程序附带了该自定义名称,将会发生什么情况。

[在我以前的驱动器445.78上,“开始”菜单的运行时间也只有一半,刷新率约为32 Hz; 已在更新的驱动程序中修复,例如451.85]

@jalada @SirJson和其他人,您只需“正确方式”覆盖它。 对于商店/ UWP物品,您需要使用内部名称<string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>

另存为.nip结尾的文件,使用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>

或解压缩:
Nvidia-Terminal.zip

商店安装仅需要<string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>

我不知道NV会如何命名这样一个配置文件(它们的Microsoft ... / Windows ...命名不一致),并且不知道如果将来的驱动程序附带了该自定义名称,将会发生什么情况。

[在我以前的驱动器445.78上,“开始”菜单的运行时间也差不多是此刷新时间的一半,刷新率约为32 Hz]

感谢那。 很棒的工具。 我不知道还有很多其他Nvidia配置文件设置被隐藏了。 我已经将Windows Terminal可执行文件添加到了Nvidia配置文件中,但是没有弄乱那里显示的GSYNC设置,因此我可以调整Windows Terminal鼠标捕获的行为。

似乎并没有基于每个配置文件将“全局GSYNC模式”从“窗口式”或“全屏”动态更改为“全屏”。 使用Nvidia控制面板将GSYNC模式设置为全屏,Windows终端鼠标问题确实消失了,但是如果使用此Profile Inspector工具将GSYNC模式设置为全屏,然后运行Windows Terminal,则鼠标问题仍然存在,好像配置文件设置无法执行一样。覆盖全局设置。 不清楚哪一方需要进行修复(Nvidia或WT开发人员),这一切都很令人沮丧。 在解决此问题之前,我坚持使用Cmder,这很可惜,因为我完全挖掘了WT如何更好地使用WSL2 :(

@jalada @SirJson和其他人,您只需“正确方式”覆盖它。 对于商店/ UWP物品,您需要使用内部名称<string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>
另存为.nip结尾的文件,使用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>

或解压缩:
Nvidia-Terminal.zip
商店安装仅需要<string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>
我不知道NV会如何命名这样一个配置文件(它们的Microsoft ... / Windows ...命名不一致),并且不知道如果将来的驱动程序附带了该自定义名称,将会发生什么情况。
[在我以前的驱动器445.78上,“开始”菜单的运行时间也差不多是此刷新时间的一半,刷新率约为32 Hz]

感谢那。 很棒的工具。 我不知道还有很多其他Nvidia配置文件设置被隐藏了。 我已经将Windows Terminal可执行文件添加到了Nvidia配置文件中,但是没有弄乱那里显示的GSYNC设置,因此我可以调整Windows Terminal鼠标捕获的行为。

似乎并没有基于每个配置文件将“全局GSYNC模式”从“窗口式”或“全屏”动态更改为“全屏”。 使用Nvidia控制面板将GSYNC模式设置为全屏,Windows终端鼠标问题确实消失了,但是如果使用此Profile Inspector工具将GSYNC模式设置为全屏,然后运行Windows Terminal,则鼠标问题仍然存在,好像配置文件设置无法执行一样。覆盖全局设置。 不清楚哪一方需要进行修复(Nvidia或WT开发人员),这一切都很令人沮丧。 在解决此问题之前,我坚持使用Cmder,这很可惜,因为我完全挖掘了WT如何更好地使用WSL2 :(

好的,似乎可行。 我必须在“控制面板”中删除以前的WT配置文件,而仅使用您的.nip文件通过Nvidia Profile Inspector进行导入。 我以为是因为我已经有了WT配置文件,所以不必导入您的文件即可访问WT可执行文件配置文件设置。 现在一切似乎都很好。 我可以将“全局GSYNC模式”设置为窗口显示或全屏显示,并且只有在启动WT时,您的个人资料才会将GSYNC模式调整为“全屏显示”。

非常感谢!

@Seefer G-Sync的好处是,如果您的应用程序/游戏的帧速率无法跟上显示器的速度,则可以消除屏幕撕裂。 从技术上讲,窗口化(甚至是全屏窗口化)应用程序也不会出现屏幕撕裂现象,因为它们首先由DWM合成,然后再显示在显示器上。 所以我个人想知道哪个游戏需要在窗口模式下进行G-Sync ...🤔

您以“无边界窗口”模式运行的任何游戏基本上都是带窗口的游戏,而没有任何Windows操作系统镶边。 这种模式已经存在了很长时间。 我记得在WIN32编程期间使用过它。

@Seefer这就是为什么我个人还没有完全

无论哪种方式,Nvidia都需要将其修复在自己身边。 他们应该只为全屏窗口应用程序启用G-Sync,这些应用程序也会隐藏光标,而不是所有常规窗口应用程序。

@Seefer这就是为什么我个人还没有完全

现在,这已经变得越来越离题了,但是例如:
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.

他们应该只为全屏窗口应用程序启用G-Sync,这些应用程序也会隐藏光标,而不是所有常规窗口应用程序。

当然,可能既有不隐藏光标的游戏又有不隐藏光标的游戏? 抱歉,如果我误解了您,但是当我的媒体播放器隐藏光标时,它就不会成为游戏,我想游戏也可以继续显示Windows光标。

@Luckz您意识到我是在几个月前发布了该解决方案的,但随后不确定该解决方案是否也可以在应用程序级别上

在那之后,我的所有讨论都围绕着寻求并非如此的解决方案:“我们等到Nvidia注意到这一点。” 但这是真正修复的唯一选择,在此之前,软件渲染是一种解决方法。

我知道您的意思不是什么不好,只是因为您经常看到一个名称,但这并不意味着User也是最大的问题。

@Luckz我同意我们会

但是我希望提到该文章,尤其是因为它实际上是错误的,或者至少是相当误导的。 我的意思是不是说这篇文章已经被同行评审了? 因此,请允许我最后一次解释这篇文章的作者是如何曲解他们自己的结果的。
尽管使用了V-Sync,但应用程序帧速率实际上限制为142 FPS,无论如何仍会将帧速率限制为144 FPS。 tl; dr:如果使用垂直同步,则不要设置帧速率。
您的文章的作者只是犯了这个错误,错误地使他们(并且您相信)使您有规律地/总是得到1帧的延迟,这与事实相去甚远。 实际上,由于应用程序帧速率和监视器刷新率的这种“失调”,每144帧中只有2帧被延迟。
在这里可以看到适当的比较(您需要将第一张图像切换到144+ Hz版本)。 为了比较0-2ms的差异:昂贵的现代144Hz监视器通常测得的GtG响应时间约为4ms,我怀疑很多人注意到这一点。 😄

感谢@Luckz的修复/解决方法。

在将其归因于Windows终端导致的问题之前,我会补充一下我所经历的症状。
运行Windows 10 20H2(操作系统内部版本19042.450),我已经看到GSYNC监视器变黑并且无法再次打开(需要重新启动)。 在所有3台显示器上也看到闪烁的黑屏。 一旦应用修复程序,问题似乎就不复存在了。

嘿大家,
我遇到了同样的问题。
我以为笔记本电脑起初就是有问题的笔记本电脑,但后来我注意到问题也出现在某些类型的应用程序上,尤其是Windows Store应用程序。 我注意到它发生了Splashable,WhatsApp,Windows Terminal,Speedtest等。
我的笔记本电脑是华硕ROG Zephyrus Duo 15 GX550LWS
这里的规格
我的外接显示器是运行在165Hz的ASUS VG278QR(兼容GSYNC)游戏显示器

将GSYNC设置为全屏模式非常可笑,但是确实可以解决问题。
另外,由于我的GPU是Max-Q设计,因此我可以选择在最佳模式和离散图形模式之间进行切换。 在专注于上述应用程序的离散图形模式下,导致笔记本电脑的第二个屏幕变黑,除非它们的鼠标移动或应用程序中的某些内容发生变化。 我认为这与渲染帧有关。

Splashable,WhatsApp,Speedtest等。

欢迎您为所有这些文件创建配置文件,并将它们理想地发送到Nvidia,以包含在将来的驱动程序版本中。

我不愿意讨论一个老问题,但是我看到通常的解决方法(添加将“ Monitor Technology ”设置为“ Fixed Refresh ”的自定义配置文件)实际上无法正常工作。 我将LG 38GL950G超宽显示器设置为100Hz。 它具有可以打开的硬件刷新率显示。 即使将配置文件设置为禁用该应用程序的GSync,当终端为前台应用程序时,该配置文件仍会降至12FPS。

由于我经常玩窗口游戏,因此无法关闭窗口应用程序的G-Sync。 这样可以解决此问题,但是有太多负面影响。

你们是否正在使用个人资料进行其他操作以使其正常工作?

Splashable,WhatsApp,Speedtest等。

欢迎您为所有这些文件创建配置文件,并将它们理想地发送到Nvidia,以包含在将来的驱动程序版本中。

这个问题需要向上传播到Microsoft,因为它似乎是UWP技术处理窗口绘制方式的基本问题,希望可以在下一个Windows版本中修复。 我的非UWP程序都没有遇到这种奇怪的行为。

即使配置文件设置为禁用应用程序的GSync

您确定您使用的应用程序正确吗? 也许粘贴您正在用作应用程序的内容。 (检查完上面的几篇文章后,通常可以正常使用)

即使配置文件设置为禁用应用程序的GSync

您确定您使用的应用程序正确吗? 也许粘贴您正在用作应用程序的内容。 (检查完上面的几篇文章后,通常可以正常使用)

我正在使用c:\​​ program files \ windowsapps \ microsoft.windowsterminal_1.3.2651.0_x64__8wekyb3d8bbwe \ windowsterminal.exe作为程序,它是根据任务管理器指向可执行映像的路径。 我也在同一文件夹中尝试了WT.EXE。

因此,我仅尝试按照上述建议将GSync设置为“全屏”,但这并没有帮助。 我彻底禁用了我的计算机上的Gysnc,如果修复了鼠标闪烁(刷新率较低),但是在移动窗口时,仍然会出现混乱(没有GSync)。

我还能尝试其他什么选择?

您确定您使用的应用程序正确吗? 也许粘贴您正在用作应用程序的内容。 (检查完上面的几篇文章后,通常可以正常使用)

我正在使用c:\​​ program files \ windowsapps \ microsoft.windowsterminal_1.3.2651.0_x64__8wekyb3d8bbwe \ windowsterminal.exe作为程序,它是根据任务管理器指向可执行映像的路径。 我也在同一文件夹中尝试了WT.EXE。

这就是我问的原因。 你必须用Microsoft.WindowsTerminal_8wekyb3d8bbwe 。 我在上面上传了个人资料(不需要太多其他变体)。 这是最低要求:
Nvidia-Terminal.zip

使用https://github.com/Orbmu2k/nvidiaProfileInspector/releases进行申请(scoop install nvidia-profile-inspector )。 单击工具栏中的导入按钮,向其输入.nip,您就可以开始了。

一些其他问题所产生的应用程序,我为此创建了一些配置文件:
一注: Microsoft.Office.OneNote_8wekyb3d8bbwe
绘画3D Microsoft.MSPaint_8wekyb3d8bbwe
截图和素描Microsoft.ScreenSketch_8wekyb3d8bbwe
Xbox配件Microsoft.XboxDevices_8wekyb3d8bbwe
摄像头(需要覆盖现有的Nvidia配置文件)
Cortana /搜索用户界面(需要覆盖现有的Nvidia个人资料)
反馈中心Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe
Microsoft做Microsoft.Todos_8wekyb3d8bbwe

第三方:
亚马逊: Amazon.com.Amazon_343d40qqvtj1t
适用于Windows的Amazon Prime Video: AmazonVideo.PrimeVideo_pwbj9vvecjh7j
Liberty Global Horizo​​n Go: LibertyGlobal.HorizonGODE_gmwgfebrpy77e
我当前的12个配置文件集合: Nvidia-UWP-NoGsync-Profiles.zip

但是还有更多的东西(混合现实门户网站,3D Viewer等)

还要保持此问题有效/重述。 到目前为止,在Windows Terminal版本1.3.2651.0(使用choco安装)上的最佳解决方法是“ experimental.rendering.software”:在settings.json中为true。

缺点:Gsync监视器上无法显示游戏和Windows Terminal窗口,因为Windows Terminal仍被视为游戏。

好处:由于Windows终端是通过Microsoft Store安装的,因此除非使用第三方nvidiaProfileInsepctor,否则您无法轻易应用Nvidia控制面板修复程序。

此页面是否有帮助?
0 / 5 - 0 等级