Que performance para a nova geração? Serão os 4K nativos alcançáveis com essa qualidade? – Parte II

Esta segunda parte do artigo anterior irá permitir-nos calcular de forma muito mais científica e complexa, qual a potência que deveria ter uma consola para nos garantir uma nova geração. Acima de tudo estas contas aqui realizadas irão comprovar muitas coisas que vemos e referimos no dia a dia, de forma matemática.

Avisamos desde já que, apesar de não ser um artigo complexo, o mesmo é bastante mais intendo em cálculos que o anterior. Tentem acompanhar o raciocínio pois vão ver aqui comprovado matematicamente muitas das coisas que sempre dissemos ao longo dos anos.

Em que se baseia o artigo? No cálculo dedicado a cada pixel em cada geração de consolas. E na aplicação de igual melhoria para o futuro!

Vamos começar, revelando-se necessário começar pela geração passada:

Xbox 360



Esta era uma consola com 0.24 Tflops, que alcançava uma resolução de 720p

Ora 720p é uma resolução com 1280 pixels na horizontal e 768 pixels na vertical.

E isto quer dizer que o racio de flops por pixels a 30 fotogramas é:

240 000 000 Kflops /1280/768/30 = 8,13 Kflops por pixel.

Este valor na altura revelava-se no limite para a qualidade que os programadores queriam alcançar na Xbox, motivo porque muitos jogos optavam por cortar na resolução. Mas neste momento essa situação é irrelevante. Fiquemos-nos apenas com o dado que para apresentar uma qualidade semelhante à da Xbox 360, teremos de dedicar 8.13 Kflops a cada um dos pixels que temos no ecrã.

Xbox One



Ora a Xbox One tem uma performance de 1.34 Tflops, tendo como alvo os 1920 pixels horizontais por 1080 pixels verticais.

O racio de flops por pixel que esta consola pode apresentar a 30 fotogramas é:

1 340 000 000/1920/1080/30 = 21,5 Kflops por pixel.

PS4

Vamos tomar a PS4 como o padrão desta geração, ou seja a consola que define o padrão de qualidade.



Esta consola possui 1.84 Tflops, tendo como alvo os 1920 pixels horizontais por 1080 pixels verticais.

Desta forma,

O racio de flops por pixel que esta consola pode apresentar a 30 fotogramas é:

1 840 000 000/1920/1080/30 = 29,57 Kflops por pixel.

Por aqui se percebe claramente o motivo porque a Xbox One tem de reduzir resoluções para acompanhar a PS4. Há aqui 8 Kflops por pixel a mais na PS4, basicamente tanto quando a Xbox 360 tinha de capacidade para dedicar a cada pixel.



Por esse motivo, definindo o padrão de qualidade a ser atingido na PS4, a Xbox One pura e simplesmente não consegue acompanhar ao não conseguir dedicar o mesmo tipo de processamento a cada pixel. No fundo nada mais do que uma diferente tradução das diferenças de performance entre as consolas.

Xbox One X

Analisemos agora a Xbox One X com os seus 6 Tflops, que tem como alvo os 3840 pixels horizontais por 2160 pixels verticais.

O racio de flops por pixel que esta consola pode apresentar a 30 fotogramas é:

6 000 000 000/3840/2160/30 = 24,11 Kflops por pixel.



A conclusão que se tira daqui é aquela que já sabiamos. A Xbox One X consegue levar a 4K os jogos com a qualidade máxima Xbox One a 1080p, ficando até ligeiramente acima dessa capacidade o que lhe permite melhorias extras, mas não consegue levar para 4K jogos com a qualidade máxima que pode ser apresentada pela PS4 a 1080p. O processamento que pode dedicar a cada pixel na resolução 4K é inferior ao que a PS4 pode dedicar a cada pixel na resolução 1080p.

Tal como Mark Cerny tinha referido, para tal, necessitaríamos de perto de 8 Tflops. Podemos desde já fazer as contas para o valor exacto:

29.5Kflops/pixel*3840*2160*30= 7 340 544 000 ou aproximadamente 7,34 Tflops.

Esta é o real motivo pelo qual a Xbox One X também não alcança os 4K em todos os jogos. Quando o jogo explora a PS4 base ao máximo e a X melhora sobre a PS4, ela não possui a performance para chegar lá!

PS4 Pro



A PS4  Pro foi guardada para o fim, por ser um caso particular.

Vamos começar por ver o que ela conseguiria alcançar a nível de 4K nativos.

Tendo a consola 4.12 Tflops, para alcançar os 3840 pixels horizontais por 2160 pixels verticais a 30 fotogramas ele teria:

4 120 000 000/3840/2160/30 = 16,55 Kflops por pixel

Este é um valor ridiculamente pequeno e bastante inferior ao da Xbox One.



Resumidamente, salvo truques com a mudança de processamento em 32 bits para processamento a 16 bits que permite aumentar a capacidade de cálculo da consola a nível de Tflops, a PS4 Pro nunca conseguirá alcançar os 4K nativos sequer com a qualidade Xbox One.

Felizmente para ela o suporte 2xFP16 permite-lhe aumentar a capacidade teórica de cálculo para o dobro (8.24 Tflops), sendo no entanto que este é um valor muito teórico pois os jogos atuais processam a 32 bits, e como tal apenas podem existir ganhos pontuais aqui e ali, que se traduzem em ganhos máximos, e nem sempre alcançáveis, de 30%. Alguns jogos conseguiram já 4K nativos na PS4 Pro, mas são jogos com complexidade gráfica reduzida face ao melhor que vemos nesta geração.

No entanto o 2XFP16, apenas suportado por esta consola, não está lá para aumentar as performances em resolução nativa, mas foi colocado para um motivo específico, o cálculo de re-escalamento por checkerboard rendering para 4K sem impacto nas performances.

Ora quando usa esta metodologia a PS4 Pro deixa de tentar alcançar as 3840 linhas por 2160 colunas para alcançar apenas 1920 linhas por 2160 colunas.

E isto tem implicações nos resultados:



4 120 000 000/1920/2160/30 = 33 Kflops / pixel

Resumidamente, apesar de parte deste cálculo ser usado no re-escalamento, graças ao 2xFP16 os 29.5 Kflops/pixel são conseguidos e os 4.12 Tflops da PS4 Pro revelam-se mais capazes de levar aos 4K Checkerboard jogos que exploram ao máximo a PS4, do que a Xbox One X é capaz usando o seu cálculo nativo.

Isto comprova algo que ficou dito na parte I do artigo. Quando a PS4 atinge os 1080p mas a PS4 Pro não atinge os 4K por checkerboard não é exactamente por incapacidade do GPU, mas sim eventualmente porque outros elementos ficam a fazer bottleneck às performances finais ou, de forma mais comum, porque o suporte 2xFP16 não existe no motor gráfico usado e como tal o re-escalamento é feito a 32 bits, penalizando as performances. Alternativamente a implementação do checkerboard pode também ser deficiente uma vez que fica ao cargo de cada um a sua implementação. Note-se ainda que ao contrário da X que se limita a aumentar a resolução, esta metodologia requer trabalho adicional, o que leva a que muitas vezes se opte por resoluções nativas na Pro, deixando-a assim longe dos 4K.

É esta situação que é relevante aqui, uma vez que o objectivo do artigo, na sequência da ideia que já foi transmitida na primeira parte do artigo, é perceber como na próxima geração teremos de colocar de lado a ideia de 4K nativos.

Agora que temos estes dados, vamos então ver o que necessitamos para uma nova geração, que calcule nativamente, e que calcule por checkerboard rendering.



Jogos Xbox 360 a 1080p

Vamos falar da Xbox 360 apenas como exemplo.

Como vimos esta consola trabalhava a 1280*768. Para irmos para 1920*1080 teriamos de aumentar a resolução 2,1 vezes.

1920*1080/1280/768=2.1

Isto quer dizer que se para 720p 30 fps usavamos 0,24 Tflops, para 1080p usaremos 2.1 vezes mais, ou seja, 0,5 Tflops.



Perceberam esta lógica?

Vamos então aplicar isto à PS4.

Para levarmos os jogos PS4 para 4K teriamos de aumentar a resolução 4 vezes.

3840*2160/1920/1080=4

Ora se para 1080p 30 fps usamos 1,84 Tflops, para 4K teríamos de ter pelo menos 7.34 Tflops (este valor já foi calculado de outra forma anteriormente).



Mas e para uma nova geração a 4K nativos?

Para uma nova geração vamos calcular o salto que tivemos da 360 para a PS4, e aplicar um salto igual.

A melhoria no processamento do pixel passou de 8,13 Kflops por pixel na Xbox 360 para 29.57 Kflops por pixel na PS4.

29,5/8,13=3.63

A nova geração terá então de aplicar uma melhoria de pixels que nunca seria inferior a 29.5*3.6, ou seja 107 kflops por pixel.

Fazendo agora as contas em sentido contrário para uma resolução 4K, vamos calcular os Tflops necessários:

107*3840*2160*30=26,63 Tflops!

Se se recordam, e caso não tenham presente, podem faze-lo aqui, pelo cálculo mais simplista da primeira parte do artigo tínhamos dito que para 4 K nativos e uma nova geração precisaríamos de algo entre os 22 e os 32 Tflops, sendo que 22 seria o mínimo dos mínimos para um resultado já aceitável como de nova geração.

Por estas contas vemos que 22 Tflops poderia ser já um salto para nova geração, mas algo inferior ao que vimos na passagem da Xbox 360 para a PS4. Para algo igual, usando resoluções nativas, precisamos de 26,63 Tflops. Esse seria o valor exacto que a metodologia anterior não nos pode fornecer!

Mas e com checkerboard rendering?

Fácil… é uma questão de o voltarmos a fazer a mesma conta, mas reduzindo o buffer a metade, o que implica a troca do 3840 por 1920, para um buffer de 1920×2160.

Temos então:

107*1920*2160*30= 13,3 Tflops

Mais uma vez, se se recordam pelo método mais expedito e simples da parte 1 tinhamos chegado a 12,36 Tflops. Aqui chegamos a um valor mais exacto de 13,3 Tflops! Que pode no entanto ser reduzido com uma melhor eficiência na arquitectura da futura PS5. Basta que a nova arquitectura da Sony implemente o Checkerboard por hardware de modo a que às performances divulgadas  do GPU não tenhamos de descontar nada para esse cálculo.

Ora relembra-se então mais uma vez que os rumores para uma PS5 apontam para algo entre 12 a 15 Tflops. O que nos parece garantir que a ideia é efectivamente ter-se uma próxima geração de consolas não só trabalhará a 4K, como terá um salto em tudo semelhante ao que verificamos na passagem entre as duas anteriores gerações.

Mas lembrem-se que aqui não é nosso interesse discutir qual o salto que todos desejaríamos, e sim apenas demonstrar qual a potência que é necessária para garantir um salto operacional.

Como vimos, resoluções nativas com qualidade de nova geração com salto equivalente à anterior, é algo que parece fora de hipótese pois exigiria 26.63 Tflops. Mas com checkerboard… algo entre os 12 e 15, os rumores apontados para a PS5, efectivamente seria perfeito.

 



error: Conteúdo protegido