Ir para conteúdo

Estudo: VSync, G-Sync e FreeSync – Tearing ou Stuttering?


No artigo com vídeo de hoje vamos fazer um estudo sobre o VSync, G-Sync e FreeSync, passando pelos vários aspectos técnicos que envolvem estas três tecnologias.

Assista primeiramente ao vídeo completo no youtube:

Agora vamos ao artigo escrito:

 

Introdução
Os monitores e televisores que usamos em nossas casas e trabalhos possuem um ritmo de atualização fixo, tipicamente 60 Hz, ou em outras palavras, são atualizados 60 vezes por segundo. Temos também monitores 120 Hz, 144 Hz entre outros. Para ter a fluidez nos jogos, o ideal seria que a placa de vídeo processasse o mesmo número de quadros por segundo que o monitor consegue exibir em tempo hábil, ou seja, 60 quadros para um monitor 60 Hz, 120 quadros para um monitor 120 Hz e assim por diante. Desta forma, teríamos a sincronização perfeita.

monitor.jpg

Porém, isso não acontece, e o motivo é simples: A placa de vídeo processa os quadros em seu próprio ritmo, variável, para não dizer aleatório. Ou seja, em um momento do jogo ela pode processar 80 quadros por segundo; ocorrem explosões, cai para 55; olha para o céu, sobe para 150 e assim por diante. E é justamente por isso que ocorrem problemas visuais como Screen Tearing, que será explicado mais adiante.

 

VSync
Para resolver esse “problema” da placa de vídeo processar quadros num ritmo diferente da atualização do monitor, o usuário pode ativar o VSync (Vertical Synchronization = Sincronização vertical), que limita a placa de vídeo, de forma com que ela possa processar os quadros no mesmo ritmo de atualização do monitor, ou seja, 60 FPS para um monitor 60 Hz por exemplo. Desta forma, teoricamente o usuário teria o jogo rodando com fluidez, afinal, o monitor em tese exibiria corretamente os quadros, sem tearing. Em outras palavras, o Vsync mostra apenas quadros inteiros, se um certo quadro atrasou, é mostrado na tela o mesmo quadro novamente, até que chegue a próxima atualização do monitor, e então o novo quadro (agora completo) possa ser exibido.

VSync-beneficios.jpg

Além da eliminação do tearing, o Vsync ativado faz com que a placa trabalhe mais fria, pois conforme foi mencionado, ela é limitada para processar um número fixo de quadros por segundo. Com isso também temos economia de energia, e a vida útil da placa é preservada. O Vsync é ideal quando a placa de vídeo consegue processar com muita folga os 60 quadros por segundo, pois se em algum momento ela não for capaz de processar 60 quadros, começam os problemas do Vsync, como o Stuttering.

 

Stuttering
Imagine o seguinte exemplo, o Vsync está ativo, e a placa de vídeo consegue processar praticamente o tempo todo os 60 quadros por segundo. Porém em um certo momento, ela conseguiu processar apenas 55. O Vsync então poderá fixar os FPS em 30, com o objetivo de continuar mantendo a sincronização correta. Com isso, nota-se uma “engasgada” no jogo, também conhecido como stuttering. E pode ser pior, se a placa processar menos de 30 quadros, o Vsync continua reduzindo para tentar manter a sincronização (20, 15 FPS). Neste ponto, a jogabilidade fica muito prejudicada.

VSync-Stuttering.gif

Um segundo exemplo com o Vsync ativado: Cada frame é processado em 16,66 ms (1 segundo = 1000 ms, logo 1000 ms / 60 quadros = 16,66666…) em um monitor de 60 Hz. Em um certo período, um frame demorou 20 ms para ser processado. Como o monitor é atualizado 60 vezes por segundo, logo, a cada 16,6 ms, este frame não pôde ser exibido em tempo hábil. Então, o monitor exibe novamente o mesmo frame que já tinha sido exibido anteriormente, e o novo frame que atrasou precisa aguardar a próxima atualização para ser exibido. Novamente, temos um problema aqui, pois se vários frames atrasarem, estaríamos vendo frames antigos, e depois de um tempo os frames novos. Isso quebra a sensação de fluidez do jogo.

E um terceiro problema relacionado ao Vsync é o input lag. Se o usuário entra com um comando, e houver um atraso nos frames, ele irá ver o resultado da sua ação em quadros seguintes.

Diante disso, para evitar estes travamentos, o usuário pode usar soluções como o Adptive Vsync da Nvidia, que desliga o Vsync se em algum momento a placa não conseguir processar os 60 quadros. Ou o usuário simplesmente desativa o Vsync e seus derivados, desta forma, os FPS sobem livremente e ele se livra dos problemas do VSync. Mas isso gera outro problema, o Screen Tearing.

 

Screen Tearing
Conforme foi mencionado anteriormente, o monitor e a placa de vídeo não trabalham no mesmo ritmo. Imaginem o seguinte exemplo: A placa de vídeo processou 80 quadros em um certo momento. O nosso monitor de 60 Hz estará sendo atualizado, enquanto a placa já iria estar processando e enviando ao framebuffer os novos quadros. Então, o monitor mostra duas, três ou mais partes da imagem na tela, pois elas acabam se sobrepondo; o que dá a impressão da imagem estar rasgada, dai vem o nome Tearing.

Screen-Tearing.jpg

Observem que na imagem acima, temos uma imagem mesclada, com um quadro novo e um antigo. Isso acontece pela falta de sincronização, problema que é resolvido com o VSync.

É importante destacar que o tearing também acontece quando a GPU processa menos quadros que a taxa de atualização do monitor. Imagine o seguinte exemplo, com o Vsync off, a GPU processou em um certo momento 40 quadros (ou 40 FPS). Se o seu monitor é de 60 Hz, você estará vendo 2/3 de um quadro e 1/3 de outro quadro. Usuários com monitores 120 / 144 Hz podem notar nenhum ou quase nenhum tearing quando estão executando um jogo com Vsync off e menos FPS que a frequência do monitor, mas é importante destacar que o tearing ainda existe e está lá, mas como o monitor atualiza muito mais rápido que um 60 Hz (a cada 6,94 ms), não é tão perceptível.

Então o usuário precisa escolher entre os dois problemas, ativa o Vsync e eventualmente terá stutterings e atrasos nos comandos, ou desativa o Vsync e verá tearing na imagem, pois a placa na maioria dos casos processará mais quadros do que o monitor consegue exibir corretamente em seu ritmo de atualização. A solução final para os dois problemas é o G-Sync da Nvidia ou o FreeSync da AMD.

 

G-Sync e FreeSync, as soluções para Tearing, Stuttering e Input Lag
Com o G-Sync e o FreeSync, a placa de vídeo não precisa mais se adaptar ao monitor, e sim, o monitor passa a se adaptar ao ritmo da placa. Isso acontece pois os monitores compatíveis com GSync ou FreeSync não são atualizados mais de forma fixa, sempre nos 60 ou 120 Hz, mas de forma variável, conforme a quantidade de quadros que a placa processar. Então eliminamos de vez o tearing e o stuttering, já que o monitor irá esperar o quadro ser processado (draw) para exibí-lo corretamente (scan), mesmo em frequências menores, como 30 Hz no G-Sync, e até 9 Hz no FreeSync; embora isso dependa também da disponibilidade do monitor.

G-Sync.png

AMD-Catalyst-Omega-Driver-14.50_AMD-Free

Ambas as tecnologias são recentes e exigem hardwares compatíveis. O G-Sync funciona desde a 650ti Boost ou mais recente, e o FreeSync exige pelo menos a R7 260 ou mais recente, exceto as placas R9 270/270x; além das APUs das linhas Kabini, Temash, Beema e Mullins.

A principal diferença entre as duas tecnologias é que o G-Sync exige que o monitor possua um módulo adicional, chamado de módulo G-Sync, que é o responsável pelo controle do painel. Já o FreeSync, como o próprio nome diz (Free), não exige um módulo adicional (o que teoricamente reduz o custo de um monitor compatível), bastando apenas uma conexão display port 1.2a. Além disso, o FreeSync facilita a aplicação da tecnologia para os fabricantes de monitores, pois não exige um custo de licenciamento; e possui um ecossistema de compatibilidade maior.

AMD-FreeSync-vs-Nvidia-G-Sync.jpg

Ambas as tecnologias já estão presentes no mercado brasileiro, com seus respectivos monitores compatíveis.

  • Curtir (+1) 3



×
×
  • Criar Novo...

Informação Importante

Termos de Uso Política de Privacidade Regras