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

Lucas Peperaio
12/05/2015
Estudos

Olá, seja bem-vindo ao site Peperaio Hardware. Sou o Lucas Peperaio, e 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

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

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

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

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-SyncAMD FreeSync

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

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

5 comentários
  • Rogèrio Silva - 6 de junho de 2015

    Lucas, já vi muitos vídeos seus no youtube, parabens pelo trabalho e por conseguir explicar termos mais técnicos para leigos como eu, estou montando um Pc gamer para jogar em uma Tv 32”, e como de costume das Tvs, ela atualiza no máximo à 60hz, como vou adquirir uma Gtx 970 ou 960, que provavelmente manteriam os games que vou jogar acima dos 60 fps em um monitor gamer, qual seria a melhor solução para mim, deixar o Vsync off ou on? desde já, muito obrigado.

  • Rafael - 17 de maio de 2017

    Olá Lucas, utilizo um monitor da Asus 27 polegadas com G-sync, porém mesmo com o G sync ativado continuo a ter stutter (engasgadas durante jogo). Acontece eventualmente, mas me encomoda muito. Utilizo uma placa mãe Asus maximus ix code, um i7 7700k, uma GTX 1080, tudo alimentado por uma fonte Corsair 850w. Não sei mais o que fazer, se puder me ajudar. Grande abraço e parabéns pelo seu canal no YouTube.

    • Thiago Alan - 5 de outubro de 2017

      Rapaz nem sei de quando é esse tópico, mais acho que tenho uma resposta a ti Rafael.
      Pelo que pesquisei estas novas tecnologias “limitam” a capacidade da placa de video para operar em uma taxa de fps proxima a do monitor.
      Então para vc comprovar, o ideal seria tentar limitar o fps do jogo para algo próximo a taxa de seu monitor por ex: 75 FPS.
      Isso foi o que vi em alguns testes, acho que seria uma boa testar.

    • Luís Henrique - 25 de dezembro de 2017

      Olha, a solução é comprar uma placa de vídeo mais potente, pois pelo q vc falou, mesmo com g-sync tem stuttering, só ocorre se sua placa de vídeo não aguentar, e isso é bem impressionante levando em conta sua GTX 1080, mas infelizmente ela não tá dando conta do recado nesses momentos de stuttering, mesmo o g-sync não faz milagres se sua placa de video tem framerate baixo