Você deve ter notado Triple Buffering em algumas configurações gráficas de jogos. Dependendo dos jogos jogados, a configuração de buffer triplo pode influenciar muito sua experiência de jogo.
Conhecendo o buffer normal do YouTube, muitos não sabem exatamente como o buffer e o buffer triplo funcionam. Isso cria uma perspectiva cética para habilitar ou desabilitar o recurso.
Neste artigo, tentaremos explicar o buffer triplo e abordar a questão de ativá-lo ou desativá-lo.
O que é buffer? Como isso ajuda na exibição de gráficos?
Primeiro de tudo, vamos saber como os gráficos no computador são exibidos. Faremos uma analogia simples de um videogame sendo jogado em um monitor com taxa de atualização de 30Hz. O monitor alterna 30 fotos ou quadros em um segundo para parecer que está em movimento, ou seja, leva 33,33 milissegundos para exibir um único quadro. O tempo diminui gradualmente à medida que passamos para o monitor com uma taxa de atualização mais alta.
Mas essas fotos não são como as fotos tiradas e armazenadas normalmente. As imagens/frames em um videogame são geradas em tempo real pelo processador gráfico.
A GPU possui uma certa velocidade de renderização de quadros. O monitor também tem um valor definido em relação a quantos quadros ele pode mostrar por segundo, ou seja, taxa de atualização. Geralmente, as taxas de atualização dos monitores são menores do que as velocidades de renderização das GPUs para jogos de baixo custo.
Suponha que, para um jogo específico, sua GPU tenha a capacidade de gerar 150 quadros em um segundo. Mas, um monitor com taxa de atualização de 30Hz não pode exibir mais de 30 quadros por segundo. O limite da taxa de atualização de um monitor não permitirá que as GPUs funcionem em sua capacidade ideal e causem screen tearing, saltos de FPS etc.
Os buffers existem para aproveitar as velocidades de renderização potencialmente mais altas das GPUs. Eles se referem aos espaços temporários na memória dinâmica para armazenar dados antes de serem buscados. As GPUs podem armazenar a quantidade excedente de quadros gerados na memória do buffer. Para que os quadros pré-renderizados possam ser exibidos na tela após o término dos quadros atuais.
Isso ajuda a GPU a pré-calcular o enquadrar e focar nos próximos quadros, o que suaviza a experiência em tempo real. Também ajuda a lidar com as flutuações de velocidade de renderização das GPUs.
O que é Multiple Buffer?
Em vez de um único buffer, podemos usar vários buffers para otimizar o processo de renderização. Double e Triple Buffering são os métodos amplamente usados em Multiple Buffering.
Double buffering oferece dois espaços de buffer para a GPU armazenar as imagens renderizadas. Na verdade, um buffer (front buffer) mostra as imagens na tela enquanto a GPU prepara o próximo quadro em outro buffer vazio (back buffer). Depois que o buffer frontal é exibido, ele alterna com o buffer traseiro, que possui um quadro pré-renderizado.
Agora, o buffer frontal anterior que mudou para o back buffer é esvaziado e o próximo quadro é colocado nele. Então, o ciclo de inversão se repete. É mais rápido que o buffer único porque vira o ponteiro de exibição em direção a um buffer pronto para quadros, enquanto permite que a GPU renderize outro quadro no buffer usado recentemente.
O que é buffer triplo?
O buffer triplo estende ainda mais a eficiência do processo de renderização. Ele adiciona outro buffer ao recurso Double Buffering. Digamos que os buffers A, B e C sejam esses três buffers. O ponteiro de exibição é invertido entre os buffers pré-renderizados A, B, e C.
A troca acontece depois que o quadro dentro de Um buffer é exibido. Agora, a tela aponta para o buffer B. Enquanto está piscando o quadro do buffer B , A se move para trás, onde a GPU começa a empilhar um novo quadro nele. À medida que o empilhamento acontece, a tela ainda tem o buffer C pré-renderizado para apontar depois de piscar B. Em seguida, B move-se para trás e C é exibido, mantendo A pronto para o quadro. E o ciclo continua.
Esse ciclo de inversão de página facilita a utilização constante dos recursos da GPU. Caso contrário, as GPUs teriam que esperar até que a tela pare de piscar um quadro.
Desvantagens do buffer triplo
O buffer triplo não é um recurso mágico que melhoraria cada jogabilidade. Ele pode pré-renderizar quadros, mas a diferença entre a taxa de atualização de um monitor e a taxa de geração de FPS pela GPU provavelmente causará vários problemas.
Para exibir um quadro de buffer frontal, um monitor o varre linha por linha e pixel por pixel. Ao mesmo tempo, a GPU pode concluir a renderização no buffer traseiro. Independentemente de o monitor concluir a exibição do quadro frontal ou não, o ponteiro de exibição mudará para o buffer de fundo. Enquanto isso, o monitor começa a digitalizar e exibir a partir da mesma linha e pixel onde o buffer anterior deixou, causando um rasgo na tela.
Screen tearing é um único quadro de exibição, que em si é uma combinação rígida dos quadros anteriores e futuros. Para evitar que isso ocorra na jogabilidade, os gigantes da tecnologia criaram soluções como V-Sync, Enhanced Sync, G-Sync etc.
V-Sync (Vertical Sync) funciona interrompendo a taxa de FPS de GPU para alinhar com a taxa de quadros do Monitor. Ou, se a GPU estiver lenta, pode diminuir a qualidade gráfica para corresponder à taxa de quadros do Monitor. Enquanto o Enhanced Sync da AMD exibe o quadro no monitor, optando por ainda em um quadro sem rasgos da GPU.
No entanto, esse processo de interrupção cria latência de entrada. Ou, em termos simples, um atraso entre a entrada do usuário e a ocorrência de gráficos visuais correspondentes. A sincronização aprimorada causa falhas nos gráficos se a taxa de FPS da sua GPU for baixa.
O Free-Sync é uma espécie de versão atualizada do V-Sync e funciona bem com buffer triplo. E o G-Sync da NVIDIA é um módulo de hardware que ajuda a monitorar para ajustar as taxas de atualização de acordo com o FPS fornecido pela GPU. Essas tecnologias ajudam a diminuir a latência de entrada.
Devo ativar ou não o buffer triplo?
V-Sync, Free-Sync, Enhanced Sync, etc., trabalham para eliminar ou pelo menos reduzir os contras do buffer triplo, mas se você deve abri-lo depende do jogo. Para títulos AAA, você pode ativá-lo. Você também deve usar V-sync ou Free-Sync para melhor desempenho. Mas, considere habilitar o buffer triplo apenas se você tiver uma GPU poderosa, pois ela consome amplamente o poder de computação. A temperatura da GPU aumenta, portanto, um sistema de resfriamento adequado também é obrigatório.
Assim, você pode experimentar o buffer triplo se precisar de gráficos impressionantes e tiver uma configuração de jogos de ponta com uma GPU e um monitor potentes que oferecem uma boa taxa de atualização.
No entanto, para FPS , jogos Battle Royale ou e-sports competitivos, não é uma boa prática ativar o buffer triplo, pois a latência de entrada do usuário pode afetar muito o ambiente competitivo de reflexo rápido.