30 Ago 2018
Artigos

O que é o vertical sync?

Um dos termos mais conhecidos dos videojogos é o V-Sync, mas quantos saberão o que isto faz?

Quando um GPU cria uma imagem e a prepara para a enviar para o monitor, este usa um buffer, um local de armazenamento onde guarda a imagem completa. Antigamente, apenas era utilizado um buffer, mas isto tinha várias desvantagens, apresentando vários erros gráficos. Para evitar isto, é usado um sistema com 2 buffers, com o nome óbvio de double buffering. Neste sistema temos um front buffer  e um back buffer, onde são armazenadas duas imagens, mantidas em coesão visual e enviadas em sequência para o monitor. Por isso, o front buffer estão sempre a trocar de posição, pois enquanto um está a receber uma imagem do GPU, o outro está a enviar a sua imagem para o monitor, depois trocam e repetem a acção continuamente. O problema é que esta mudança de posição pode ocorrer a qualquer altura e o resultado é que a certa altura o monitor vai estar a receber uma imagem para apresentar, quando de repente recebe uma mais actual e assim, apresenta parte do ecrã com uma imagem antiga e outra parte com uma imagem mais recente. A este erro gráfico chamamos screen tearing.

[singlepic id=5010 w=610 h=398 float=center]

Para evitar que isto aconteça, a solução mais usada é o recurso ao Vertical Sync, o qual força a sincronização dos buffers do GPU com a actualização vertical do monitor. Isto significa que o GPU irá esperar sempre antes de enviar cada imagem nova, evitando o screen tearing.

Apesar de o V-Sync melhorar o aspecto geral dos jogos, tem alguns problemas graves, que faz com que muitos jogadores prefiram jogar com ele desligado.

O primeiro problema tem haver com a própria sincronização com o monitor, pois esta precisa de um conjunto de imagens por segundo igual ou divisível pela taxa de actualização do monitor. Ou seja, como a maioria dos monitores funcionam a 60Hz, precisam de 60 imagens por segundo para manter uma sequência coesa. Se o GPU estiver a debitar mais do que 60 imagens por segundo, não temos um problema, pois este terá de esperar pela ordem do monitor. Mas se estiver a debitar menos de 30 imagens por segundo, a única opção é mostrar cada imagem no monitor 2 vezes, ou seja o GPU passa a ser forçado a apresentar 30 imagens por segundo. Isto significa que com o V-Sync ligado, se tivermos um local num jogo que puxe um pouco mais e o GPU não tenha capacidade de debitar as 60 imagens por segundo, nem que seja para 59, ocorre logo uma descida para as 30 imagens. Isto implica um impacto brutal na suavidade do jogo e quem estiver a jogar vai notar logo uma diferença tão grande.

O segundo problema é que este sistema obriga o GPU a esperar pelo monitor e isso significa que será criada uma latência no tempo em que o GPU prepara e envia a imagem para o monitor. O resultado é o input lag, significando que qualquer movimento que o jogador queira fazer no jogo terá um atraso quando for apresentado no monitor. Em jogos mais lentos, isto não será problemático, mas em jogos que requerem reflexos rápidos, como nos first person shooters competitivos, será um problema grave que irá custar muitas frags ao jogador.

Soluções como o triple-buffering ou o adaptavive v-sync da nVidia tentam minimizar o impacto do input lag, mas mesmo assim, não é o suficiente para a maioria dos casos. Por isso é que a apresentação do G-Sync tem o potencial de revolucionar a forma como vemos os jogos nos nossos monitores e TVs. Ao tornar o monitor o escravo do GPU, significa que este vai ter sempre uma taxa de actualização igual à quantidade de imagens que o GPU consegue produzir. Ao inverter a relação que temos no V-sync, o resultado é a apresentação de uma imagem coesa, sem screen tearing, sem input lag e sem quebras consideráveis na apresentação de imagens no monitor.

A questão que se coloca é sobre se devemos desligar ou ligar o V-Sync? A resposta é complicada e irá depender em muito da preferência do jogador, mas também do jogo. Num jogo rápido, será sempre preferível evitar qualquer input lag ou quebras abruptas de desempenho, mas num jogo mais lento, isto não fará diferença e será preferível ter uma imagem mais coesa e limpa.

Existe mais uma vantagem do V-Sync, que vem da sua capacidade de limitar a quantidade de imagens por segundo que o GPU pode enviar por segundo. Ao criar esta limitação, vamos forçar o GPU a descansar um pouco, pois já terminou a imagem que precisa de enviar para os buffers e isto significa que o GPU irá aquecer menos e gastar menos energia.
Mas claro, que existe sempre a opção de limitar a quantidade de imagens por segundo que o GPU pode apresentar, sem o recurso ao V-Sync. Como não serve de nada mandar para o monitor mais imagens do que as que ele consegue mostrar por segundo, isto acaba por ser uma boa opção.

Outra coisa a considerar é que quanto maior dor a frequência de actualização de um monitor, menos tempo estará cada imagem a ser apresentada, bem como os seus erros gráficos, incluindo o screen tearing. Isto significa que um monitor de 120Hz, com um jogo a correr a 120 imagens por segundo, será menos susceptível de mostrar erros de screen tearing, do que um monitor de 60Hz.

Como é óbvio, isto não é um problema único do PC, mas que está presente em todas as consolas de jogos. No entanto, o caso do PC existe a escolha do jogador para usar o sistema que mais lhe convém.

Também te pode interessar