Apresentando o NVIDIA Reflex: um Conjunto de Tecnologias para Otimizar e Medir a Latência em Games Competitivos

Por Seth Schneider on 1 de Setembro de 2020 | Featured Stories FramesWinGames GeForce RTX GPUs Guides NVIDIA Reflex

Hoje, 73% dos gamers da GeForce jogam games multiplayer ou eSports. O eSport mais assistido, League of Legends, atraiu mais de 100 milhões de espectadores no campeonato de 2019 (mais do que o NFL Super Bowl do ano passado). Com os eSports apresentando números de espectadores e tempo de jogos que rivalizam os dos esportes tradicionais, é mais importante do que nunca que o PC e o hardware gráfico dos gamers sejam ajustados para permitir que eles joguem com o melhor desempenho. É por isso que, há alguns anos, a NVIDIA investiu em um laboratório de eSports com cientistas da NVIDIA Research dedicados a entender o desempenho do jogador e do hardware em eSports. Hoje, estamos empolgados em compartilhar com vocês os primeiros grandes frutos dessa pesquisa.

Além das nossas novas placas de vídeo GeForce RTX Série 30, estamos divulgando o NVIDIA Reflex, um pacote revolucionário de placa de vídeo, monitor G-SYNC e tecnologias de software que medem e reduzem a latência do sistema em games competitivos (também conhecida como latência de clique para exibição). Reduzir a latência do sistema é fundamental para os gamers competitivos, pois isso permite que o PC e o monitor respondam mais rápido aos comandos do teclado e do mouse de um usuário, possibilitando que os jogadores encontrem os inimigos mais rápido e atirem com mais precisão.

 

O NVIDIA Reflex apresenta duas grandes novas tecnologias:

NVIDIA Reflex SDK: um novo conjunto de APIs para desenvolvedores de games reduzirem e medirem a latência de renderização. Ao integrar-se diretamente ao game, o Modo de Baixa Latência do Reflex alinha o trabalho do mecanismo de game para que seja concluído a tempo da renderização, eliminando a fila de renderização de placa de vídeo e reduzindo a pressão de volta da CPU. Isso oferece reduções de latência muito além das técnicas existentes apenas para drivers, como o Modo Latência Ultrabaixa da NVIDIA.

O Modo Baixa Latência do Reflex será lançado em breve para os principais games competitivos, incluindo Apex Legends, Call of Duty: Black Ops Cold War, Call of Duty: Modern Warfare - Warzone, Destiny 2, Fortnite e Valorant, e oferecerá melhorias de latência em cenários de games com uso intensivo de placa de vídeo nas placas de vídeo GeForce GTX 900 e superiores da NVIDIA.

NVIDIA Reflex Latency Analyzer: uma revolucionária ferramenta de medição de latência do sistema integrada aos novos monitores G-SYNC de 360 Hz para eSports da Acer, ASUS, MSI e Dell e compatível com os principais periféricos de eSports da ASUS, Logitech e Razer.

O Reflex Latency Analyzer detecta cliques do mouse e mede o tempo necessário para os pixels resultantes (ou seja, um flash de disparo) mudarem na tela. Esse tipo de medida era praticamente impossível para os gamers fazerem antes, exigindo mais de US$ 7.000 em câmeras e equipamentos de alta velocidade especializados.

 

Enquanto no passado os gamers tinham que adivinhar a capacidade de resposta do seu sistema com base em métricas de taxa de transferência, como frames por segundo (FPS - Frames Per Second), o NVIDIA Reflex Latency Analyzer oferece uma compreensão muito mais completa e precisa de desempenho do mouse, do PC e do monitor. Agora, com o Reflex Latency Analyzer, os gamers competitivos podem começar uma partida com confiança, sabendo que o sistema está operando exatamente como deveria estar.

 

Neste artigo, nos aprofundaremos na latência do sistema e na tecnologia do NVIDIA Reflex. Prepare-se!

Mas afinal, o que é Latência?

A latência é uma medida de tempo que descreve o atraso entre uma ação desejada e o resultado esperado. Quando usamos um cartão de crédito para pagar por algo on-line ou no supermercado, o tempo que leva para nossa compra ser confirmada é a latência.

Os gamers experimentam principalmente dois tipos de latência: latência do sistema e latência da rede.

Latência da rede é o atraso de ida e volta entre o cliente do game e o servidor multiplayer, mais conhecido como "ping".

 

Esse atraso pode afetar nosso gameplay de algumas maneiras diferentes, dependendo de como o código de rede do game lida com a latência da rede. Veja a seguir alguns exemplos:

  • Confirmações atrasadas de acertos, como quando seu tiro acerta, mas você não obtém a confirmação de kill até muito mais tarde. Isso pode resultar em desperdício de munição ou transferências atrasadas de mira para o próximo alvo.
  • Interações atrasadas com objetos do mundo, como abertura de portas ou de baús.
  • Posições atrasadas de oponentes, o que resulta no que é conhecido como "peeker's advantage", ou vantagem de quem vê primeiro (mais informações sobre isso mais adiante).
 

Observe que a latência da rede não é a mesma coisa que problemas de instabilidade de rede, como perda de pacotes e pacotes fora de ordem. A instabilidade da rede pode causar problemas como rubberbanding e dessincronização. Rubberbanding acontece quando você se move no game, apenas para aparecer novamente na localização de alguns segundos antes. Como um elástico, você volta para sua posição anterior como vista pelo servidor. A dessincronização acontece quando você tem perda de pacotes, resultando em travamento de rede. Você perceberá inimigos parando por um segundo e, depois, teletransportando-se para a posição correta. Esses problemas comuns não são problemas de latência da rede, mas normalmente ocorrem quando o pacote tem uma distância maior para percorrer e, portanto, estão correlacionados a uma latência maior.

Latência do sistema é o atraso entre as ações do mouse ou do teclado e as alterações de pixels resultantes na tela, como o flash de disparo de uma arma ou o movimento de personagem. Isso também é conhecido como latência de sistema clique para exibição ou de ponta a ponta. Essa latência não envolve o servidor do game, apenas seus periféricos, PCs e monitores.

 

Esse atraso afeta o gameplay de diversas maneiras. Veja alguns exemplos:

  • Capacidade de resposta atrasada, como quando você move o mouse, mas sua mira na tela é exibida com atraso.
  • Tiros atrasados, como quando você atira, mas os decalques do buraco da bala, os marcadores da bala e o recuo da arma ficam atrasados em relação ao clique do mouse.
  • Posições atrasadas de oponentes, conhecido como "peeker’s advantage". (Sim, a "peeker’s advantage" também é prejudicada pela latência do sistema!)
 

Em um alto nível, há três estágios principais na latência do sistema: o periférico (como um mouse), o PC e o monitor. Infelizmente, essa latência é difícil de descrever devido ao uso do termo "latência de entrada" ou "atraso de entrada" para descrever diferentes partes da latência do sistema.

Por exemplo, você pode encontrar a "latência de entrada" na caixa de um mouse falando sobre o tempo que o mouse leva para processar o clique. Você também pode encontrá-la na caixa de um monitor falando sobre o tempo que ele leva para processar o frame. Além disso, você pode encontrá-la mencionada em games e ferramentas de software quando estão realmente falando sobre o tempo que o game leva para processar suas informações. Se todas são chamadas de "latência de entrada", qual é então?

Latência do Sistema de Ponta a Ponta

Vamos tirar um momento para nos aprofundarmos e definir alguns termos mais precisos do que "atraso de entrada":

  • Latência de periféricos: o tempo necessário para que o dispositivo de entrada processe sua entrada mecânica e envie esses eventos de entrada para o PC
  • Latência do game: o tempo necessário para que a CPU processe a entrada ou as alterações no mundo e envie um novo frame à placa de vídeo para ser renderizado
  • Latência de renderização: o tempo entre o frame entrar na fila para ser renderizado até a placa de vídeo renderizar completamente o frame
  • Latência do PC: o tempo que um frame leva para se mover pelo PC. Isso inclui a latência do game e de renderização
  • Latência de exibição: o tempo que leva para o monitor apresentar uma nova imagem depois que a placa de vídeo termina de renderizar o frame
  • Latência do sistema: o tempo que abrange toda a medida de ponta a ponta: desde o início da latência de periféricos até o final da latência de exibição

Essas são definições de alto nível que não entram em alguns detalhes, mas oferecem uma ótima base para nos comunicarmos sobre a latência com eficiência. Também apresentaremos mais detalhes sobre cada um dos estágios mais adiante no artigo, portanto, se você quiser obter mais informações, pule para a seção avançada.

Qual é a Diferença entre FPS e Latência do Sistema?

Em geral, FPS mais altos se correlacionam com menor latência do sistema, no entanto, esse relacionamento está muito longe de ser 1 para 1. Para entender melhor, vamos parar e imaginar como podemos medir nossas interações com nosso PC. Primeiro, há o número de imagens que nosso monitor pode apresentar por segundo. Esse número é uma taxa de transferência chamada FPS (Frames Per Second). A segunda maneira é o tempo necessário para que nossas ações sejam refletidas em uma dessas imagens, uma duração chamada de latência do sistema.

Se tivermos um PC capaz de renderizar 1.000 FPS, mas leva um segundo para que nossas informações cheguem à tela, essa seria uma experiência ruim. Por outro lado, se nossas ações forem instantâneas, mas nossa taxa de frames for de 5 FPS, essa também não será uma experiência excelente.

Então, qual é o mais importante? Há mais de um ano, decidimos responder a essa pergunta, e as descobertas são muito interessantes. Publicamos nossa pesquisa completa na SIGGRAPH Asia, mas, em suma, descobrimos que a latência do sistema afetou a capacidade dos sujeitos de realizar tarefas de mira em um treinador de mira muito mais do que a taxa de frames exibida em seu monitor. Mas por quê?

Por que a Latência do Sistema É Importante?

Vamos começar a responder a essa pergunta analisando exemplos em games reais:

 

Primeiro, vamos dar uma olhada no registro de disparos. O registro de disparos é um termo que os gamers usam para se referir a como o game registra seus tiros em outro jogador. Muitas vezes, nós culpamos o registro de disparos quando sabemos que acertamos o tiro. Já aconteceu com todos nós. Mas é realmente o registro de disparos?

 

No tiro acima, o botão do mouse foi pressionado quando a mira estava sobre o alvo, mas este não foi atingido mesmo assim. Devido à latência do sistema e ao movimento do oponente, o mecanismo do game leu que a posição da mira estava atrás do alvo. Na verdade, o que você vê na tela está atrasado em relação ao estado atual do game. Isso acontece simplesmente porque leva um tempo para o PC processar as informações, renderizar o frame e apresentá-lo à tela. Em games em que milissegundos fazem a diferença, 30 a 40 milissegundos de atraso adicional podem significar perder o fragmento vencedor do game.

Segundo, vamos abordar a "peeker's advantage". Em altos níveis de jogadas competitivas, você normalmente mantém um ângulo quando tem uma vantagem extrema de ângulo (quando está mais longe do canto que o adversário) para compensar uma característica de games on-line chamada "peeker’s advantage".

A "peeker’s advantage" é a vantagem de milésimo de segundo que o atacante obtém ao espiar no canto um jogador mantendo um ângulo. Como leva tempo para que as informações de posição do jogador atacando cheguem ao jogador se defendendo, o jogador de ataque tem uma vantagem inerente. Para compensar isso, os jogadores farão "jiggle peek" no canto; espiando e se escondendo rapidamente, pois isso permitirá que eles vejam um inimigo antes de serem vistos, proporcionando uma segunda vantagem de milésimo de segundo. Esse fenômeno muitas vezes é visto como uma característica do código de rede de games ou da latência da rede. No entanto, a latência do sistema pode desempenhar uma função importante na "peeker’s advantage".

 

Como você pode ver na imagem acima, os dois jogadores estavam a uma distância equivalente do ângulo e seus pings eram os mesmos. A única diferença foram as latências do sistema.

Semelhante à explicação do registro de disparos, com uma latência do sistema mais alta, sua visão do mundo está atrasada, permitindo que o alvo veja você antes que você o veja. Se a sua latência do sistema for muito inferior à do seu adversário, você poderá atenuar completamente a "peeker’s advantage". Ainda há os efeitos da rede do game aqui, mas, em geral, a latência mais baixa do sistema ajuda a atenuar a "peeker’s advantage" na defesa e aproveitar no ataque.

Por fim, vamos discutir a precisão da mira. Em particular, flick shots. Treinar flick shots é provavelmente o treinamento mais importante que você pode fazer para os games competitivos como CS:GO ou Valorant. Em uma fração de segundo, você deve identificar o alvo, virar para ele e clicar com uma exatidão incrível que exige precisão de milissegundos. Mas você já sentiu que, não importava o que fizesse, os flick shots não eram consistentes?

 

A mira envolve uma série de submovimentos, correções subconscientes baseadas na posição atual da mira em relação à localização do alvo. Com latências mais altas, esse tempo de ciclo de feedback aumenta, resultando em menos precisão. Além disso, com latências mais altas, a latência varia mais, o que significa que é mais difícil para seu corpo prever e se adaptar. O resultado final é muito claro: uma latência alta significa menos precisão.

E isso nos leva aos resultados do nosso estudo que mencionamos anteriormente. No gráfico abaixo, você pode ver como a latência mais baixa teve um grande impacto ao medir a precisão de flick shots.

Nos games competitivos, as taxas mais altas de FPS e de atualização (Hz) reduzem sua latência, oferecendo mais oportunidades para que suas informações apareçam na tela. Até pequenas reduções na latência têm um impacto no desempenho de flick shots. Em nossa última publicação no blog Esports Research, a equipe da NVIDIA Research explorou as maneiras nas quais os diferentes níveis de latência do sistema afetam o desempenho do jogador.

A NVIDIA Research descobriu que até pequenas discrepâncias na latência do sistema, 12 ms ou 20 ms, podem ter uma diferença significativa no desempenho da mira. Na verdade, a diferença média na conclusão de tarefas de mira (o tempo necessário para identificar e atingir um alvo) entre PCs de 12 ms e 20 ms foi de 182 ms, que é aproximadamente 22 vezes a diferença de latência do sistema. Para colocar isso em perspectiva, com a mesma dificuldade de alvo, em um servidor com tick rate de 128 de Valorant ou CS:GO , seus tiros atingirão o alvo em média 23 ticks antes na configuração de PC de 12 ms. Ainda assim, a maioria dos gamers joga em sistemas com latência do sistema de 50 a 100 ms.

Então, isso se traduz em realmente ter sucesso nos games? Ser bom nos shooters competitivos envolve muito mais do que apenas uma habilidade mecânica. Um sentido apurado de games e estratégia desenvolvida em batalhas podem ser muito importantes para vencer ou garantir um clutch no round. No entanto, observando nossos dados de PUBG e Fortnite , vemos uma correlação semelhante entre as taxas de FPS mais altas (latência inferior) e taxas de K/D (Kill to Death).

De nenhuma maneira correlação implica causalidade. Porém, ao aplicar a ciência acima a essa correlação, vemos muitas evidências que apoiam a alegação de que FPS mais altos e latência do sistema mais baixa levam a acertos mais frequentes de tiros, impulsionando as taxas de K/D.

Redução da Latência do Sistema com NVIDIA Reflex

Com o lançamento do NVIDIA Reflex, nos propomos a otimizar todos os aspectos do pipeline de renderização para latência usando uma combinação de SDKs e otimizações de drivers. Algumas dessas técnicas podem resultar em grandes economias de latência, enquanto outras terão benefícios mais modestos, dependendo da situação. Independentemente disso, o NVIDIA Reflex é o nosso compromisso de oferecer ferramentas para gamers e desenvolvedores otimizarem a latência do sistema.

NVIDIA Reflex SDK

O Reflex SDK também permite que os desenvolvedores de games implementem um modo de baixa latência que alinha o trabalho do mecanismo de game para que seja concluído a tempo da renderização, eliminando a fila de renderização de placa de vídeo e reduzindo a pressão de volta da CPU.

Na imagem acima, podemos ver que a fila está cheia de frames. A CPU está processando frames mais rápido do que a placa de vídeo pode renderizá-los, causando o backup e resultando em um aumento da latência de renderização. O Reflex SDK compartilha algumas semelhanças com o Modo Latência Ultrabaixa no driver, mas, como se integra diretamente ao game, podemos controlar a quantidade de pressão de retorno que a CPU recebe da fila de renderização e outros estágios posteriores do pipeline. Com o Modo Latência Ultrabaixa, o driver tem muito menos controle. Embora o Modo Latência Ultrabaixa geralmente possa reduzir a fila de renderização, não é possível remover o aumento da pressão de retorno no game e na CPU. Por isso, os benefícios de latência do Reflex SDK são geralmente muito melhores do que o Modo Latência Ultrabaixa no driver.

Quando os desenvolvedores integram o Reflex SDK, eles conseguem atrasar efetivamente a amostragem de entrada e simulação de games, ajustando dinamicamente o tempo de envio do trabalho de renderização para a placa de vídeo para ser processado no momento certo.

Além disso, o SDK também oferece um recurso chamado de Impulso de Baixa Latência. Esse recurso substitui os recursos de economia energética na placa de vídeo para permitir que os clocks da placa de vídeo permaneçam altos quando muito associados à CPU. Mesmo quando o game esteja ligado à CPU, mais tempo de renderização adiciona latência. Manter os clocks mais altos pode consumir uma energia significativamente maior, mas pode reduzir ligeiramente a latência quando a placa de vídeo é consideravelmente subutilizada e a CPU envia o trabalho de renderização final em um grande lote. Se você não quiser perder energia, poderá usar o Modo Baixa Latência do Reflex sem o impulso ativado.

Os shooters competitivos são dinâmicos, alternando a ligação entre a placa de vídeo e a CPU. Se houver uma explosão com muitas partículas e o game se tornar ligado à placa de vídeo, o Reflex SDK manterá a latência baixa, não permitindo que o trabalho para a placa de vídeo forme uma fila. Se a renderização for simples e o game estiver ligado à CPU, o Reflex SDK manterá a latência baixa, mantendo altas frequências de clock de placa de vídeo. Independentemente do estado do pipeline de renderização, o Reflex SDK reduz com inteligência a latência de renderização para determinada configuração. Com o Reflex SDK, os gamers podem permanecer no ponto ideal de latência de renderização sem deixar todas as configurações no baixo.

Os shooters competitivos são dinâmicos, alternando o processamento entre a placa de vídeo e a CPU. Se houver uma explosão com muitas partículas e o game depender mais da placa de vídeo, o Reflex SDK manterá a latência baixa, não permitindo que uma fila de processamento seja formada para a placa de vídeo. Se a renderização for simples e o game estiver ligado à CPU, o Reflex SDK manterá a latência baixa, mantendo altas frequências de clock da placa de vídeo. Independentemente do estado do pipeline de renderização, o Reflex SDK reduz com inteligência a latência de renderização para determinada configuração. Com o Reflex SDK, os gamers podem permanecer no ponto ideal de latência de renderização sem deixar todas as configurações no baixo.

No momento do anúncio do Reflex SDK, os games a seguir planejam oferecer suporte ao NVIDIA Reflex com nosso próximo driver Game Ready em 17 de setembro de 2020: Apex Legends, Fortnite e Valorant. Além disso, os seguintes games anunciaram suporte para o NVIDIA Reflex em breve: Call of Duty: Black Ops Cold War, Cuisine Royale, Destiny 2, Enlisted e Mordhau.

O NVIDIA Reflex SDK é compatível com placas de vídeo desde os produtos da GeForce GTX Série 900, de 2014. No entanto, o aumento de latência baixa nas placas de vídeo GeForce RTX Série 30 manterá uma taxa de clock levemente mais alta para reduzir ainda mais a latência.

Para aqueles que realmente querem mergulhar em como o SDK funciona, abordaremos o pipeline de renderização, a CPU/a placa de vídeo-boundedness e como a latência é reduzida em mais detalhes na seção avançada.

Opções Avançadas do Painel de Controle para Latência

Modo Latência Ultrabaixa

Se um game não oferecer suporte para o Reflex SDK, você ainda poderá obter melhorias parciais de latência habilitando o Modo Latência Ultrabaixa da NVIDIA no painel de controle da NVIDIA. Basta abrir o painel de controle, acessar Gerenciar configurações 3D, selecionar Modo Latência Baixa e a opção Ultra. Conforme mencionado anteriormente no artigo, isso ajudará a reduzir a latência de renderização, mas sem o controle total do pipeline.

Se um game for compatível com o Modo Baixa Latência do NVIDIA Reflex, recomendamos usar esse modo no modo Latência Ultrabaixa no driver. No entanto, se você deixar ambos ativados, o Modo Baixa Latência do Reflex terá automaticamente prioridade.

Preferir Desempenho Máximo

O driver de vídeo da NVIDIA há muito tempo tem uma opção chamada "Modo Gerenciamento de Energia". Essa opção permite que os gamers escolham como a placa de vídeo opera em cenários ligados à CPU. Quando a placa de vídeo estiver saturada de trabalho, ela sempre será executada com o desempenho máximo. No entanto, quando a placa de vídeo não está saturada de trabalho, há uma oportunidade de economizar energia, reduzindo os clocks de placa de vídeo e mantendo o FPS.

Semelhante ao recurso Impulso de Baixa Latência no Reflex SDK, o Modo Preferir Desempenho Máximo substitui os recursos de economia energética na placa de vídeo e permite que esta seja sempre executada em clocks mais altos. Esses clocks mais altos podem reduzir a latência em instâncias ligadas à CPU em uma compensação de consumo mais alto de energia. Esse modo foi projetado para gamers que desejam obter cada microssegundo de latência do pipeline, independentemente da energia.

Com as placas de vídeo GeForce RTX Série 30, podemos definir esse valor de clock mais alto do que antes, permitindo que a placa de vídeo defina a latência de renderização mais baixa possível quando ligada à CPU. Os usuários com placas de vídeo mais antigas ainda podem ativar o Preferir Desempenho Máximo e manter clocks nas frequências de base.

Ajuste Automático no GeForce Experience

Com o lançamento de uma atualização do GeForce Experience chegando em de setembro, teremos um novo recurso Beta no painel de desempenho de overlay no game que permite aos gamers ajustarem a placa de vídeo para reduzir a latência de renderização com um único clique.

Esse sintonizador automático avançado verifica sua placa de vídeo para obter o aumento de frequência máximo em cada ponto de voltagem na curva. Depois de encontrar e aplicar as configurações ideais para sua placa de vídeo, ele também testa e mantém seu ajuste ao longo do tempo, conservando o ajuste estável.

Fique ligado em GeForce.com para obter mais detalhes e ver como esse novo recurso empolgante funciona.

Medindo a Latência do Sistema com NVIDIA Reflex

Um dos principais motivos pelos quais a latência do sistema não foi amplamente comentada até agora é a imensa dificuldade de a medir com precisão. Para medir a latência, seu dispositivo de medição deve ser capaz de saber com precisão as horas de início e de término da medição.

Tradicionalmente, a medição da latência do sistema só era realizada com câmeras de alta velocidade caras e complicadas, equipamento de engenharia e um mouse modificado, além de um LED para acompanhar quando o botão do mouse era pressionado. Com uma câmera de alta velocidade de 1.000 FPS, você pode medir um mínimo de 1 ms de latência. No entanto, uma configuração como essa custa a partir de US$ 7.000 para o equipamento mínimo. Mesmo assim, quando você tem a configuração, levará aproximadamente três minutos para cada medida... o que é ineficiente para 99,9% dos gamers.

NVIDIA Reflex Latency Analyzer

Monitores G-SYNC de 360 Hz compatíveis sendo lançados este ano vêm com um novo recurso: NVIDIA Reflex Latency Analyzer. Essa adição revolucionária permite que os gamers meçam a capacidade de resposta do sistema, possibilitando que compreendam e ajustem totalmente o desempenho do PC antes de iniciar uma partida.

 

Para acessar esse recurso, basta conectar o mouse à porta USB designada do Reflex Latency Analyzer em um monitor G-SYNC de 360 Hz. A porta USB do Reflex do monitor é uma passagem simples para o PC que observa os cliques do mouse sem adicionar latência.

O Reflex Latency Analyzer funciona detectando os cliques no mouse e medindo o tempo necessário para uma alteração de pixel de exibição resultante (ou seja, tiro) acontecer na tela, proporcionando uma medição completa da latência do sistema.

O novo overlay de desempenho do GeForce Experience relata as métricas de latência em tempo real. Para ver as métricas de latência, entre nas opções "Overlay de desempenho" e habilite a configuração "Métricas de latência", quando lançada, em setembro.

O NVIDIA Reflex Latency Analyzer divide a medição da latência do sistema entre latência do mouse, latência do monitor e PC e latência do sistema.

Você pode usar qualquer mouse com o Reflex Latency Analyzer para obter a latência de PC + monitor (com exceção do mouse bluetooth). No entanto, com um mouse compatível da Logitech, Razer ou ASUS, você também poderá medir a latência de periféricos e obter a latência completa do sistema.

Além disso, também lançaremos um banco de dados aberto com latências médias de mouse que podem ser referenciadas se o GeForce Experience reconhecer seu mouse. No futuro, a comunidade poderá adicionar mouses ao banco de dados. Divulgaremos mais informações sobre isso no futuro.

No momento da escrita deste artigo, três parceiros de mouse anunciaram o suporte para o NVIDIA Reflex Latency Analyzer: ASUS, Logitech e Razer. Fique atento aos sites e às páginas de mídias sociais deles para ver anúncios sobre compatibilidade com o NVIDIA Reflex Latency Analyzer. Além disso, ainda este ano, confira os monitores G-SYNC de 360 Hz da ASUS, ACER, Dell e MSI com tecnologia integrada do NVIDIA Reflex Latency Analyzer.

Métricas de Software do NVIDIA Reflex

Se você está ansioso para começar a medir a latência, pode fazer isso antes de ter um novo monitor de 360 Hz. Qualquer game que se integre ao NVIDIA Reflex SDK também tem a capacidade de adicionar as métricas de latências do game e de renderização às estatísticas do game. Essa medida não é a latência total que você sente, mas pode ser uma porta de entrada para a otimização da latência.

Além disso, o GeForce Experience agora conta com um overlay de desempenho que permite monitorar a latência presente de renderização em qualquer game. A latência presente de renderização monitora a chamada presente pela fila de renderização e pela renderização de placa de vídeo. Como é a chamada final de um frame, a magnitude da latência presente de renderização será levemente menor do que a latência de renderização medida com o NVIDIA Reflex SDK, mas ainda assim deve dar a você uma boa ideia de qual é sua latência de renderização. Adicionaremos latência de renderização ao GeForce Experience em uma atualização futura.

Tudo o que você precisa fazer é atualizar para as versões mais recentes do driver GeForce Game Ready e do GeForce Experience este mês, quando o recurso será lançado, selecionar o menu "Desempenho", escolher o conjunto "Métricas de latência" e habilitar o "Overlay de desempenho".

Treinando sua Mira com Latência Mais Baixa

Além das ferramentas de medição de latência, fizemos uma parceria com The Meta, os desenvolvedores de KovaaK 2.0, para apresentar um novo modo NVIDIA Experiments em uma futura atualização de cliente, o que ajudará os gamers a melhorar seu desempenho e aprimorar suas habilidades.

Você pode entrar no modo NVIDIA Experiments na sandbox ou no treinador. Quando você estiver no modo NVIDIA Experiments, escolha uma experiência que o interesse. Além disso, integramos o NVIDIA Reflex SDK a KovaaK 2.0, além de algumas outras tecnologias que podem ajudar os gamers a sentirem a diferença entre a latência alta e baixa do sistema.

Fazer parte dos experimentos não só ajuda a melhorar sua mira, mas também contribui para pesquisas importantes sobre eSports. Nossa parceria com a The Meta em KovaaK 2.0 nos permite testar e desfazer mitos sobre games competitivos. Por exemplo, um de nossos primeiros experimentos busca encontrar a ciência por trás da preferência na escolha de cores de mira com base em debates que gamers competitivos têm sobre as cores de contorno de mira em Valorant.

Outros experimentos testarão coisas como diferentes intervalos de latência e, ao mesmo tempo, sugerirão tarefas desafiadoras para serem concluídas.

Confira KovaaK 2.0, da The Meta, no Steam hoje e fique atento ao lançamento do modo NVIDIA Experiments.

Próximo Nível: Latência do Sistema — Modo Especialista

Muito bem, vamos dar uma olhada em como isso funciona no próximo nível de detalhes. Esta seção abordará como os cliques no mouse se transformam em pixels na tela, o conceito do pipeline de renderização e game, o impacto da ligação com a CPU e a placa de vídeo na latência, sobreposição no pipeline de renderização e, finalmente, algumas ferramentas para ajudar a visualizar o que está acontecendo no seu sistema.

Explicando como suas ações são exibidas no monitor

Então, como seus cliques são realmente exibidos? O gráfico abaixo divide os estágios do pipeline. Embora haja sobreposição entre esses estágios, eles precisam começar e terminar em ordem da esquerda para a direita.

Ok, vamos dividir cada caixa na segunda linha do diagrama acima. Lembre-se de que os tamanhos das caixas não estão em escala. Além disso, vamos nos concentrar no mouse em busca de simplicidade, mas tudo abaixo se aplica a qualquer periférico USB conectado ao PC.

  • Mouse HW - Isso é definido como o primeiro contato elétrico quando o mouse está pronto para enviar o evento pelo fio. No mouse, há algumas rotinas (como ressalto) que adicionam latência ao pressionamento do botão do mouse. As rotinas de ressalto são importantes e impedem que o mouse seja clicado quando você não quer. Esses cliques adicionais geralmente são chamados de cliques duplos, quando dois cliques são enviados, em vez de um, porque a rotina de ressalto era muito agressiva. Portanto, a latência não é o único atributo crítico do desempenho do mouse.
  • Mouse USB HW - Depois que o ressalto é concluído, o mouse terá que aguardar a próxima sondagem para enviar os pacotes pelo fio. Esse tempo é refletido no USB HW.
  • Mouse USB SW - O Mouse USB SW é o tempo que o SO e o driver do mouse levam para lidar com o pacote USB.
  • Amostragem - Os cliques entram no sistema operacional com base na taxa de sondagem do mouse e, nesse ponto, pode ser necessário que esperem a próxima oportunidade para serem amostrados pelo game. Esse tempo de espera é chamado de latência de amostragem. Essa latência pode aumentar ou diminuir com base na taxa de frames da CPU.
  • Simulação - Os games precisam constantemente atualizar o estado do mundo. Essa atualização geralmente é chamada de simulação. A simulação inclui itens como atualização de animações, estado do game e alterações devido a entradas do jogador. A simulação é onde suas entradas de mouse são aplicadas ao estado do game.
  • Envio de renderização - Conforme a simulação descobre onde colocar as coisas no próximo frame, ela começará a enviar o trabalho de renderização ao tempo de execução de API de gráficos. Por sua vez, o tempo de execução desativa os comandos de renderização para o driver de vídeo.
  • Driver de vídeo - O driver de vídeo é responsável pela comunicação com a placa de vídeo e o envio de agrupamentos de comandos. Dependendo da API de vídeo, o driver pode fazer esse agrupamento para o desenvolvedor ou o desenvolvedor pode ser responsável por agrupar o trabalho de renderização.
  • Fila de renderização - Depois que o driver envia o trabalho para a placa de vídeo realizá-lo, ele entrará na fila de renderização. A fila de renderização foi projetada para manter a placa de vídeo constantemente alimentada, sempre com o trabalho armazenado em buffer para a placa de vídeo fazer. Isso ajuda a maximizar o FPS (taxa de transferência), mas pode introduzir latência.
  • Renderização - O tempo necessário para que a placa de vídeo processe todo o trabalho associado a um único frame.
  • Composição - Dependendo do seu modo de exibição (tela cheia, sem borda, em janelas), o Desktop Windows Manager (DWM) no sistema operacional tem que enviar algum trabalho de renderização adicional para compor o restante da área de trabalho para um determinado frame. Isso pode adicionar latência.
  • Scan-out - Após a conclusão da composição, o buffer de frames final estará pronto para ser exibido. A placa de vídeo, então, sinaliza que o buffer de frames está pronto para o monitor e muda o buffer de frames que está sendo lido para o scan-out. Se VSYNC estiver ativado, esta mudança em buffers de frames pode parar por ter que esperar pelo VSYNC do monitor. Depois de pronto, a placa de vídeo alimenta o próximo frame para a tela, linha por linha, com base na taxa de atualização (Hz) do monitor. Devido ao fato de que o recurso de digitalização é uma função da taxa de atualização, incluímos isso em "latência do monitor".
  • Processamento do monitor - Processamento do monitor é o tempo que o monitor leva para processar o frame recebido (verificações de linhas) e iniciar a resposta de pixel.
  • Resposta de pixel - Esse é o tempo que leva para um pixel mudar de uma cor para a próxima. Como os pixels são na verdade cristais líquidos, leva tempo para eles mudarem. Os tempos de resposta dos pixels podem variar com base na intensidade da alteração necessária e também dependerão da tecnologia do painel.

Pipeline de Latência Associada à Placa de Vídeo

Agora que sabemos como um clique chega à tela, vamos nos aprofundar no desempenho. Ao analisarmos games, geralmente tentamos caracterizar o desempenho como vinculado à placa de vídeo ou à CPU. Isso é extremamente útil para entender o desempenho do sistema, mas, no mundo real, os games com frequência alternam entre elas.

Vamos começar com o caso ligado à placa de vídeo com o VSYNC desativado.

Neste exemplo, estamos simplificando o pipeline em cinco estágios principais: periférico, CPU, fila de renderização, placa de vídeo e monitor.

Vamos inspecionar o frame 4 e analisar o que está acontecendo em cada estágio:

  • Periférico - A entrada do mouse ou do teclado pode começar a qualquer momento, o usuário que decide. Neste exemplo, o mouse foi clicado antes que a CPU estivesse pronta para aceitar a entrada, então o evento de entrada acaba aguardando. É como chegar à estação de trem e aguardar o próximo trem.
  • CPU - O início da CPU (simulação) geralmente começa após o término de um bloco presente. No caso ligado à placa de vídeo, a CPU executa seu trabalho mais rápido, o que significa que ela pode ser executada antes da placa de vídeo. No entanto, na maioria das APIs de vídeo (DX11, DX12, Vulkan etc.), o número de frames que o thread de envio de renderização de CPU pode executar antecipadamente é limitado. No caso acima, a CPU tem permissão para executar dois frames à frente. A seção da CPU é concluída quando o driver termina de enviar o trabalho para a placa de vídeo. Na realidade, há sobreposição com a fila de renderização, mas falaremos sobre isso mais tarde.
  • Fila de renderização - Pense nisso como qualquer outra linha ou fila. O primeiro a entrar na fila é o primeiro a sair. Se a placa de vídeo estiver trabalhando no frame anterior quando chegar a hora de a CPU enviar mais trabalho, a CPU coloca o trabalho de renderização na fila de renderização. Essa fila pode ser útil para garantir que a placa de vídeo esteja constantemente alimentada e pode ajudar a suavizar os tempos de frames, mas ela pode adicionar uma quantidade significativa de latência.
  • Placa de vídeo - Essa é a renderização de placa de vídeo real do frame. No caso ligado à placa de vídeo, o trabalho é consecutivo, pois a placa de vídeo é o componente que gera o gargalo.
  • Monitor - Esse é o caso em que o VSYNC está desativado. Quando a placa de vídeo termina a renderização, ela imediatamente examina o novo buffer, independentemente de onde o monitor está no processo de digitalização. Isso cria um rompimento, mas, muitas vezes, os gamers preferem isso, porque oferece a menor latência. Aguarde um artigo sobre VSYNC e G-SYNC no futuro.

Muito bem, agora que entendemos o que está acontecendo aqui, podemos ver que temos um gargalo na placa de vídeo, fazendo com que a fila de renderização cresça e a CPU seja executada antecipadamente. Na imagem acima, podemos ver que o tempo de frames é como medimos o FPS. Uma placa de vídeo mais rápida produziria uma taxa de frames mais alta nesse caso.

Além disso, podemos ver a latência do sistema, começando quando o mouse foi clicado pela primeira vez até o monitor terminar. A latência geralmente é mais alta em casos ligados à placa de vídeo devido à fila de renderização e o game ser executado à frente do bloco presente e gerar novos frames que terão o envio atrasado

Pipeline de Latência do NVIDIA Reflex SDK

Agora, vamos dar uma olhada no que o NVIDIA Reflex SDK faz no pipeline vinculado à placa de vídeo:

Como você pode ver, a fila de renderização praticamente desapareceu. No entanto, o Reflex SDK não a desativa, apenas a esvazia. Mas como isso funciona?

Essencialmente, o game é capaz de melhorar o andamento da CPU para que ela não seja executada antecipadamente. Ele também só pode enviar trabalho para a placa de vídeo no momento em que ela começa a trabalhar sem qualquer lacuna ociosa no pipeline de trabalho da placa de vídeo. Além disso, ao iniciar o trabalho da CPU mais tarde, ele oferece oportunidades para que as informações sejam amostradas no último milissegundo possível, reduzindo ainda mais a latência.

Assim, quando a fila de renderização é reduzida com o método usado pelo SDK, a latência do game também começa a ser reduzida. Essa economia é devido à redução na pressão de retorno que é causada pela fila de renderização em cenários ligados à placa de vídeo.

Para aqueles que já otimizaram a latência antes, é como usar um bom limite de taxa de frames no game para reduzir a latência. Bons limitadores de taxa de frames no game atrasarão o game nos pontos certos, possibilitando menor latência e redução da pressão de retorno na CPU.

No entanto, com o NVIDIA Reflex, em vez de estar bloqueado em uma taxa de frames específica, sua taxa de frames pode ser executada mais rápido do que seu limite, reduzindo ainda mais sua latência Você pode pensar nisso como um limitador de taxa de frames "dinâmico" que mantém o ponto central de latência todo o tempo.

Pipeline de Latência Associada à CPU

Ao usar o Modo Baixa Latência do Reflex em um caso ligado à placa de vídeo, o pipeline se comporta como se estivesse ligado à CPU, mesmo enquanto a placa de vídeo permanece totalmente saturada e utilizada. Vamos dar uma olhada na aparência de um pipeline de ligação de CPU real.

Como você pode ver neste gráfico, a taxa de frames é limitada pela CPU. Como a CPU não pode ser executada à frente da placa de vídeo, não há uma fila de renderização nesse caso. Em geral, estar ligado à CPU é um estado de latência mais baixo do que estar ligado à placa de vídeo.

Nesse caso, uma placa de vídeo mais rápida não produzirá FPS adicional, mas reduzirá sua latência. Quando VSYNC está desativado ou quando G-SYNC está ativado, uma placa de vídeo mais rápida significa que a imagem renderizada pode ser enviada ao monitor com mais rapidez.

Se você já imaginou por que a redução das configurações faz com que o game fique mais responsivo, é por isso. A redução das configurações pode muitas vezes criar um cenário ligado à CPU (eliminando a fila) e, simultaneamente, reduz o tempo de renderização da placa de vídeo, reduzindo ainda mais a latência.

Com o Modo Baixa Latência do Reflex, os gamers não precisam usar as configurações mínimas. Como podemos reduzir efetivamente a fila de renderização, o trabalho de renderização adicional só é adicionado ao tempo de renderização de placa de vídeo.

Além disso, mesmo se você estiver ligado à CPU, o Modo Baixa Latência do Reflex também tem uma configuração de impulso que desativa os recursos de economia energética em favor da latência ligeiramente reduzida. Nos casos ligados à CPU em que o uso da placa de vídeo é baixo, os clocks de placa de vídeo são mantidos altos para acelerar o processamento, de modo que um frame possa ser entregue a ela o mais rápido possível. Geralmente, essa configuração de impulso proporcionará uma vantagem muito modesta, mas pode ajudar a aproveitar cada último milissegundo de latência do pipeline.

Aprofundando-se na Latência e na Sobreposição de PC

Pronto para ir para um nível mais profundo? Vamos dar uma olhada em um único frame, mas desta vez olhando para o pipeline com sobreposição completa.

Como você pode ver, a maior parte da sobreposição acontece no núcleo de latência do PC entre a simulação e a renderização de placa de vídeo sendo concluída. Mas por que isso existe?

Os frames são renderizados em pequenas partes de trabalho chamadas "draw calls". Essas chamadas são eventualmente agrupadas em pacotes de trabalho. Esses pacotes de trabalho são enviados pelo driver de vídeo à placa de vídeo para serem renderizados. Isso permite que cada um dos estágios comece a trabalhar antes que o estágio anterior tenha sido concluído, dividindo o frame em pedaços menores.

Ao fazer seu caminho pelo pipeline, o trabalho é, por fim, gravado no buffer de frames. Isso continua até que o frame seja totalmente renderizado. Depois de concluir a renderização, o buffer de fundo será trocado por outro buffer disponível na cadeia de troca e enviado para scan-out.

Isso é importante de entender ao olhar para a latência de renderização e a latência do game. Geralmente, a latência do game e a latência de renderização se sobrepõem, o que significa que simplesmente juntá-las não produzirá uma soma de latência correta.

Resumindo

A latência do sistema é a medida quantitativa de como você experiencia o game e o fator-chave que afeta a precisão de mira dos jogadores de tiros em primeira pessoa. O NVIDIA Reflex permite que desenvolvedores e jogadores otimizem a latência do sistema e oferece a capacidade de medir facilmente a latência do sistema pela primeira vez.

Para resumir, o NVIDIA Reflex oferece um pacote completo de tecnologia de latência:

  • Tecnologia de Baixa Latência
    • NVIDIA Reflex SDK - SDK do desenvolvedor usado para ativar NVIDIA Reflex Baixa Latência para baixa latência em cenários com uso intensivo de placa de vídeo
    • Configurações do Painel de Controle do Driver Otimizado para Latência - Modo avançado "Preferir Desempenho Máximo" e o modo "Latência Ultrabaixa"
    • Ajuste de Desempenho do GeForce Experience - Sintonizador automático para overclocking de placa de vídeo de um clique
  • Ferramentas de Medição de Latência::
    • Métricas do NVIDIA Reflex SDK - Marcadores de latências dos games e de renderização permitem que os desenvolvedores mostrem as métricas de latência no game
    • NVIDIA Reflex Latency Analyzer - Novo recurso dos monitores G-SYNC de 360 Hz que possibilita a medição da latência do sistema de ponta a ponta pela primeira vez
    • Monitoramento de Desempenho do GeForce Experience - Barra lateral e overlay no game que exibe métricas de desempenho em tempo real, incluindo latência

Estamos animados para trazer o NVIDIA Reflex e ajudar você a obter uma experiência de games mais responsiva. Na NVIDIA, estamos concentrados em reduzir a latência e continuaremos a refinar o NVIDIA Reflex e expandir nosso ecossistema de parceiros.

Adoraríamos saber sua opinião! Acesse o fórum da comunidade Reflex para conversar sobre a latência ou fazer perguntas sobre a plataforma NVIDIA Reflex.

O suporte de driver para o Modo de Baixa Latência do NVIDIA Reflex estará disponível com o driver Game Ready de 17 de setembro, e os parceiros adicionarão o suporte para game em seus títulos ao longo deste ano. Monitores gamer G-SYNC de 360 Hz estarão disponíveis ainda este ano da ACER, ASUS, Dell e MSI.