Xbox One perdendo para o Playstation 4 nos jogos Multiplataforma? Descubra quem é o vilão

Depois dos primeiros jogos lançados para ambos os consoles, temos percebido que o Xbox One fez um bom dever de casa com os gráficos dos seus primeiros jogos exclusivos, contudo têm sofrido problemas nos jogos multiplataforma, ou seja, resoluções e framerate geralmente inferiores às versões lançadas no Playstation 4. Mas se ambos os consoles possuem 8GB de RAM e processadores praticamente equivalentes, onde está o vilão? Nos parágrafos abaixo serão explicados os motivos.

O Hardware do Xbox one hoje tem duas grandes desvantagens em relação ao hardware do Playstation 4. A primeira é que embora ambos os consoles possuem 8GB de RAM, existe uma grande diferença de velocidade para a APU (CPU + GPU) buscar/gravar dados na RAM.

A velocidade em ambos os consoles é uma conta simples:

No PS4 é: barramento de 256 bits a 5500mhz (DDR5), logo 5500 X 256 = 1.408.000 gigabits por segundo. Dividindo por 8 (1 byte = 8 bits), temos 176 gigabytes por segundo.

No Xone é: barramento de 256 bits a 2133(DDR3), logo 2133 X 256 = 546.048 gigabits por segundo. Dividindo por 8 (1 byte = 8 bits), temos 68,25 gigabytes por segundo.

Se essa fosse a “conta final”, a Microsoft estaria em seríssimos apuros, pois na prática nunca iria conseguir renderizar todo esse “mundo” de 8GB (caso o jogo realmente tenha picos de 8GB) em uma taxa de quadros aceitável. Por isso, utiliza um chip gráfico chamado de ESRAM para tentar equilibrar o tempo de acesso com o Playstation 4.

A ESRAM é uma memória de 32MB que é utilizada para “cache” dos 8GB, ou seja, ela armazena as informações mais demandadas pela APU (CPU + GPU) no momento, para evitar que a APU seja obrigada a buscar as informações diretamente na RAM a sofríveis 68,25 gb/s. Caso a informação não esteja nos 32MB da ESRAM, um processo em segundo plano é iniciado para atualizar a ESRAM, a fim de minimizar ao máximo as buscas da APU diretamente na RAM.

Na prática, a ESRAM possui velocidade de 102GB/S para cada sentido, isto é, 102GB/S para ler a “demanda” da APU somados com 102GB/S para devolver algum dado solicitado anteriormente pela APU, ou seja, a ESRAM consegue ler e devolver ao mesmo tempo, totalizando 204GB/S. Lembrando que, como os 32MB são usados como cache, constantemente está sendo atualizado com as informações mais acessadas pela APU, gerando uma considerável melhoria de performance.

Contudo, embora a ESRAM melhore a situação do Xbox One, não se equipara com o tempo de acesso no PS4, pelos motivos abaixo:

1) A velocidade da ESRAM supera a GDDR5, mas a diferença é pequena para reverter a situação. Enquanto que a APU do Playstation 4 acessa todos os 8GB de RAM a 176GB/s, a APU do Xbox One acessa 32MB dos 8GB, ou seja, apenas 0.4% de toda a sua memória a 204GB/S, e 99,6% de sua memória a 68,25GB/S. Se para os jogos atuais que possuem picos de 2GB ou 3GB, já estamos vendo diferenças nas resoluções e framerate, imagina quando ambos os consoles utilizarem todos os 8GB de RAM. A diferença de performance pode refletir em sérios problemas ao Xbox One.

Colocando essa conta na prática, temos a situação abaixo:

Suponhamos que, a cada 10 informações demandadas pela APU do Xbox One, 5 estejam no cache, logo tem-se a média abaixo:

Média Xbox One = (204GB/S * 5) + (68,25 * 5) / 10 = 136,12GB/s que será o tempo médio de acesso

No Playstation 4, a conta é super simples, já que a cada 10 informações, todas terão tempo de acesso a 176GB/s.

Para o Xbox One “igualar” a média do Playstation 4, 8 a cada 10 informações buscadas pela APU vão precisar estar na ESRAM (32MB), o que na prática é muito difícil de se conseguir, levando-se em consideração que jogos atuais consomem entre 2 e 3 GB da RAM. Quando os jogos consumirem todos os 8GB, daí o Xbox One terá um problema mais sério, porque ao invés de 5 a cada 10 acertos, podemos ter por exemplo 3 a cada 10, diminuindo a média consideravelmente;

2) Por mais bem programado que seja, o cache sempre terá seus problemas. E se em determinado momento do jogo, as informações que a APU precisa são tão aleatórias que demandam constantes atualizações da RAM na ESRAM? Você nunca se questionou porque de vez em quando a execução de um jogo apresenta instabilidade na taxa de quadros?

3) É inevitável que a estrutura do PS4 simplificou ainda mais a programação, pois não se tem mais preocupação com bons algoritmos para cache e os testes de performance ficam um pouco mais simplificados.

A segunda grande desvantagem do Xbox One em relação ao Playstation 4 diz respeito à GPU. A GPU do Xbox One possui 768 processadores shader, enquanto que a GPU do PS4 possui 1152 processadores shader, ou seja, 50% a mais. Na prática, o PS4 possui muito mais poder para adicionar efeitos e maiores detalhes nos objetos.

Concluindo, óbvio que o Software que gerencia estes consoles serão otimizados, o firmware será otimizado, o Mantle está ganhando espaço, os processamentos dedicados ao Kinect serão opcionais para os desenvolvedores, consequentemente melhorando a performance. Mas pelo menos no que diz respeito ao Hardware, o Xbox One tem problemas se comparado ao seu concorrente, e não há o que fazer neste aspecto. Resta otimizar ao máximo o que pode ser otimizado.

Para maiores informações, segue abaixo um bom link:

http://www.extremetech.com/gaming/156273-xbox-720-vs-ps4-vs-pc-how-the-hardware-specs-compare

About CarlosEduardoXP

Especialista em desenvolvimento de Sistemas Distribuídos, sempre aplicando boas práticas e padrões difundidos na comunidade. Auto didata, fanático por refatoração e performance, sempre buscando reutilização e testes automatizados cada vez mais eficazes.
This entry was posted in Software Development. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s