Terminal: Taxa de atualização GSync / Freesync / FPS cai ao usar o Terminal

Criado em 10 mai. 2019  ·  128Comentários  ·  Fonte: microsoft/terminal

Meu monitor principal é 144Hz. Uma maneira fácil de ver o FPS atual é mexendo o mouse - o movimento em 144 FPS é muito mais suave do que 60 FPS, e isso é muito perceptível.

Ao usar o Terminal, o FPS cai constantemente e se move entre FPS baixo e 144 FPS completos. Não sei dizer se cai para 60 FPS ou uma quantidade diferente, mas está bem abaixo de 144 FPS. Mexer o cursor durante a digitação mostra bem esse problema.

Parece que toda interação com o Terminal pode fazer com que o FPS "alterne" entre alto e baixo: focalizando a janela, digitando, etc. Às vezes, esperar cerca de 3 segundos é suficiente para o FPS voltar para alto.

A placa gráfica é uma Nvidia GTX 1080 Ti e o monitor é um 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

Comentários muito úteis

Tenho lidado com esse mesmo problema nos últimos dias. A única correção que encontrei até agora é desativar o G-Sync para Windows Terminal.

  1. Abra o painel de controle NVidia.
  2. À esquerda, selecione Gerenciar configurações 3D.
  3. Selecione a guia Configurações do programa.
  4. Você terá que adicionar o aplicativo Terminal do Windows à lista de programas no menu suspenso.
  5. Uma das opções na caixa deve mostrar que G-Sync está ativado. Desative-o.
  6. Aplicar mudanças.

Isso apenas trata do problema, não da fonte. Nunca tive nenhum outro aplicativo UWP com esse problema antes, então provavelmente é um problema do Terminal do Windows.

Eu encontrei o problema com um Nvidia GTX 1080 Ti e este monitor Dell G-Sync 144hz . Verifiquei se tenho os drivers Nvidia mais recentes instalados, mas não tentei nenhum driver de pré-lançamento.

Todos 128 comentários

Não acredito que ninguém na equipe de desenvolvimento tenha um monitor de 144 Hz, então se alguém na comunidade estiver disposto a nos ajudar a depurar isso, a ajuda seria muito apreciada.

Tenho lidado com esse mesmo problema nos últimos dias. A única correção que encontrei até agora é desativar o G-Sync para Windows Terminal.

  1. Abra o painel de controle NVidia.
  2. À esquerda, selecione Gerenciar configurações 3D.
  3. Selecione a guia Configurações do programa.
  4. Você terá que adicionar o aplicativo Terminal do Windows à lista de programas no menu suspenso.
  5. Uma das opções na caixa deve mostrar que G-Sync está ativado. Desative-o.
  6. Aplicar mudanças.

Isso apenas trata do problema, não da fonte. Nunca tive nenhum outro aplicativo UWP com esse problema antes, então provavelmente é um problema do Terminal do Windows.

Eu encontrei o problema com um Nvidia GTX 1080 Ti e este monitor Dell G-Sync 144hz . Verifiquei se tenho os drivers Nvidia mais recentes instalados, mas não tentei nenhum driver de pré-lançamento.

Pode confirmar, depois de desativar explicitamente o G-Sync para Terminal (e reiniciar
it) o ​​problema foi embora. Concordou que isso trata os sintomas ao invés do
questão. Pelo menos agora temos uma solução alternativa: +1:

Na sexta-feira, 10 de maio de 2019 às 16:27, mblowey [email protected] escreveu:

Tenho lidado com esse mesmo problema nos últimos dias. A única correção
Eu descobri até agora é desativar o G-Sync para Windows Terminal.

  1. Abra o painel de controle NVidia.
  2. À esquerda, selecione Gerenciar configurações 3D.
  3. Selecione a guia Configurações do programa.
  4. Você terá que adicionar o aplicativo Windows Terminal à lista de
    programas no menu suspenso.
  5. Uma das opções na caixa deve mostrar que G-Sync está ativado.
    Desative-o.
  6. Aplicar mudanças.

Isso apenas trata do problema, não da fonte. Eu nunca tive nenhum
outros aplicativos UWP já tiveram esse problema antes, então provavelmente é um Terminal Windows
questão.

Eu encontrei o problema com uma Nvidia GTX 1080 Ti e este Dell 144hz
Monitor G-Sync
https://www.dell.com/en-us/shop/dell-24-gaming-monitor-s2417dg/apd/210-aizs/monitors-monitor-accessories .
Verifiquei se tenho os drivers Nvidia mais recentes instalados, mas não
tentei todos os drivers de pré-lançamento.

-
Você está recebendo isso porque é o autor do tópico.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/microsoft/Terminal/issues/649#issuecomment-491288003 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AAJ4X3HNJEYYNFGNVJEUF7LPUVZ2TANCNFSM4HL63MAQ
.

O mesmo aqui. Eu tenho tela e placa Gsync e o Terminal está atrasado como um louco. Minha pobre tela de 165 Hz :(

O mesmo aqui também. Monitor G-Sync de 165 Hz, GTX 1070, FPS baixo no Terminal.

Eu tenho uma tela compatível com G-Sync de 144 Hz (FreeSync). Um problema de baixo FPS também foi encontrado quando G-Sync foi habilitado para aplicativos de janela (tela não inteira).

Meu monitor tem um indicador FPS. Gravei um vídeo para mostrar a mudança de FPS quando executei o terminal. Quando o terminal não tem foco, o FPS é 144. Quando o terminal obtém o foco, o FPS é geralmente 48 (o limite inferior da taxa de atualização VRR da minha tela. VRR: Taxa de atualização variável), e aumenta brevemente quando o o conteúdo é atualizado e, em seguida, retorna à taxa de atualização mínima (48FPS) novamente.

Meu vídeo:
https://youtu.be/wokdiOQzwnU
Perdoe minha perda de foco (devido à tela curva) e ruído de fundo (você pode silenciá-lo).

Você também pode baixar um arquivo de vídeo com HEVC 240FPS (taxa de bits baixa) aqui:
http://qiniu.img.hu60.cn/file-hash-mp4-fb6775bfceeb0577b7244c58851f85a983686237.mp4

Nota: Este monitor não passou no teste de compatibilidade da Nvidia, portanto, ele apresenta oscilação e instabilidade quando a taxa de atualização VRR flutua drasticamente. O monitor G-Sync certificado pode não ter jitter, mas o atraso de entrada (velocidade de movimento do mouse) em baixas taxas de atualização é óbvio.


Pelas mudanças de FPS no vídeo, o Windows Terminal é um típico aplicativo de aceleração de GPU hostil para VRR. Tal aplicativo geralmente não desenha nada quando o conteúdo não é atualizado (então FPS é 0, o driver da Nvidia irá acionar um mecanismo de redesenho de tempo limite para manter a taxa de atualização mínima da tela) e desenha apenas quando o conteúdo é atualizado (a taxa de atualização sobe brevemente).

Tal aplicação faria com que um display VRR de baixa qualidade (geralmente um display G-Sync / FreeSync anterior) tremesse e aumentasse significativamente o atraso de entrada quando VRR fosse ligado.

Na situação atual, desabilitar VRR (G-Sync) para Windows Terminal é a única escolha correta.


Referência: Por que o display VRR pisca em alguma cena
https://pcper.com/2014/12/a-look-into-reported-g-sync-display-flickering/

Então, eu tive esse mesmo problema em meu monitor habilitado para G-Sync e depois de examinar o código, consegui descobrir qual é a causa. Para quem não conhece, o G-Sync é uma tecnologia NVIDIA que sincroniza a taxa de atualização do seu monitor com a taxa de quadros na tela.

Esse problema específico ocorre se você tiver a opção G-Sync definida como Ativado para modo de janela e tela inteira no Painel de controle NVIDIA em sistemas compatíveis com G-Sync. Como o Windows Terminal usa DirectX para desenhar fontes, os drivers da Nvidia pensam incorretamente que você está jogando em modo de janela com a opção mostrada abaixo ativada.

image

Se você definir a opção como Ativado para o modo de tela inteira, o FPS baixo do terminal não reduzirá a taxa de atualização dos monitores G-Sync e tudo funcionará conforme o esperado.

Parece que o baixo FPS (e baixa atualização) é devido ao fato de que a tela só é renderizada novamente para alterações por motivos de desempenho. No estado inativo, a tela é atualizada apenas pelo cursor piscando, fazendo com que o FPS caia cerca de 42. Se você começar a digitar, a taxa de quadros aumentará e você poderá ver visivelmente a mudança na taxa de atualização.

Esta é uma situação um tanto incomum, com algumas opções para resolvê-la.

  • Desative a opção de modo de janela quando quiser usar o Terminal Windows com G-Sync ativado (não é o ideal)
  • Desenhe novamente a tela a cada ciclo, aumentando o FPS da janela para a taxa de atualização máxima do monitor (também não é ideal, pois isso prejudicará o desempenho)
  • Peça à Nvidia para adicionar uma exceção aos seus drivers para Terminal Windows (não tenho certeza se possível).

Não tenho o hardware para testar, mas isso também pode ser um problema com os monitores FreeSync. Por enquanto, a solução simples é definir a opção G-Sync como Ativado para o modo de tela inteira no Painel de Controle NVIDIA.

Como outros afirmaram, a melhor solução é criar um perfil de aplicativo para o terminal que desabilite o GSync apenas para este aplicativo. A NVIDIA pode lançar perfis para jogos / programas com atualizações de driver e eles geralmente fazem exatamente isso sempre que você atualiza seus drivers, então acho que o melhor curso de ação é relatar à NVIDIA para que eles possam criar uma solução alternativa para o comportamento inesperado com o novo terminal.

Parece que o baixo FPS (e baixa atualização) se deve ao fato de que a tela só é renderizada novamente para alterações por motivos de desempenho

Bem, isso faz sentido. Quando tudo o que tínhamos era um renderizador GDI (CPU), obviamente quereríamos apenas redesenhar nas mudanças. No entanto, com o renderizador DX, talvez isso não seja um grande problema.

@miniksa existe alguma maneira de acionar um quadro falso na taxa de quadros da GPU? Para que mesmo se não houvesse nada de novo, não cairíamos no FPS?

Confirmado que isso acontece na construção 18990, a solução perfeita é desativar o G-Sync quando não estiver em tela cheia.

Eu tive o mesmo problema e posso confirmar que a desativação do G-Sync para o modo de janela ajudou.

@ zadjii-msft, eu simulei a tentativa anterior de consertar isso sem ter um desses monitores. Não funcionou depois que dei o ramo para as pessoas com o monitor tentarem.

Precisamos desse hardware ou precisamos de uma das pessoas reclamando sobre isso para também ter as habilidades para construir a partir do código-fonte e depurar isso.

Eu ia ser voluntário para ajudar a depurar, mas parece que não consigo mais reproduzir o problema. Confirmei que o Windows Terminal está configurado para usar G-Sync, mas não estou mais vendo nenhuma queda na taxa de quadros ao interagir com o aplicativo.
Não mudei nenhum hardware desde minha primeira resposta , mas instalei totalmente o Windows há algumas semanas.

Eu ia ser voluntário para ajudar a depurar, mas parece que não consigo mais reproduzir o problema. Confirmei que o Windows Terminal está configurado para usar G-Sync, mas não estou mais vendo nenhuma queda na taxa de quadros ao interagir com o aplicativo.
Não mudei nenhum hardware desde minha primeira resposta , mas instalei totalmente o Windows há algumas semanas.

Interessante. Poderia ser uma coisa de driver então talvez? Obrigado pelo ponto de dados, @mblowey.

@miniksa Problema interessante, acabo de abrir meu computador e habilito o G-SYNC para todos os aplicativos em janela e, mesmo depois de reiniciar, não consigo reproduzir esse problema.

Eu também não mudei nenhum hardware E SOFTWARE (não reinstalei ou atualizei o Windows, não reinstalei ou atualizei meu driver da placa gráfica, não reinstalei ou atualizei meu Terminal Windows) desde minha primeira resposta aqui https: / /github.com/microsoft/terminal/issues/649#issuecomment -544209435

Eu costumava acompanhar este comentário https://github.com/microsoft/terminal/issues/649#issuecomment -491288003 para resolver esse problema

Além disso, eu instalo muitos jogos do Steam depois do meu primeiro comentário, talvez eles instalem algumas dependências gráficas importantes e resolvam esse problema.

Se alguém tiver esse problema, tente fazer isso

  1. siga este comentário https://github.com/microsoft/terminal/issues/649#issuecomment -491288003
  2. reiniciar
  3. REVERT STEP 1

pode ser capaz de dizer se isso é causado pelo driver NVIDIA

Pode confirmar no Windows 10 Build 10.0.19033.1, usando o driver Nvidia 441.20 mais recente com um ASUS GTX 2080, esse problema ainda existe. Se eu desligar o G-SYNC para modo de janela e tela inteira e voltar para "Ativar modo de tela inteira" apenas, ele se comportará como deveria com desempenho normal. Estou usando a versão mais recente do Terminal (em 26/11/2019, desculpe, não tenho certeza de como obter a versão diretamente.) Não tenho certeza do que mais posso fazer para ajudar, mas pensei em pelo menos relatar o problema Ainda está lá.

Edit: Também confirmou que o método de adicionar uma exclusão de aplicativo à ferramenta Nvidia Control Panel ainda funciona. Não sabia que você poderia fazer isso, então obrigado por compartilhar! Pode corrigir um problema semelhante que vi com Quicken. :)

Como @jefmes observou acima, reproduzi este problema, com o mesmo win 10, Terminal, driver e placa de vídeo.

Tive o mesmo problema com a versão atual 0.7.3451.0 em um monitor G-Sync de 144 Hz. Depois de definir a tecnologia do monitor para "Atualização fixa" e a configuração de sincronização vertical para "rápido" no painel de controle da Nvidia, o problema foi embora.

Estou executando uma GTX 1070, versão do driver 441.66 no Windows 10 Insider Build 19041.1.

Eu entendo como surge a confusão entre o terminal e o driver gráfico, o que não entendo é como um pequeno desenvolvedor como a Microsoft não pode pagar / justificar um monitor de $ 200-300 para investigar um bug. Talvez trabalhando em conjunto com a nvidia para permitir que o Windows indique um modo inativo ou de área de trabalho onde mesmo através do directx é usado, as atualizações de aplicativos são lentas, mas o cursor ainda mostra, então você deseja fps máximo. Basicamente, uma versão automática da solução alternativa que a MS pode controlar.

As janelas do terminal FYI Cmder e Hyper não têm problemas com as taxas de redesenho. O movimento do cursor quando em foco e ao arrastar as janelas de ambos os terminais funciona bem com qualquer taxa de atualização que configurei e são suaves.

Por que a janela do Terminal do Windows deve ser menos capaz de funcionar com a taxa de atualização da área de trabalho atual?

Por que a janela do Terminal do Windows deve ser menos capaz de funcionar com a taxa de atualização da área de trabalho atual?

Por causa de um bug que ainda estamos tentando localizar.

Não sei se isso ajuda, mas vejo o mesmo comportamento não apenas no novo Terminal do Windows, mas também nos aplicativos XAML. A mesma solução alternativa funciona nesses casos também.

Parece que o driver da Nvidia precisa de uma melhor detecção do que é um jogo e do que é um aplicativo. Alguém está vendo esse comportamento no AMD com FreeSync?

Percebi que se você tiver histórico de texto suficiente para permitir que você use a barra de rolagem para fazer a linha atual com o cursor piscando ficar 'fora da tela', a taxa de atualização ao arrastar a janela volta ao normal.

OK, sim, então estou pensando em conseguir hardware em meu escritório para que eu possa realmente ser capaz de fazer algo sobre isso.

Eu li sobre como essas coisas funcionam e descobri que as duas tecnologias são mais diferentes do que eu imaginava.

Isso só acontece com o pipeline NVIDIA de monitor GSYNC + placa de vídeo NVIDIA? Ou também é possível com monitor FreeSync + placa de vídeo AMD (ou NVIDIA)?

Basicamente, estou procurando por duas peças que possa colocar na lista de aquisição que não são tão caras quanto uma GTX 1080Ti e um Asus PG279Q.

Se alguém neste tópico puder enviar recomendações ou relatar se isso acontece no mundo FreeSync / AMD, eu realmente apreciaria.

Tenho Nvidia RTX 2060 e Acer XF270HU (que é um monitor FreeSync) em execução no modo compatível com GSync. Também estou tendo esse problema, mas o método descrito no comentário https://github.com/microsoft/terminal/issues/649#issuecomment -568196580 faz fix isso.
A remoção dessa correção faz com que o problema volte, mas nem sempre. Quando removi essas alterações pela primeira vez, não caiu imediatamente para ~ 60-40fps, mas apenas depois de algum tempo / algumas reinicializações.
Então eu queria tentar gravar isso usando o recurso de gravação de experiência GeForce da Nvidia. Assim que comecei a gravar, saltou de volta para 144 e permaneceu assim mesmo durante o uso do terminal (isso pode ser devido à gravação forçando uma taxa de atualização fixa geral). Uma vez interrompido, ele permaneceu em 144 (mesmo sem a correção mencionada anteriormente). Eu tentei a combinação Ctrl + Shift + Win + B que não teve nenhum impacto e ainda permaneceu em 144.
Portanto, embora o problema pareça ainda existir, também é muito difícil de reproduzir de forma consistente e, de modo geral, é muito complicado, mas não é exclusivo para monitores GSYNC puros.

Acho que sei como reproduzir esse problema de forma consistente. Descobri isso depois de reinstalar o Windows e me perguntando por que nunca tive atraso de terminal uma vez: sorria:

image

Alterne-o de volta para "Ativar para modo de tela inteira" ou desative-o completamente e o problema desaparecerá.

Eu acho que você pode até mesmo reproduzir esse comportamento em um monitor não G-Sync 60hz conectado via DP. A única diferença é que essa configuração não faz sentido e o aviso do driver de que a Nvidia ainda não fez esta tela.

Mas acho que ainda há mais nisso. O que mostro na imagem é um tipo de "configuração incorreta" e não a configuração padrão. E se eu configurar assim porque quero jogar no modo de janela e ainda usar o G-Sync?

O que eu não entendo é como isso diminui a velocidade do cursor do sistema. O cursor, o loop de desenho da janela e o loop de atualização não deveriam ser independentes?

Acho que sei como reproduzir esse problema de forma consistente. Descobri isso depois de reinstalar o Windows e me perguntando por que nunca tive lag de terminal uma vez 😄

image

Alterne-o de volta para "Ativar para modo de tela inteira" ou desative-o completamente e o problema desaparecerá.

Eu acho que você pode até mesmo reproduzir esse comportamento em um monitor não G-Sync 60hz conectado via DP. A única diferença é que essa configuração não faz sentido e o aviso do driver de que a Nvidia ainda não fez esta tela.

Mas acho que ainda há mais nisso. O que mostro na imagem é um tipo de "configuração incorreta" e não a configuração padrão. E se eu configurar assim porque quero jogar no modo de janela e ainda usar o G-Sync?

O que eu não entendo é como isso diminui a velocidade do cursor do sistema. O cursor, o loop de desenho da janela e o loop de atualização não deveriam ser independentes?

Eu estava enfrentando esse problema também em um monitor FreeSync2 de 3440x1440 144 Hz e configurar meu modo GSync para Enable for full screen mode no painel de controle NVIDIA corrigiu o problema para mim. Concordo com o sentimento acima - o atraso na janela do aplicativo foi imediatamente perceptível.

Versão em execução: 0.11.1121.0

Acho que sei como reproduzir esse problema de forma consistente. Descobri isso depois de reinstalar o Windows e me perguntando por que nunca tive lag de terminal uma vez 😄
image
Alterne-o de volta para "Ativar para modo de tela inteira" ou desative-o completamente e o problema desaparecerá.
Eu acho que você pode até mesmo reproduzir esse comportamento em um monitor não G-Sync 60hz conectado via DP. A única diferença é que essa configuração não faz sentido e o aviso do driver de que a Nvidia ainda não fez esta tela.
Mas acho que ainda há mais nisso. O que mostro na imagem é um tipo de "configuração incorreta" e não a configuração padrão. E se eu configurar assim porque quero jogar no modo de janela e ainda usar o G-Sync?
O que eu não entendo é como isso diminui a velocidade do cursor do sistema. O cursor, o loop de desenho da janela e o loop de atualização não deveriam ser independentes?

Eu estava enfrentando esse problema também em um monitor FreeSync2 de 3440x1440 144 Hz e configurar meu modo GSync para Enable for full screen mode no painel de controle NVIDIA corrigiu o problema para mim. Concordo com o sentimento acima - o atraso na janela do aplicativo foi imediatamente perceptível.

Versão em execução: 0.11.1121.0

Quais modelos específicos de monitor e placa de vídeo, @zackhorvath?

Ainda estou interessado em resolver isso em algum momento, mesmo que a pandemia tenha a aquisição de hardware um pouco atrasada.

Obrigado pela resposta @miniksa

Atualmente, estou executando um monitor LG 34GK950F-B com uma NVIDIA GeForce GTX 1080ti (EVGA modelo # 11G-P4-6393-RX ). Meu driver específico da NVIDIA é 26.21.14.4587 .

Posso fornecer informações adicionais, se solicitado!

Não, tudo bem, obrigado @zackhorvath. Eu esperava que sua configuração de reprodução não fosse um monitor de $ 900 e uma placa de vídeo de $ 1100 e mais como um monitor de $ 300 com uma placa de vídeo de $ 200 ...

Como eu disse, é reproduzível com meu velho e barato Samsung Full HD Display de 60 Hz. Tudo o que é necessário é uma GPU Nvidia que pode fazer alguma forma de G-Sync ou FreeSync e um cabo DP.

Este problema não é isolado do Terminal quando G-SYNC é definido como "habilitar para modo de janela e tela inteira". Também vejo o mesmo comportamento em alguns outros aplicativos, por exemplo:

  • Malwarebytes Anti-Malware
  • Git Fork
  • WhatsApp Desktop

Como eu disse, é reproduzível com meu velho e barato Samsung Full HD Display de 60 Hz. Tudo o que é necessário é uma GPU Nvidia que pode fazer alguma forma de G-Sync ou FreeSync e um cabo DP.

Desculpe, minha compreensão de leitura não foi ótima durante a quarentena. Eu senti falta disso.

Este problema não é isolado do Terminal quando G-SYNC é definido como "habilitar para modo de janela e tela inteira". Também vejo o mesmo comportamento em alguns outros aplicativos, por exemplo:

  • Malwarebytes Anti-Malware
  • Git Fork
  • WhatsApp Desktop

Isso está soando cada vez mais como um bug de driver da NVIDIA sobre o qual não posso fazer nada ...

Discuti isso com @miniksa e estou procurando uma possível mitigação, fyi. Tenho o hardware necessário e consigo reproduzir o problema facilmente.

Pelo que vale a pena, eu observei isso em vários outros aplicativos também e em alguns inesperados. Por exemplo, o Visual Studio Installer também exibe o mesmo problema. Cada um deles parece ser baseado em UWP e / ou XAML.

Para ser honesto, também acho que é um bug de driver, mas como isso está acontecendo em todo o lugar no Windows e as GPUs Nvidia não são tão incomuns, pensei que alguém na Microsoft poderia encaminhar esse problema. Pode ser um exagero, mas os drivers da Nvidia são certificados WHQL, certo? Eles não devem quebrar o Windows.

Apenas mencionando que eu também ainda tive esse problema com as versões atuais do software (Windows Terminal Version: 0.11.1251.0), GPU Nvidia e um monitor Freesync. A solução alternativa no terceiro comentário ainda ajudou. Eu diria que a outra solução alternativa de desativar o G-sync para aplicativos em janela não é tão boa, porque pelo menos eu jogo alguns jogos no modo de janela sem borda.

Parece que a melhor solução seria que os drivers da Nvidia detectassem melhor os aplicativos que se beneficiam do G-sync, sejam jogos ou outros programas. Mas um perfil Nvidia embutido para Terminal Windows especificamente seria uma correção de baixo esforço.

Mas um perfil Nvidia embutido para Terminal Windows especificamente seria uma correção de baixo esforço.

Eu não sei o que isso significa. Qual é esse perfil de que você fala? Posso incluir um manifesto ao lado de nosso aplicativo para dizer aos drivers da NVIDIA para desistir da sincronização com o G? Ou isso é algo que a NVIDIA deve incluir em seus pacotes de driver?

Mas um perfil Nvidia embutido para Terminal Windows especificamente seria uma correção de baixo esforço.

Eu não sei o que isso significa. Qual é esse perfil de que você fala? Posso incluir um manifesto ao lado de nosso aplicativo para dizer aos drivers da NVIDIA para desistir da sincronização com o G? Ou isso é algo que a NVIDIA deve incluir em seus pacotes de driver?

Eles estão se referindo aos perfis de aplicativo da nvidia que você pode configurar no painel de controle da nVidia, mas pelo que eu posso dizer, essa não é uma solução viável. Não importa quais configurações eu selecionei para o perfil específico do aplicativo para o Terminal do Windows, o comportamento permanece o mesmo. Se alguém encontrou uma combinação funcional, seria bom compartilhar, pois isso pode me dar algumas idéias sobre como consertar isso no próprio Terminal.

Além disso, pelo que eu sei, mesmo que os perfis funcionem, a nVidia tem que ser a única a incluí-los em seu pacote de driver.

Até agora, tentei várias modificações no Terminal sem sucesso, incluindo a desativação do vsync, aplicação de DXGI_PRESENT_ALLOW_TEARING, DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING, etc. sem sucesso. Fiz uma consulta a alguns outros especialistas na esperança de que alguém esteja ciente de uma solução alternativa específica do aplicativo que possa ser aplicada, mas não há ETA por enquanto.

Este problema não é específico do Terminal do Windows.

Até agora, tentei várias modificações no Terminal sem sucesso, incluindo a desativação do vsync, aplicação de DXGI_PRESENT_ALLOW_TEARING, DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING, etc. sem sucesso. Fiz uma consulta a alguns outros especialistas na esperança de que alguém esteja ciente de uma solução alternativa específica do aplicativo que possa ser aplicada, mas não há ETA por enquanto.

Este problema não é específico do Terminal do Windows.

Obrigado, @binarycrusader. Essas eram todas as opções e coisas que eu tentaria se pudesse obter acesso ao hardware.

Isso parece acontecer com o Deezer Music (UWP), o WhatsApp Desktop e também com a maioria dos aplicativos baseados em Electron. Um pouco não relacionados, mas os drivers NVIDIA "Web" mostram esse comportamento com quase todos os aplicativos macOS.

Uau, parece que a resposta do elétron para este problema foi ¯ \ _ (ツ) _ / ¯

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

Eu também não tenho certeza se ele está consertado no cromo - esse problema no rastreador ainda está aberto, embora alguns anos estejam obsoletos neste momento 😕

Gostaria de saber se alterando https://github.com/microsoft/terminal/blob/e61968ca87de7fd9c08b50f63e8cccb01f240596/src/renderer/base/thread.cpp#L208 -L212 para usar IDXGIOutput::WaitForVBlank (https://docs.microsoft. com / en-us / windows / win32 / api / dxgi / nf-dxgi-idxgioutput-waitforvblank) ajudaria neste problema ...

Veja também: https://bugs.chromium.org/p/chromium/issues/detail?id=467617 e https://www.vsynctester.com/firefoxisbroken.html e https://bugzilla.mozilla.org/show_bug .cgi? id = 1628137 e https://bugs.chromium.org/p/chromium/issues/detail?id=953970

@miniksa

Qual é esse perfil de que você fala? Posso incluir um manifesto ao lado de nosso aplicativo para dizer aos drivers da NVIDIA para desistir da sincronização com o G? Ou isso é algo que a NVIDIA deve incluir em seus pacotes de driver?

Para esclarecer, eu quis dizer configurações que a Nvidia teria que incluir em seus drivers. Ele já lista cerca de 1000 programas em sua lista interna de "Configurações do programa" (jogos e aplicativos que eu não tenho), e pensei que eles tinham algumas configurações personalizadas para todos esses programas, mas não tenho certeza agora.

@binarycrusader

Não importa quais configurações eu selecionei para o perfil específico do aplicativo para o Terminal do Windows, o comportamento permanece o mesmo. Se alguém encontrou uma combinação funcional, seria bom compartilhar, pois isso pode me dar algumas idéias sobre como consertar isso no próprio Terminal.

Essas configurações corrigiram para mim:

image

Acho que apenas defini como "Atualização fixa", não sei por que as outras duas configurações aparecem em negrito. Mas todas as outras configurações são padrão.

Perfis definidos pelo usuário, criados por meio do painel de controle atual da própria Nvidia, parecem sempre fazer referência a aplicativos por caminho absoluto para o executável. Isso funcionou bem para outros aplicativos que usei anteriormente, mas como a Windows Store instala cada atualização do Windows Terminal em um diretório diferente, os perfis associados duram irritantemente.

Eu já estava usando o Nvidia Profile Inspector em alguns casos para um controle mais refinado e descobri que os perfis definidos pelo usuário são criados com essa ferramenta:

  1. Corresponder no nome do executável apenas sem caminho
  2. Permitir adicionar vários executáveis ​​a um único perfil
  3. Permitir nomes personalizados para maior clareza

Também oferece uma visão muito melhor das centenas de perfis que a Nvidia já está distribuindo com os pacotes de driver atuais, mas que estão ocultos do painel de controle. Existem dezenas de aplicativos da Microsoft já incluídos, incluindo Microsoft Win10 Store , Microsoft Visual Studio , etc. que tendem a corresponder a alguns executáveis ​​diferentes (sem caminhos) e, em sua seção Sync and Refresh , substituir GSYNC - Application State por Force Off .

Agora tenho um único perfil __No_GSync (nomeado para classificar convenientemente no topo da lista) para WindowsTerminal.exe (em qualquer caminho) junto com um punhado de outros aplicativos que também usam redesenhos preguiçosos. Novamente, a única configuração que substituí por meio do inspetor neste perfil __No_GSync é GSYNC - Application State para Force Off . Quando visualizado no painel de controle da própria Nvidia, a única substituição exibida para este perfil é Monitor Technology que aparece definido como Not supported for this application e nem mesmo permite alterar este valor nessa visualização.

Espero que esta seja uma solução mais confiável para definir e esquecer para mim, e também que a equipe do Windows Terminal possa se comunicar com a Nvidia para obter um perfil semelhante incluído em futuras versões de driver.

Adicionar "experimental.rendering.software": true em settings.json no Windows Terminal Release Candidate v0.11.1333.0 (1.0rc2) resolve esse problema para mim.

Presumo que sofro alguma perda de nível de desempenho, mas não sinto isso na minha máquina.

No meu sistema, não tive sorte em usar os perfis para gerenciar isso. Usar um perfil nVidia para forçar o desligamento do GSYNC parece não ter efeito. Eu tentei todas as variações de executável e configuração. Tentei usar o painel de controle da nVidia e a ferramenta inspetor de perfil.

Também não consegui fazer a solução baseada em perfil funcionar. Percebi que, no painel de controle da NVIDIA, o Terminal do Windows nunca aparece na lista de programas usados ​​recentemente ao adicionar um perfil personalizado. Suspeito que os drivers da NVIDIA não consigam reconhecer que o Windows Terminal está em execução.

Caso isso possa ajudar alguém, estas são minhas configurações no Painel de Controle da Nvidia

image

Adicionar "experimental.rendering.software": true em settings.json no Windows Terminal Release Candidate v0.11.1333.0 (1.0rc2) resolve esse problema para mim.

Presumo que sofro alguma perda de nível de desempenho, mas não sinto isso na minha máquina.

Também estou enfrentando esse problema e as alterações do perfil do G-Sync não corrigiram, mas corrigiram. Obrigado.

Depois de trabalhar com ele por mais alguns dias, a solução de perfil foi mais eficaz para mim, mas tive períodos ocasionais em que ela não se aplica especificamente ao Terminal do Windows. Eu não vi esse problema para nenhum outro aplicativo que também esteja no mesmo perfil no-gsync.

Em um período em que minha cópia do Terminal instalada na Windows Store estava sendo ignorada pelo perfil da Nvidia, eu, por pressentimento, baixei o msix correspondente (1.0.1401.0) da página de lançamentos e extraí a pasta da versão x64 diretamente para o meu Área de Trabalho. O lançamento de WindowsTerminal.exe dessa cópia desabilitou o gsync corretamente para sua janela, enquanto a cópia instalada na Windows Store que ainda está em execução simultaneamente tem o gsync habilitado. Várias reinicializações consecutivas de cada um produzem os mesmos resultados.

Nenhuma mudança foi feita nos perfis entre esses lançamentos. Em teoria, eu esperaria que o mesmo perfil afetasse os dois igualmente de forma que nenhum deles usasse gsync. Estou me perguntando se isso pode ser uma complicação das permissões e links por meio de wt.exe envolvidos no lançamento da versão distribuída na Loja que faz com que ele deslize pelo mecanismo de detecção atual da Nvidia. Não tenho ideia de como explicar meu perfil existente também aparentemente aplicando-se corretamente à cópia da Loja na maioria das vezes ... Limpei todos os outros perfis definidos pelo usuário e tentei correlacionar outras janelas em uso, mas não localizei nenhum padrão.

Provavelmente continuarei usando a versão extraída em vez da versão de armazenamento por um tempo para ver se ela é confiável. Ele tem o bônus adicional de ser fácil definir o diretório de trabalho em seu atalho quando fixado na barra de tarefas e também, provavelmente, nunca ser interrompido silenciosamente enquanto hospeda um processo de terminal de longa execução quando a loja força uma atualização. A única coisa aparentemente ausente até agora são os ícones de perfil referenciados por caminhos ms-appx.


Como um aparte, eu também tenho testado com o neovide (um front-end GUI baseado em gpu para neovim) que atua de forma semelhante em termos de redesenho de tela preguiçosa e, portanto, exibe a mesma queda na taxa de atualização do gsync por padrão quando não há nada necessário redesenhar. A solução de perfil da nvidia se aplica ao neovide com 100% de confiabilidade, tanto quanto posso dizer. Experimentando lá, também parece que os perfis da nvidia são avaliados apenas na inicialização do aplicativo, portanto, adicionar / remover neovide.exe para / do meu perfil no-gsync enquanto o neovide já está em execução não altera seu estado gsync já em execução, mas irá no próximo lançamento. Pode ser útil saber para qualquer outra pessoa que esteja tentando solucionar o problema.

Isso elimina um problema no DirectX porque a neovide usa Vulkan. Com jogos mais modernos, especialmente jogos baseados em UWP, oferecendo apenas "Modo de janela em tela cheia" em vez de "Modo de tela cheia exclusivo" Eu me pergunto se G-Sync está fazendo alguma coisa se não ativamos o G-Sync para o modo de janela.

Este bug parece crescer fora do escopo deste repositório (e de todos os outros projetos onde isso acontece também) então se ninguém estiver percebendo isso e ninguém tiver nenhum tipo de contato com alguém da Nvidia, isso será corrigido? Seria legal usar o Windows e poder jogar com o hardware e os recursos que comprei em vez de empilhar um monte de workounds no meu sistema.

Para aqueles que usam a solução alternativa Nvidia Control Panel / Manage 3D Settings, você poderia esclarecer como adicionou o Terminal do Windows ao menu suspenso Configurações do programa? Ele não está aparecendo na lista suspensa para mim e não tenho certeza de como procurar o executável, visto que ele está instalado da Windows Store.

Para aqueles que usam a solução alternativa Nvidia Control Panel / Manage 3D Settings, você poderia esclarecer como adicionou o Terminal do Windows ao menu suspenso Configurações do programa? Ele não está aparecendo na lista suspensa para mim e não tenho certeza de como procurar o executável, visto que ele está instalado da Windows Store.

Já faz um tempo desde que configurei o meu, mas acredito que apenas me certifiquei de ter o programa em execução ao abrir o painel, e ele apareceu imediatamente ou consegui clicar em "Adicionar" na captura de tela que postei acima e escolha "Programas em execução" ou algo parecido.

Não tenho certeza por que o MSBOT fechou este e todos os problemas duplicados, porque adicionar a configuração "experimental.rendering.software": true em settings.json era a única maneira de "consertar" esse problema em minha máquina

Significa que há algo acontecendo com a renderização?

Não tenho certeza porque o MSBOT fechou isso

Este problema não foi resolvido e permanecerá não fechado até que possamos descobrir uma solução para pessoas com drivers gráficos disfuncionais. Por enquanto, a renderização de software _ou_ informando a pilha de gráficos para não tratar o Terminal como um jogo _é_ a solução alternativa.

Não tenho certeza porque o MSBOT fechou isso

Este problema não foi resolvido e permanecerá não fechado até que possamos descobrir uma solução para pessoas com drivers gráficos disfuncionais. Por enquanto, a renderização de software _ou_ informando a pilha de gráficos para não tratar o Terminal como um jogo _é_ a solução alternativa.

Infelizmente, também não fui capaz de consertar isso por meio das configurações disfuncionais do driver gráfico. Ele também não está aparecendo no painel de controle da Nvidia / Gerenciar configurações 3D / menu suspenso Configurações do programa para mim.

A configuração "experimental.rendering.software": true em settings.json corrigiu para mim também na Nvidia RTX 2080. Acho que esta é a solução preferida em vez de alterar as configurações globais no painel de controle da Nvidia.

ATUALIZAR:

Vou pegar de volta como. Se você tiver dois monitores: um com G-Sync de alta taxa de atualização e outro com 60 Hz básico, colocar o terminal na tela de 60 Hz ainda fará com que todos os aplicativos na tela de alta taxa de atualização funcionem lentamente.

OUTRA ATUALIZAÇÃO:

Usar a configuração "experimental.rendering.software": true e atualizar o Windows 10 para v 2004 consertou para mim.

Ele também não está aparecendo no painel de controle da Nvidia / Gerenciar configurações 3D / menu suspenso Configurações do programa para mim.

Ele não aparece automaticamente na lista suspensa, mas deve aparecer na lista de aplicativos detectados após pressionar "Adicionar" ao lado dele.

Ele também não está aparecendo no painel de controle da Nvidia / Gerenciar configurações 3D / menu suspenso Configurações do programa para mim.

Ele não aparece automaticamente na lista suspensa, mas deve aparecer na lista de aplicativos detectados após pressionar "Adicionar" ao lado dele.

Infelizmente, ele também não aparece lá ..: /

Tendo o mesmo problema com a versão 1.0 e gsync - a taxa de quadros cai para cerca de 40 fps e o monitor está piscando. torna o Windows Terminal quase inutilizável

atualização: "experimental.rendering.software": true parece funcionar bem com o Windows 2004

@ robert-sandor Como mencionado acima neste tópico, alguns usuários tiveram sucesso com a configuração "experimental.rendering.software": true .

@ robert-sandor Como mencionado acima neste tópico, alguns usuários tiveram sucesso com a configuração "experimental.rendering.software": true .

Eu tenho dois 1070ti's em SLI, driver v446.14 e um Alienware AW3420DW a 120hz na área de trabalho. Eu também estava tendo o problema de taxa de quadros reduzida. Adicionar essa configuração à configuração resolveu.

Adicionar "experimental.rendering.software": true em settings.json no Windows Terminal Release Candidate v0.11.1333.0 (1.0rc2) resolve esse problema para mim.

Presumo que sofro alguma perda de nível de desempenho, mas não sinto isso na minha máquina.

Isso consertou para mim. Quando podemos esperar que isso esteja fora do experimental @ zadjii-msft?
Para sua informação: 2 monitores, 1 144 Hz com gsync os outros 60 Hz

Minha solução para contornar a loja extraindo o pacote para minha própria pasta e executando WindowsTerminal.exe diretamente tem sido 100% confiável nas últimas duas semanas em termos de permitir que um perfil Nvidia desabilite o Gsync lá. Deixar o Gsync ativado globalmente e forçar a desativação em aplicativos específicos como esse ainda é minha solução preferida. Degradar-se à renderização de software parece indesejável.

Experimentei uma ampla variedade de outros aplicativos e cenários na versão atual do driver da Nvidia 446.14 . O Windows Terminal instalado especificamente por meio da Windows Store é o único que encontrei com esta combinação de 1) Gsync é ativado, 2) é indesejável e 3) um perfil de driver Nvidia específico do aplicativo falha em desativá-lo. Isso inclui jogos UWP (por exemplo, Astroneer - Astro-UWP64-Shipping.exe ) instalados por meio da Windows Store. Pareceu um ponto de comparação útil para a situação de empacotamento / permissões / entrega, mas o Gsync entra em ação, funciona como eu esperava e ainda pode ser desabilitado por meio de um perfil específico do aplicativo.

"experimental.rendering.software": true corrigiu para mim.

1080Ti com os drivers nVidia mais recentes a partir desta data e Windows 10 2004.

Qual é a última palavra oficial sobre esse assunto?
Eu preferiria usar meus ciclos de CPU em outro lugar.

Obrigado pela solução pessoal.

A renderização do software ainda tem um desempenho razoável: estamos apoiados nos ombros de gigantes e ainda renderizamos apenas as regiões da tela que mudaram. Embora não seja acelerado, é a segunda melhor opção.

"experimental.rendering.software": true também corrigiu para mim.

1080 com o driver NVidia mais recente no Windows 10 Pro Build 2004.

Este método apresenta algum problema de desempenho? Porque, pelo que posso ver, não tive problemas até agora.

"experimental.rendering.software": true também corrigiu para mim.

1080 com o driver NVidia mais recente no Windows 10 Pro Build 2004.

Este método apresenta algum problema de desempenho? Porque, pelo que posso ver, não tive problemas até agora.

Por enquanto, tudo bem.

Eu tinha desativado a visualização do gsync windows terminal bem antes, mas não consigo encontrar o windows terminal após a atualização do driver limpo. E a renderização de software não é uma boa maneira de consertar porque eu quero o termo acelerado de GPU :(

Existe uma maneira de adicionar manualmente o terminal do Windows para não usar o gsync? colocar exe não funciona para uwp, eu acho.

image

Adicionar "experimental.rendering.software": true também me ajudou. Executando o Windows Terminal 1.0.1401.0 usando GTX 970 (driver Nvidia 432.00).

Este problema não é específico do Terminal do Windows. Eu também tive que definir um sinalizador experimental para o Ableton Live e desativar a aceleração de hardware para o Spotify.

Posso confirmar o que @krage está dizendo sobre a substituição do perfil não funcionar no caso do Windows Terminal instalado através da loja do Windows. Algo com aplicativos UWP em geral não parece funcionar bem com perfis da Nvidia. Mudei de usar a instalação do Windows Store do terminal para um gerenciado por scoop (essencialmente imitando o método que @krage está usando) e meu perfil Nvidia está aplicado corretamente.

Meu perfil Nvidia para Terminal Windows usa as seguintes configurações:

  • Taxa de atualização preferida (Acer X34): a mais alta disponível
  • Tecnologia de monitoramento: usar configuração global (G-Sync)
  • Sincronização vertical: usar configuração global (rápida)

Essas configurações resolvem o problema para mim.

Também posso confirmar que ativar "experimental.rendering.software": true corrige o problema. Mas prefiro usar renderização baseada em hardware.

Hardware:

  • Nvidia GeForce 1080 (empurra x34)
  • Nvidia GeForce 1060 (6 GB) (empurra outros painéis)
  • Acer X34 (G-Sync Display)
  • GS35UCR DP (não G-Sync, exibição de 100 Hz)
  • 2x HP N270h (60 Hz sem tela G-Sync)

Versões

  • Nvidia 446.14
  • Terminal Windows (não empacotado) 1.1.200615001
  • Windows 10 2004 (Build 20150.rs_prerelease.200612-1734) (anel interno rápido)

A propósito, recentemente investiguei se esse problema pode ser resolvido e a resposta curta é: Sim, mas principalmente não.
Sim, o problema pode ser atenuado, fazendo o seguinte:

  • Remova isso e ...
  • aquela linha
  • adicione sinalizadores DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING e DXGI_PRESENT_ALLOW_TEARING conforme explicado aqui

_Mas_ Eu diria que isso seria uma má ideia, por isso não apresentei um PR no final. Porque se você fizer tudo isso, todos os usuários que não sejam da Nvidia também desenharão na taxa de quadros total de sua tela, o que é simplesmente desnecessário.
Na minha humilde opinião, a Nvidia deve corrigir esse problema específico do lado deles, porque não está presente apenas no Windows Terminal, mas em _todos_ os aplicativos UWP que usam DirectX.

E além disso, a configuração "Habilitar para modo de janela e tela cheia" no Painel de controle da Nvidia também não é a configuração padrão e é conhecido por quebrar muitas coisas no passado (o que - tenho certeza - é porque ele não está habilitado por padrão em primeiro lugar). 🙈

Basicamente, tudo se resume a um problema / bug da nVidia em relação ao DX11?

Recentemente, comprei um novo monitor (LG27850) e não há mais oscilação, mas posso sentir a diferença de 60 Hz vs 144 Hz quando eu Alt-tab do terminal para outro programa e parece engraçado.

@KrunoSaho Não posso provar e posso estar errado, mas tenho quase certeza ...
Você pode experimentar todos os exemplos "D2D" (Direct2D), "DWrite" (DirectWrite) e "DX" (DirectX) aqui e você notará que _todos_ apresentam o mesmo problema que o Terminal do Windows.
O _ único_ aplicativo UWP + DirectX que descobri que não tem o mesmo problema é a versão da App Store do Minecraft.
Como tal, acredito que o problema subjacente é a heurística da Nvidia, que decide se um processo deve usar GSYNC.

Todos que não precisam estritamente devem desativar "Ativar para modo de janela e tela cheia":
image

Na minha humilde opinião, este problema pode ser resolvido, já que este comportamento não está presente ao usar GPUs AMD, meio que descartando a possibilidade de um bug no Terminal Windows ou no Windows em geral.

Infelizmente, ativamos a configuração "Ativar para modo de janela e tela inteira" porque é estritamente necessário. Se eu não fizer isso, os jogos em modo de janela não usarão o G-SYNC. Portanto, essa opção é obrigatória.
Eu também tive esse problema com o Photoshop, mas pelo menos meu driver disfuncional da nvidia me deixou escolher uma taxa de atualização fixa para aquele aplicativo simplesmente aparecendo na lista de aplicativos para escolher.

Então, se nada mais, se você pudesse apenas fazer o aplicativo de terminal aparecer de alguma forma / magicamente na lista de aplicativos das configurações 3D do painel de controle da nvidia, eu ficaria mais do que feliz.

Enviei um relatório de bug para a nVidia sobre isso. Veremos o que acontece, se é que acontecerá.

@electrofloat Ainda não tive sucesso em reproduzir esse bug ... Para mim, ele aparece:
image

... e permite-me mudar a "Tecnologia do monitor", que corrige o problema. Se ele não aparecer para você, tente criar um atalho para o aplicativo Terminal em sua área de trabalho, arrastando e soltando o aplicativo do menu iniciar na área de trabalho.

Já iniciei o terminal através do atalho no desktop, e isso não faz com que apareça na lista de aplicativos usados ​​recentemente, infelizmente. :(

@electrofloat Tente reiniciar seu PC. A Nvidia armazena em cache essa lista em seu driver na primeira vez que você abre as configurações do programa.

@lhecker Eu li a mesma coisa, mas também me recusei a enviar um PR. Mas quanto mais eu penso nisso, mais eu mudo de ideia ... Pelo que eu sei você pode detectar Nvidia e até mesmo consultar o G-Sync e esta não é uma solução alternativa de acordo com os documentos, mas a forma como deveria funcionar . Lembre-se de que os caras da AMD também se beneficiariam com isso porque G-Sync e FreeSync são intercambiáveis.

Para ser justo, é um problema de ovo de galinha. A AMD claramente pode lidar com esta situação com seus drivers, a Nvidia não. Com cronogramas apertados, é fácil dizer sim, ferrar a Nvidia e deixá-los consertar o problema. Pode-se também argumentar que, na verdade, o driver da Nvidia é bom - o software simplesmente não consulta e fornece a funcionalidade que o usuário deseja.

Só acho que é meio triste que haja uma maneira de corrigir o problema implementando algo que alguém da Microsoft já documentou. E esse problema não acontece apenas com o Terminal do Windows, mas também com muitos aplicativos UWP e WPF

@electrofloat Você pode tentar pesquisar o executável usando o navegador no menu Adicionar. Ele pode ser encontrado em algum lugar em C:\Program Files\WindowsApps e você pode ter que ajustar as permissões desta pasta. Também não consegui fazer com que aparecesse na lista.

Observe que isso não ajudou no meu caso, e minhas opções são desativar o G-Sync no modo de janela (não, obrigado) ou usar o sinalizador experimental (isso ajudou).

Também observei que às vezes esse problema é resolvido sem qualquer intervenção usando as configurações padrão.

Posso confirmar que isso não é específico do Terminal Windows da minha máquina.

@SirJson tl; dr : Você entendeu errado ... O Terminal do Windows (WT) explicitamente não deve renderizar em uma taxa de atualização variável (VRR). Não se trata de como podemos oferecer suporte ao G-SYNC, mas sim de como podemos desativá-lo da melhor maneira.


O WT não captura a entrada do mouse como os jogos e deve se integrar adequadamente com o gerenciador de janelas e o resto do sistema operacional (movimento do cursor, arrastar e soltar, etc.). Também deve ser eficiente em termos de energia, o que significa que rodar em FPS total é bastante contraproducente. O Chrome, por exemplo, vai diminuir o ritmo para não renderizar se não for necessário. Para que o WT renderize a 165 FPS no meu PC relativamente robusto, ele usa quase todo o núcleo da CPU sozinho, por outro lado.

Se seu driver gráfico decidir que um aplicativo deseja VRR, ele colocará todo o pipeline de renderização (para a tela em que o aplicativo está visível) em um modo VRR. Se aquele único aplicativo desenha em um FPS baixo, toda a sua tela será desenhada naquele FPS, incluindo o gerenciador de janelas, o cursor do mouse, etc. - basicamente tudo! Esta é a principal razão pela qual VRR só está habilitado para aplicativos de tela cheia ou aplicativos que capturam o cursor do mouse como os jogos. A heurística da Nvidia funciona para quase todos os aplicativos regulares. .Exe regulares como Firefox, Chrome, VS Code são todos detectados corretamente como não-G-SYNC. Aplicativos UWP como WT, Slack (sim, até Slack!) São incorretamente detectados como aqueles que desejam G-SYNC. Isso é claramente um bug do lado da Nvidia.

Por último, nem mesmo é garantido que o renderizador DirectX do WT seja rápido o suficiente para fornecer aqueles> 120 FPS que você está procurando.
Se isso nunca acontecer, a tela inteira ficará lenta devido ao motivo acima.

Resumindo, WT não deve renderizar com VRR e se alguém tiver uma idéia de como fazer o driver da Nvidia detectar WT como um aplicativo que deseja G-SYNC, por favor me avise e eu o implementarei! Eu sei que é possível de alguma forma, porque, novamente, UWP Minecraft é um dos poucos aplicativos UWP que são detectados corretamente como não-G-SYNC.

O que me intriga vindo de um passado de desenvolvedor de jogos, e desculpe se esta é uma pergunta estúpida, por que o loop de aplicativo está vinculado ao renderizador? Em um jogo, ninguém faria isso muito antes de termos o G-Sync, porque se um sistema não consegue lidar com uma cena pesada, por exemplo, a lógica interna deve continuar mesmo que a renderização seja lenta.

Quando eu penso em como isso torna o cursor instável, eu me pergunto o que está acontecendo no fundo porque com meu modelo mental o cursor do SO era uma coisa separada do aplicativo gráfico em execução. É quase como se o G-Sync estivesse reduzindo a velocidade de todo o compositor.

Mas estou divagando, apenas dizer ao G-Sync para calar a boca também é uma solução, não é como se ele tivesse um lugar dentro de um terminal de qualquer maneira. Mas como fazer isso com o código do aplicativo, não sei.

@SirJson Acredito que ainda faltam alguns lugares para a otimização do renderizador. Mas você precisa considerar que os jogos não são projetados para economizar energia, e é por isso que eles usam, digamos, 10% da potência potencial da CPU o tempo todo. Como um terminal, este não deveria ser o caso, é por isso que gostaríamos de limitar o loop de renderização o máximo possível.
O motivo pelo qual o cursor do mouse fica instável é porque o WT é reconhecido como um aplicativo VRR e a taxa de quadros da tela é sincronizada com os WTs. Agora, se o WT renderizar de maneira eficiente em termos de energia (ou seja: raramente / se necessário), a taxa de quadros do WT cai para cerca de 3-4 FPS, o que faz com que a taxa de quadros de toda a tela caia para 3-4 FPS.

Sim, eu concordo, seria estúpido renderizar o mesmo texto 144 vezes só porque podemos.

Em relação às exceções G-Sync, presumo que isso esteja codificado no driver. Quando abro meus perfis no Painel de controle da NVIDIA, vejo perfis automáticos para Chrome, Firefox .. etc e todos eles estão configurados corretamente, como as pessoas estão fazendo aqui manualmente. Isso significa que até que alguém acorde e crie um perfil no driver ou conserte o G-Sync, não há muito que possamos fazer.

Estou curioso agora o que acontece com a AMD no mesmo monitor e sistema. Afinal, há um motivo pelo qual estou executando essa configuração de GPU e se o Windows insiste em instalar os drivers AMD repetidas vezes, é melhor testar isso agora. Eu me pergunto se a AMD permite o FreeSync em aplicativos em janela.

Alguém encontrou uma maneira de adicioná-lo à lista de aplicativos no painel de controle da Nvidia?

Não surge para mim: /

Sim, clique em Adicionar -> Procurar e vá para C: \ Arquivos de Programas \ WindowsApps \ Deve haver uma pasta chamada algo como Microsoft.WindowsTerminal_1.0.1811.0_x64__8wekyb3d8bbwe .

O exe está dentro.

Porém, este método é melhor: https://github.com/microsoft/terminal/issues/649#issuecomment -647617350

@SirJson : Sim, concordo, seria estúpido renderizar o mesmo texto 144 vezes só porque podemos.

Uma alta taxa de quadros pode ser necessária se o mesmo texto puder se mover repentinamente, não sei se um monitor moderno pode alterar instantaneamente a taxa de quadros para a taxa de quadros necessária para mover o texto suavemente como em aplicativos como este (use o perfil WSL para habilitar rastreamento do mouse):

ssh [email protected]

netxs-group / VTM # 9 Com este aplicativo, você pode testar o desempenho do terminal manipulando o conteúdo do texto com o mouse usando qualquer taxa de quadros.

image

Sim, clique em Adicionar -> Procurar e vá para C: \ Arquivos de Programas \ WindowsApps \ Deve haver uma pasta chamada algo como Microsoft.WindowsTerminal_1.0.1811.0_x64__8wekyb3d8bbwe .

O exe está dentro.

Porém, este método é melhor: # 649 (comentário)

Sim, usando aquele por agora. Tentei fazer um perfil por esse método, mas não funcionou.
Então, a renderização de SW é por agora.

Também tive problemas ao definir um perfil Nvidia para meu aplicativo UWP. Eu instalei o Terminal via scoop e _ainda_ não consegui fazer com que ele aplicasse um perfil. No final, usei https://github.com/Orbmu2k/nvidiaProfileInspector como sugerido por @krage e me certifiquei de que o perfil era bom e simples: refiz a associação a windowsterminal.exe e modifiquei apenas um valor, o G- Sincronizar estado do aplicativo um

image

Et voila! Terminal 155Hz 😎

@jalada Desculpe, mas esse método também não está funcionando para mim :(. Parece que usar a renderização de software é a única opção. Estou usando a versão de visualização do terminal btw.

This is my inspector profile btw

Depois de um longo período e dando à nVidia meu relatório msinfo32, eles estão dizendo que estão investigando.

Olá Kruno,

Obrigado. Estamos investigando o problema. Não há mais atualizações neste momento.

Saudações,
Josh
NVCC

Agora vamos jogar o jogo da espera.

@ o-sdn-o Mas isso é uma referência se eu entendi corretamente e não seu caso de uso típico. Tento ver de uma perspectiva prática e uso um monitor de 144Hz diariamente. E tbh ainda não encontrei um aplicativo de terminal que requeira 144 FPS que não seja uma demonstração ou um efeito legal.

O problema que vejo é se quero jogar no modo de janela ou no novo "modo de janela de tela cheia" recomendado, mas também usar o G-Sync sem quebrar o Windows ao mesmo tempo. Lembre-se de que isso não está acontecendo apenas com o Terminal do Windows, mas também, por exemplo, no Microsoft Whiteboard e em outros aplicativos UWP.

O que me confundiu foi que o cursor de todas as coisas foi detectado como "aplicativo de taxa de atualização variável". Para mim, tudo isso soa como algo que a Nvidia deveria investigar.

Na pior das hipóteses, faça um fork, desbloqueie a taxa de quadros e faça o que você precisa fazer. Mas isso não resolveria o problema geral do sistema.

Sim, concordo inteiramente com @SirJson , a Nvidia precisa consertar seus drivers excluindo este aplicativo.
Não é realmente um problema que se origine do Terminal Windows.

Sinto que preciso esclarecer novamente, que G-Sync é a implementação da Nvidia de uma "taxa de atualização variável" (VRR) para o seu monitor.
A parte importante aqui é _ "seu monitor" _, porque a taxa de atualização não é por aplicativo. Se algum aplicativo fizer com que o G-Sync seja ativado, todo o monitor será renderizado na velocidade do aplicativo que causa o G-Sync.
Seu cursor não vacila ao usar aplicativos UWP com G-Sync porque o cursor está sendo detectado como um aplicativo VRR, mas sim porque a taxa de atualização de todos os monitores foi reduzida dinamicamente. A razão para isso é que os aplicativos de desktop - como o Windows Terminal - quase sempre desenham apenas quando necessário, o que resulta em uma baixa taxa de quadros do aplicativo, que o G-Sync finalmente transforma em uma baixa taxa de atualização do seu monitor.

Bem, isso torna todo esse recurso inútil, não é? Presumi que o que meu monitor está relatando, a constante 144hz, é a taxa de atualização da tela como um todo e talvez alguns truques com o compositor implementaram esse recurso.

Sorte se eu tiver tempo para jogar, aquele jogo que estou jogando agora suporta tela inteira verdadeira. Eu não toquei nessa opção por meses por causa do "que acontece" e não tive nenhum problema com ela. Para ser honesto, originalmente me deparei com esse problema porque meu monitor antigo também pode ser forçado a fazer g-sync @ 60hz (que é ainda mais um ponto a menos, mas hey, eu estava curioso para o que iria acontecer)

Para qualquer pessoa que tenha problemas e não queira usar a renderização de software, só posso recomendar que você faça o que eu e outros fizemos há mais de 130 dias e espero que a NVIDIA encontre uma solução porque o afastamento da verdadeira tela inteira é bem claro.

Obrigado @lhecker por esclarecer as coisas, pelo menos para mim

Adicionar "experimental.rendering.software": true também me ajudou. Executando o Windows Terminal 1.0.1401.0 usando GTX 970 (driver Nvidia 432.00).

Este problema não é específico do Terminal do Windows. Eu também tive que definir um sinalizador experimental para o Ableton Live e desativar a aceleração de hardware para o Spotify.

Isso corrige o problema para mim usando 2080ti e vários monitores GSynced de 165 Hz

Adicionar "experimental.rendering.software": true também me ajudou. Executando o Windows Terminal 1.0.1401.0 usando GTX 970 (driver Nvidia 432.00).
Este problema não é específico do Terminal do Windows. Eu também tive que definir um sinalizador experimental para o Ableton Live e desativar a aceleração de hardware para o Spotify.

Isso corrige o problema para mim usando 2080ti e vários monitores GSynced de 165 Hz

Isso também resolve o problema para mim com GSync 1080ti e 165hz.

Adicionar "experimental.rendering.software": true também me ajudou. Executando o Windows Terminal 1.0.1401.0 usando GTX 970 (driver Nvidia 432.00).
Este problema não é específico do Terminal do Windows. Eu também tive que definir um sinalizador experimental para o Ableton Live e desativar a aceleração de hardware para o Spotify.

Isso corrige o problema para mim usando 2080ti e vários monitores GSynced de 165 Hz

Isso também resolve o problema para mim com GSync 1080ti e 165hz.

Isso resolve o problema para mim em um RTX 2070 e 144 Hz GSync

A mesma coisa está acontecendo em uma GeForce 2080 Ti com driver 451.67. O que o Windows Terminal está fazendo de diferente em relação a outros aplicativos de terminal com sua renderização de tela? Powershell, Powershell ISE, a linha de comando padrão do Windows, Cmder, todos não exibem esse comportamento estranho e estão bem com janela Gsync ou configurações em janela.

Gostaria de mencionar novamente meus comentários acima, pois eles explicam a situação em detalhes.
Este comentário em particular deve ser o mais conciso: https://github.com/microsoft/terminal/issues/649#issuecomment -647777960

Gostaria de mencionar novamente meus comentários acima, pois eles explicam a situação em detalhes.
Este comentário em particular deve ser o mais conciso: # 649 (comentário)

Eu entendo o raciocínio em seu comentário se estivéssemos falando sobre a diferença entre como os jogos capturam a entrada do mouse e outros tipos de aplicativos, mas estou me perguntando por que outros aplicativos de terminal que menciono parecem lidar com a entrada do mouse em uma taxa de atualização de tela habilitada para Gsync sem problemas . Esses são aplicativos padrão e tenho certeza que eles não têm um perfil personalizado do Painel de Controle da Nvidia para eles. Qual é a diferença em como o Windows Terminal está lidando com a renderização da tela e pode ser corrigido pelos desenvolvedores, a Nvidia precisa lidar com isso ou ambos?

@Seefer Você está entendendo mal ... G-Sync funciona acelerando a taxa de atualização do seu monitor e não a taxa de quadros do seu cursor.
O Windows Terminal (WT) exibe esse comportamento, pois renderiza o shell usando sua GPU e não a CPU, ao contrário dos outros terminais que você tentou. A Nvidia reconhece incorretamente o WT como um aplicativo que deseja o G-Sync. Você pode ler mais sobre isso em meus outros comentários nesta edição e no comentário vinculado acima.

Eu sei que isso parece muito rude, mas como falante não nativo de inglês e falta de palavras melhores: Muitos comentaristas aqui parecem para mim como se eles realmente não soubessem o que é G-Sync e como funciona. Sugiro _ fortemente_ a todos aqui que desliguem o G-Sync para aplicativos em janela. Você deve considerar que a Nvidia apresenta um botão giratório de nível muito baixo, exclusivo para especialistas, que deve ser deixado no padrão (ou seja, desativado). As configurações do painel de controle da Nvidia devem ser assim:
image

Existem apenas circunstâncias muito raras em que você deseja que ele seja ativado. Basicamente, o único caso em que você deseja alterar essa configuração é se você tiver jogos em janela (não em tela cheia) ou outros aplicativos gráficos que não rodam na taxa de atualização nativa do seu monitor (144 Hz, 240 Hz, etc.).

Eu vejo seu ponto agora. Infelizmente, a opção de configuração de modo de janela ou tela inteira do Gsync não é realmente uma opção para mim como jogador. Eu executo jogos principalmente em tela cheia sem bordas sempre que possível, pois isso evita problemas de perda de dispositivos gráficos para jogos que não lidam muito bem com ALT-TAB. Também é mais fácil voltar para a área de trabalho se um jogo travar para abrir o Gerenciador de Tarefas ou o Explorador de Processos para encerrar a Tarefa do jogo congelado. Acho que vou continuar com o Cmder para minhas necessidades de terminal até que o comportamento do mouse do Windows Terminal seja resolvido :(

O benefício do @Seefer G-Sync é a remoção da

@lhecker Não sei exatamente por que, mas o G-Sync no modo de janela (tela cheia sem borda) faz uma diferença visível para mim, então eu o mantenho ligado. Sem ele, a taxa de atualização variável não funciona corretamente (eu tentei várias coisas) e acho que a taxa de quadros fica presa pelos drivers do Windows ou da Nvidia. Este é o caso de todos os jogos que joguei recentemente. Eu tenho dois monitores G-Sync, então prefiro usar tela inteira sem borda.

Lembro-me de ter lido que os jogos só teriam acesso exclusivo ao driver se estivessem no modo de tela cheia, mas há alguns anos a tela cheia sem borda também começou a dar aos jogos acesso exclusivo com o benefício de poder usar configurações de vários monitores com facilidade.

Devo também mencionar que isso acontece mesmo quando o mouse não está sobre o terminal, desde que o foco esteja no terminal. Se eu tiver o terminal ocupando, tenha a tela selecionada, o mouse ficará para onde quer que eu mova. Tire o foco e tudo ficará perfeito.

@jalada @SirJson e outros, você apenas tem que substituí-lo "da maneira certa". Para coisas Store / UWP, você precisa usar o nome interno <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string> . Não há necessidade de mexer com as permissões C:\Program Files\WindowsApps .

Salve como arquivo com finalização .nip, importe o arquivo com o 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>

Ou descompacte deste:
Nvidia-Terminal.zip

Apenas <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string> é necessário para uma instalação da Loja (no meu PC / Win / driver; não consigo testar outras configurações, então deixei tudo o que parecia _algo_ razoável).

Eu não sabia como o NV nomearia esse perfil (eles têm Microsoft ... / Windows ... inconsistentes) e não sei o que acontecerá com este perfil personalizado se um futuro driver enviar o seu próprio.

[no meu driver anterior 445,78, o menu Iniciar também estava se comportando assim na metade do tempo, taxa de atualização de ~ 32 Hz; corrigido em drivers mais novos como 451,85]

@jalada @SirJson e outros, você apenas tem que substituí-lo "da maneira certa". Para coisas Store / UWP, você precisa usar o nome interno <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>

Salve como arquivo com finalização .nip, importe o arquivo com o 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>

Ou descompacte deste:
Nvidia-Terminal.zip

Apenas <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string> é necessário para a instalação da Loja.

Eu não sabia como NV nomearia tal perfil (eles têm Microsoft ... / Windows ... nomenclatura inconsistente) e não sei o que acontece com este personalizado se um futuro driver enviar o seu próprio.

[no meu driver anterior 445,78, o menu Iniciar também se comportava assim na metade do tempo, taxa de atualização de ~ 32 Hz]

Obrigado por isso. Ótima ferramenta. Eu não sabia que havia tantas outras configurações de perfil da Nvidia ocultas. Eu já tinha adicionado o executável do Terminal do Windows aos perfis da Nvidia, mas sem mexer nas configurações do GSYNC expostas ali me permitiu ajustar o comportamento de captura do mouse do Terminal do Windows.

Não parece alterar dinamicamente meu modo Global GSYNC de Windowed ou Fullscreen para Fullscreen por perfil. Usando o Painel de Controle da Nvidia para definir o Modo GSYNC para Tela Cheia ,, Os problemas do mouse do Terminal do Windows realmente desaparecem, mas se usar esta ferramenta Inspetor de Perfil para definir o Modo GSYNC para Tela Cheia e executar o Terminal do Windows, os problemas do mouse permanecem como se a configuração do perfil não pudesse para substituir a configuração global. Isso tudo é muito frustrante, sem nenhuma ideia clara de qual parte precisa fazer a correção (Nvidia ou WT devs). Até que isso seja resolvido, vou continuar com o Cmder, o que é uma pena, porque eu realmente entendo como o WT torna o uso de WSL2 um pouco mais agradável :(

@jalada @SirJson e outros, você apenas tem que substituí-lo "da maneira certa". Para coisas Store / UWP, você precisa usar o nome interno <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string>
Salve como arquivo com finalização .nip, importe o arquivo com o 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>

Ou descompacte deste:
Nvidia-Terminal.zip
Apenas <string>Microsoft.WindowsTerminal_8wekyb3d8bbwe</string> é necessário para a instalação da Loja.
Eu não sabia como NV nomearia tal perfil (eles têm Microsoft ... / Windows ... nomenclatura inconsistente) e não sei o que acontece com este personalizado se um futuro driver enviar o seu próprio.
[no meu driver anterior 445,78, o menu Iniciar também se comportava assim na metade do tempo, taxa de atualização de ~ 32 Hz]

Obrigado por isso. Ótima ferramenta. Eu não sabia que havia tantas outras configurações de perfil da Nvidia ocultas. Eu já tinha adicionado o executável do Terminal do Windows aos perfis da Nvidia, mas sem mexer nas configurações do GSYNC expostas ali me permitiu ajustar o comportamento de captura do mouse do Terminal do Windows.

Não parece alterar dinamicamente meu modo Global GSYNC de Windowed ou Fullscreen para Fullscreen por perfil. Usando o Painel de Controle da Nvidia para definir o Modo GSYNC para Tela Cheia ,, Os problemas do mouse do Terminal do Windows realmente desaparecem, mas se usar esta ferramenta Inspetor de Perfil para definir o Modo GSYNC para Tela Cheia e executar o Terminal do Windows, os problemas do mouse permanecem como se a configuração do perfil não pudesse para substituir a configuração global. Isso tudo é muito frustrante, sem nenhuma ideia clara de qual parte precisa fazer a correção (Nvidia ou WT devs). Até que isso seja resolvido, vou continuar com o Cmder, o que é uma pena, porque eu realmente entendo como o WT torna o uso de WSL2 um pouco mais agradável :(

Ok, parece estar funcionando. Tive que remover meu perfil WT anterior no painel de controle e apenas usar seu arquivo .nip para importar usando o Inspetor de perfil Nvidia. Presumi que porque eu já tinha um perfil WT, importar o seu não era necessário para obter acesso às configurações do perfil executável WT. As coisas parecem funcionar bem agora. Posso deixar meu modo GSYNC global para janela ou tela inteira e seu perfil se encarrega de ajustar o modo GSYNC para tela inteira apenas quando eu inicio o WT.

Muito Obrigado!

O benefício do @Seefer G-Sync é a remoção da

Qualquer jogo executado no modo 'janela sem borda' é basicamente um jogo com janela, apenas sem o cromo do sistema operacional Windows. Este modo existe há muito tempo. Lembro-me de usá-lo durante meu tempo de programação no WIN32.

@Seefer É exatamente por isso que eu pessoalmente não entendi totalmente por que algumas pessoas exigem o G-Sync para aplicativos de tela inteira não exclusivos. Não pode haver um benefício significativo, pois tudo o que G-Sync oferece é algo que o DWM também faz. (Considerando que você não se esqueceu de habilitar o V-Sync.)

De qualquer forma, o que precisa acontecer é a Nvidia consertar do seu lado. Eles devem habilitar o G-Sync apenas para aplicativos em janela de tela inteira que também ocultam o cursor e nem todos os aplicativos em janela regulares.

@Seefer É exatamente por isso que eu pessoalmente não entendi totalmente por que algumas pessoas exigem o G-Sync para aplicativos de tela inteira não exclusivos. Não pode haver um benefício significativo, pois tudo o que G-Sync oferece é algo que o DWM também faz. (Considerando que você não se esqueceu de habilitar o V-Sync.)

Isso está ficando totalmente fora do assunto agora, mas por exemplo:
Fonte de 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.

Eles devem habilitar o G-Sync apenas para aplicativos em janela de tela inteira que também ocultam o cursor e nem todos os aplicativos em janela regulares.

Certamente poderia haver jogos que não escondem o cursor e não-jogos que escondem? Desculpe se não o entendi, mas quando meu reprodutor de mídia esconde o cursor, ele não se torna um jogo, e suponho que um jogo possa continuar mostrando o cursor do Windows também.

@Luckz Você percebeu que postei a solução meses atrás, mas não tinha certeza se ela também podia ser corrigida no nível do aplicativo, porque simplesmente não me lembrava de como o G-Sync funciona exatamente. Atualmente, você pode ligá-lo até na torradeira, o que torna mais fácil esquecer o que essa opção realmente significa. Então, esse é o meu problema, mas naquela época, quando postei a solução, também mencionei como era idiota ativar o G-Sync em janelas. Também posso notar que não tive nenhum problema desde então.

Depois disso, toda a discussão minha foi sobre a busca de uma solução que não fosse: "Esperamos até que a Nvidia perceba isso." Mas essa é a única opção para uma correção real e a renderização de software é uma solução alternativa até então.

Eu sei que você não quis dizer nada de ruim, mas apenas porque você vê um nome com frequência, isso não significa que o usuário também está tendo o maior problema.

@Luckz : Concordo que estamos um pouco

Mas eu esperava que esse artigo fosse mencionado, especialmente porque é factualmente errado, ou pelo menos bastante enganador. Quer dizer, não é como se o artigo tivesse sido revisado por pares, certo? Então, permita-me explicar pela última vez como o autor desse artigo está interpretando mal seus próprios resultados.
A taxa de quadros do aplicativo é virtualmente limitada a 142 FPS, apesar do V-Sync ser usado, o que limitaria a taxa de quadros a 144 FPS de qualquer maneira. tl; dr: Não limite as taxas de quadros se você usar o V-Sync.
O autor do seu artigo cometeu exatamente esse erro, incorretamente fazendo-os (e você acredita) que regularmente / sempre obtém um atraso de 1 frame, o que não poderia estar mais longe da verdade. Na verdade, apenas 2 em cada 144 quadros estão atrasados ​​devido a esse "desalinhamento" da taxa de quadros do aplicativo e da taxa de atualização do monitor.
Uma comparação adequada pode ser vista aqui (você precisa mudar a primeira imagem para as versões de 144+ Hz). Para comparação da diferença de 0-2 ms: um monitor moderno e caro de 144 Hz geralmente tem um tempo de resposta GtG medido de cerca de 4 ms e eu duvido que muitos já tenham notado isso. 😄

Obrigado @Luckz por uma correção / solução alternativa.

Eu acrescentaria aos sintomas que experimentei antes de montá-lo, que era o Terminal do Windows que estava causando isso.
Executando o Windows 10 20H2 (OS Build 19042.450) Eu vi o monitor GSYNC escurecer e não ligar novamente (é necessário reinicializar). Também visto uma tela preta piscando em todos os 3 monitores. Depois de aplicar, os problemas de correção parecem ter desaparecido.

Olá a todos,
Tenho tido o mesmo problema.
No início, achei que meu laptop era o único com o problema, mas depois percebi que o problema também estava ocorrendo em certos tipos de aplicativos, principalmente os aplicativos da Windows Store. Tenho notado que ocorre Splashable, WhatsApp, Windows Terminal, Speedtest entre muitos outros.
Meu laptop é o ASUS ROG Zephyrus Duo 15 GX550LWS
Especificações aqui
Meu monitor externo é o monitor de jogos ASUS VG278QR (compatível com GSYNC) rodando a 165 Hz

Configurar GSYNC para o modo de tela cheia, o que é ridículo, resolve o problema.
Além disso, como minha GPU tem design Max-Q, tenho a opção de alternar entre o modo otimus e o modo gráfico discreto. No modo gráfico discreto com foco em tais aplicativos, faz com que a segunda tela do meu laptop fique preta, a menos que o movimento do mouse ou algo no aplicativo esteja mudando. Suponho que isso tenha a ver com a renderização de quadros.

Splashable, WhatsApp, Speedtest entre muitos outros.

Você é bem-vindo para criar perfis para todos eles e enviá-los para a Nvidia de maneira ideal para inclusão em um futuro lançamento de driver.

Eu odeio acumular um problema antigo, mas estou vendo que a correção usual (adicionar um perfil personalizado com " Tecnologia de monitor " definida como " Atualização corrigida ") não está realmente funcionando. Eu tenho um monitor ultralargo LG 38GL950G definido para 100Hz. Ele tem uma tela de taxa de atualização de hardware que pode ser ligada. Mesmo com um perfil definido para desabilitar o GSync para o aplicativo, ainda cai para 12FPS quando o Terminal é o aplicativo em primeiro plano.

Desligar o G-Sync para aplicativos em janela não é uma opção, já que freqüentemente jogo jogos em janela. Isso resolveria esse comportamento, mas tem muitos efeitos colaterais negativos.

Vocês estão fazendo algo diferente com perfis para fazê-lo funcionar?

Splashable, WhatsApp, Speedtest entre muitos outros.

Você é bem-vindo para criar perfis para todos eles e enviá-los para a Nvidia de maneira ideal para inclusão em um futuro lançamento de driver.

Esse problema precisa ser enviado à Microsoft, pois parece ser um problema fundamental com a maneira como a tecnologia UWP lida com desenhos de janelas, esperançosamente pode ser corrigido na próxima compilação do Windows. Nenhum dos meus programas não UWP experimenta esse comportamento estranho.

Mesmo com um perfil definido para desativar o GSync para o aplicativo

Tem certeza de que tem o aplicativo certo? Talvez cole o que você está usando como aplicativo. (depois de verificar algumas postagens acima para ver o que geralmente funciona)

Mesmo com um perfil definido para desativar o GSync para o aplicativo

Tem certeza de que tem o aplicativo certo? Talvez cole o que você está usando como aplicativo. (depois de verificar algumas postagens acima para ver o que geralmente funciona)

Estou usando c: \ arquivos de programas \ windowsapps \ microsoft.windowsterminal_1.3.2651.0_x64__8wekyb3d8bbwe \ windowsterminal.exe como o programa, que é o caminho para a imagem executável de acordo com o Gerenciador de tarefas. Eu também tentei WT.EXE na mesma pasta.

Tentei definir o GSync para tela inteira apenas como sugerido acima, mas não ajudou. Desativei totalmente o Gysnc na minha máquina e, se consertou a cintilação do mouse (baixa taxa de atualização), mas ao mover a janela, ainda é uma bagunça lenta (sem GSync).

Que outras opções posso tentar?

Tem certeza de que tem o aplicativo certo? Talvez cole o que você está usando como aplicativo. (depois de verificar algumas postagens acima para ver o que geralmente funciona)

Estou usando c: \ arquivos de programas \ windowsapps \ microsoft.windowsterminal_1.3.2651.0_x64__8wekyb3d8bbwe \ windowsterminal.exe como o programa, que é o caminho para a imagem executável de acordo com o Gerenciador de tarefas. Eu também tentei WT.EXE na mesma pasta.

É exatamente por isso que perguntei. Você tem que usarMicrosoft.WindowsTerminal_8wekyb3d8bbwe . Eu carreguei um perfil acima (com muitas outras variantes que não são necessárias). Aqui está o mínimo:
Nvidia-Terminal.zip

Inscreva-se com https://github.com/Orbmu2k/nvidiaProfileInspector/releases ( furo : scoop install nvidia-profile-inspector ). Clique no botão importar na barra de ferramentas, alimente-o com .nip (s) e você está pronto para ir.

mais alguns aplicativos com problemas para os quais criei alguns perfis:
Uma nota: Microsoft.Office.OneNote_8wekyb3d8bbwe
Pinte 3D Microsoft.MSPaint_8wekyb3d8bbwe
Recorte e esboço Microsoft.ScreenSketch_8wekyb3d8bbwe
Acessórios Xbox Microsoft.XboxDevices_8wekyb3d8bbwe
Câmera (requer a substituição do perfil Nvidia existente)
Cortana / interface de pesquisa (requer a substituição do perfil Nvidia existente)
Centro de Feedback Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe
Microsoft para fazer Microsoft.Todos_8wekyb3d8bbwe

terceiro:
Amazon: Amazon.com.Amazon_343d40qqvtj1t
Vídeo Amazon Prime para Windows: AmazonVideo.PrimeVideo_pwbj9vvecjh7j
Liberty Global Horizon Go: LibertyGlobal.HorizonGODE_gmwgfebrpy77e
minha coleção atual de 12 perfis: Nvidia-UWP-NoGsync-Profiles.zip

Mas existem inúmeros mais (Portal de Realidade Mista, Visualizador 3D, ...)

Também mantendo este problema vivo / recapitulando. A melhor correção até agora no Windows Terminal Versão 1.3.2651.0 (instalado com choco) é "experimental.rendering.software": verdadeiro em settings.json.

Desvantagem: Não é possível ter um jogo e uma janela do Terminal do Windows no monitor Gsync, pois o Terminal do Windows ainda é tratado como um jogo.

Positivo: como o Windows Terminal é instalado através da Microsoft Store, você não pode aplicar facilmente a correção do Painel de Controle da Nvidia, a menos que use o nvidiaProfileInsepctor de terceiros.

Esta página foi útil?
0 / 5 - 0 avaliações