Estará a Xbox One X a ser promovida à custa de má optimização propositada no PC?

Os utilizadores PC andam-se a queixar dos jogos associados à Microsoft. Má optimização, sub aproveitamento dos recursos disponíveis e falta de implementação de caracteristicas são situações verificadas que tem vindo a levar a acusações de sabotagem nas performances dos PCs para promoção da Xbox One X. Mas haverá razões para se pensar asim?

Rise of the Tomb Raider, Forza 7 e Assassins Creed: Origins. O que tem em comum estes jogos?

Aparentemente… nada! Mas na realidade há dois pontos em comum entre os três. Vamos enumerar:

  • Os três estão sub-aproveitados no PC ou possuem caracteristicas não implementadas nesta máquina face ao visualizado na Xbox One X.
  • Os três são jogos associados à Microsoft, quer sendo franquias da marca, ou jogos associados a contratos de exclusividade e/ou marketing.

Estas duas situações em comum tem vindo a levar alguns utilizadores PC a acusar a Microsoft de estar a fazer isso de forma propositada. O motivo é simples, o passar uma imagem de performances da Xbox One X que não corresponde à verdade com o intuito de promover a consola.

Diz a Microsoft: A Xbox One X consegue correr jogos a 4K  e a 60 fps com um nível de qualidade equivalente ao ultra dos PCs.



E não mente! Apesar de tal não ser uma realidade em todos os jogos, há casos assim, como vemos em Forza 7.

O grande problema é que há sempre duas perspectivas de análise para esta afirmação. A dos possuidores das consolas que ficam todos contentes em ouvir isto, e a perspectiva dos possuidores de PCs que se questionam porque motivo as suas máquinas bem mais potentes não são capazes de fazer bem melhor que a Xbox One X, especialmente porque quando analisada a situação, vemos que nada as impede de fazer igual, ou até melhor.

Historicamente a imagem da Microsoft no mundo do Gaming do PC nunca foi a melhor, ao ponto de até hoje todas as tentativas que a empresa fez de entrar no mesmo acabaram por não ter sucesso.

Mas agora a posição da Microsoft face ao mundo PC parece ter outras condições. Perante a realidade atual de partilha de tecnologia x86, do sistema operativo e API, entre um PC e uma consola as diferenças são apenas a uniformidade do hardware desta última.

Apesar de esta diferença continuar a ser relevante pois um hardware fixo e uma utilização dedicada permite optimizações que não são possíveis ter-se ao mesmo nível em máquinas com grande diversidade de hardware, o panorama atual agora é bem diferente do existente no passado. Como já referido, agora as consolas e PC partilham hardware, sistema operativo e API. Os APIs de baixo nível estão agora disponíveis no PC, e mesmo a dedicação de recursos do sistema aos videojogos é igualmente algo que agora o PC também suporta. Basicamente o PC está agora num patamar que permite optimizações que no passado não eram possíveis, e que permite que a sua força bruta venha mais facilmente ao de cima. Isto claro, se a utilizarem de forma conveniente.

Mas será que utilizam? É isso que vamos ver!



Rise of the Tomb Raider

Este jogo foi lançado para a Xbox One e dois meses depois para o PC. Nessa altura não existia ainda a Xbox One X, motivo pelo qual o PC, face à disparidade de performances, conseguiu sobrepor-se de forma natural à versão Xbox One.

Mas eis que surge a Xbox One X, e Ryse of the Tomb Raider tem tratamento adicional para a Xbox One X. Um tratamento que curiosamente, e apesar de estarmos a falar de um jogo que usa o mesmo sistema operativo na consola e no PC, e o mesmo API gráfico, não foram trazidas para o PC.

Entre as diferenças temos:

  • Implementação de HDR na Xbox One X.
  • Som Dolby Atmos posicional 3D
  • Uso das texturas de alta definição do PC, mas melhor implementadas que no próprio PC.

São pequenas situações… nada de verdadeiramente grave. No entanto são três coisas que poderiam ser facilmente corrigidas e acrescentadas no PC. Mas não o foram, e em comparativos de imagens o HDR e o melhor uso das mesmíssimas texturas dão vantagem visual à Xbox One X.



O que impede isto de ser implementado igualmente no PC? Nada…

Estas situações, apesar de reais, passaram ao lado da comunidade. Sendo este o primeiro caso, e especialmente tendo Tomb Raider para PC sido já lançado à um ano, a situação passou ao lado de todos que a viram sem grandes intenções.

Mas o sucedido foi agora despertado devido ao que se está a passar com os restantes jogos. Vamos Ver:

Forza 7

Como sabemos actualmente o jogo está disponível apenas em versão demonstração para o PC e para a Xbox One, mas os utilizadores PC estão revoltados e a cair em cima da Turn 10 pelo que está a suceder nas suas máquinas. Ao ponto de o termo sabotagem estar a ser usado, e as acusações de que a Microsoft está a propositadamente prejudicar a versão PC para promover a sua consola serem usadas pelos possuidores PC sem qualquer receio.



No nosso teste que fizemos aqui, correndo o jogo num i7 4470k e uma RX 480 não termos tido qualquer problema em atingir os 4K 60 fps com o detalhe no máximo, a realidade é que este é um sistema com características de topo. Não é actualmente o melhor dos melhores, mas está muito bem situado a nível de performances, especialmente no que toca ao CPU.

Simplesmente a questão não é a nossa experiência, mas a experiência global dos utilizadores PC!

Aquilo que vemos são queixas de muitos utilizadores de que nesta fase o jogo apresenta crashes múltiplos, total falta de optimização, falta de suporte para determinado hardware e muitas outras situações tem levado vários utilizadores a avaliar o jogo com a nota mínima.

Perante um jogo tão optimizado para a Xbox One e tão pessimamente optimizado para o PC, havendo tantas semelhanças no API e no OS, as queixas parecem realmente coerentes. E daí que as acusações que a Microsoft tenta promover a imagem da sua consola à custa de má programação no PC aparecem. A versão PC… funciona e até funciona muito bem em sistemas de topo! Mas não está verdadeiramente optimizada.



Vejam o vídeo que se segue:

O sistema em causa é até superior ao nosso, daí que ele serve bem para mostrar a realidade da programação deste jogo. Trata-se de um i7 4790K com uma Geforce GTX 1080 Ti.

E apesar de as performances deste sistema não estarem em causa, o que vemos?

No ecrã temos informação diversa. Temperatura do GPU, utilização do GPU, utilização da memória Video, utilização da velocidade da ventoinha, FPS, utilização de cada um dos núcleos do CPU e utilização média do CPU.



O importante aqui é o CPU, que é onde a situação se revela chocante. Apesar que com boa programação e distribuição manual, um jogo DX 11 pode obter melhores performances que um DX 12,  o conceito de criação do DirectX 12 foi exactamente uma automatização e consequente melhoria na distribuição das tarefas pelos diferentes núcleos, evitando estas situações que causam limites à performance geral do sistema, incluindo a gráfica.

Mas aqui nem parece estarmos numa era de multi-threading: Uma análise ao video permite ver que a ocupação média do CPU (no seu global) raramente passa os 40%. Mas no entanto, apesar de ele estar longe de poder debitar o seu máximo, o CPU está a ser um gargalo quer no processamento genérico, quer no gráfico, pois a distribuição de trabalhos pelos núcleos está terrivelmente mal feita, e é comum vermos o primeiro núcleo a ser o mais solicitado e a atingir o seu limite (100%), consequentemente, limitando todas as performances do sistema.

Se este CPU está a limitar o jogo, isso quer dizer que um CPU mais baixo limita mais depressa e ainda mais, mesmo que que a sua ocupação geral continue extremamente reduzida! Ou seja, haverá um caso caricato onde hardware perfeitamente capaz que pode não conseguir correr o jogo pois a sua performance global toma um valor secundário face à performance por núcleo, que não se revela suficiente. Isto apesar de a utilização global do CPU poder nem atingir os 100% e até estar longe disso.

Mas qual é a explicação oficial da Turn 10? Sinceramente, do mais ridículo que já li!

Apesar de um esclarecimento mais recente que explica que o jogo utiliza os núcleos todos, a Turn 10 não deixa de referir que o uso a 100% do primeiro núcleo é propositada. E a explicação é a seguinte:



Hello everyone,

Some users may notice that the game utilizes nearly 100% of one of their processor cores. This is expected behavior; we intentionally run in this manner so we can react as fast as possible in order to minimize input latency. Users on power-constrained devices, such as laptops and tablets, might want to use a Performance Target of “30 FPS (V-SYNC),” which will reduce processor usage and minimize power consumption.

Tradução: Alguns utilizadores podem notar que o jogo utiliza quase 100% do primeiro dos seus núcleos do processador. Isto é algo esperado; de forma intencional corremos o jogo desta forma para podermos reagir o mais rápido possível de forma a reduzir a latência de input. Utilizadores em aparelhos mais limitados tais como portateis e tablets, devem querer usar um alvo de performance de 30 FPS (V-Sync), que reduzirá a utilização do processador e minimizará o uso de energia.

E esta situação que a Turn 10 reconhece ter sido propositada, poderia ser efectivamente util não fosse o facto de a argumentação ser completamente ridícula!

Para começar esta situação não está a restringir apenas utilizadores de portáteis e tablets como a Turn 10 tenta dar a ideia, mas tambem utilizadores de computadores de mesa com processadores i5 com muito mais capacidade do que todo o CPU da Xbox One X. Aliás mesmo nestes PCs de topo, não estivessem os FPS limitados a 60 veríamos que eles estão também limitados superiormente pelo facto de termos núcleos do CPU a atingir os 100%.

Quando a Microsoft cria um API como o DirectX 12 destinado a impedir que este tipo de situações, deveras limitador, aconteça, ver um jogo da própria Microsoft a fazer a apologia do uso a 100% do núcleo torna-se mais do que ridículo. Torna-se uma autêntica palhaçada!



O sistema de baixo com uma Geforce 980 Ti e um i7 4930K overclocked a 4,88 Ghz, mostra bem como este está limitado. O CPU tem dois núcleos saturados e a limitar as performances, mas os restantes quatro estão com baixa ocupação. Isto não tem lógica nenhuma. O GPU, como se pode ver, está com uma média de utilização de 48%, mas pode acontecer até nem conseguir dar mais pelo CPU estar limitado e com problemas em sincronizar os fotogramas com o GPU!

Mas será que estamos a ser mauzinhos? Será que efectivamente isto era preciso? Será que há razões nos argumentos da Turn 10?

A resposta dá-se de seguida:

Vamos pegar no sistema de cima, com o i7 4790K equipado de uma Geforce GTX 1080 Ti e comparar isto com a Xbox One X.



CPU

Jaguar Xbox One X

Velocidade de relógio: 2,3 Ghz

Núcleos: 8

Informação técnica da AMD sobre o jaguar



AMD Jaguar:

  • 3 DP FLOPs/cycle: 4-wide AVX addition every other cycle + 4-wide AVX multiplication in four cycles
  • 8 SP FLOPs/cycle: 8-wide AVX addition every other cycle + 8-wide AVX multiplication every other cycle

Cálculo de performance:

2300 Mhz * 8 * 8 =  147 200 flops  ou 147,2 Gflops.

Vamos, apenas por uma questão de descargo de consciência, considerar um ganho adicional de 30% para prever eventuais melhorias na Xbox One X. Isso daria 191,36 Gflops!

Intel Haswell:



Velocidade de relógio: 4 Ghz

Núcleos: 4

Informação técnica da Intel sobre os Haswell:

Intel Haswell/Broadwell/Skylake:

  • 16 DP FLOPs/cycle: two 4-wide FMA (fused multiply-add) instructions
  • 32 SP FLOPs/cycle: two 8-wide FMA (fused multiply-add) instructions

Cálculo de performance:

4000 Mhz*32*4= 512 000 flops ou 512 Gflops.

Basicamente, o que temos aqui é que um CPU i7 4790 possui mais do dobro da capacidade de cálculo do Jaguar da Xbox One X. Aliás, mais de 2,5 vezes!

Pegando nestes valores vamos ver o que temos a nível de performance por cada núcleo de CPU:

Jaguar: 191,36/8 = 23,96 Gflops por núcleo

l7 Haswell: 512/4 = 128 Gflops por núcleo

O que vemos aqui, é que mesmo usando 4 núcleos não conseguimos a mesma performance com o Jaguar da Xbox One X que conseguimos com um único núcleo deste i7. E se a Xbox One X não depende de um único núcleo não havendo queixas de latência, porque motivo isso acontece no PC que se vê forçado neste i7 a ver o seu primeiro núcleo usado a 100%? Para resultados idênticos à Xbox One X o primeiro núcleo no PC só precisava de ser solicitado a 20%.

Sinceramente, salvo melhores explicações da Turn 10, não encontramos qualquer coerência no que foi dito.!

Aliás, a piorar a explicação da Turn 10 temos Forza Horizon 3, que fez já o mesmo quando foi lançado, como pode ser visto pela imagem que se segue:

A questão é que este jogo, após uma série de patches resolveu o problema. Criaram-se mais tarefas simultâneas e deu-se melhor suporte ao DirectX 12, ao ponto de até processadores i3, antes não suportados, passarem a ser suportados oficialmente. Mas tal só aconteceu bastante tempo depois!

Mas se é assim, se o problema e as queixas já não são novas, e se esta solução já existia, porque não foi aplicada em Forza 7?

A consequência mais directa desta situação é que muitos PCs meio de gama e colocados na transição para os topo de gama, dotados CPUs de elevada performance equipados de placas gráficas perfeitamente capazes, e capazes de bater a Xbox One X, não consigam atingir os 4K a 60 fps, passando assim a imagem de que a consola é mais poderosa que os mesmos.

Perante tudo isto torna-se muito difícil argumentar contra a ideia que a Microsoft tem interesses nisto pois a situação ajuda e muito a passar uma imagem de potencia da Xbox One X superior à real. E apesar de poder até haver justificações adicionais que sejam plausíveis (algo que esta certamente não é), e até nem haver qualquer intenção nesse sentido, que perante a realidade do sucedido tal está a acontecer efectivamente, isso não pode ser negado. E que isto pode ajudar a vender consolas… pode certamente!

Assassins Creed: Origins

Aqui estamos perante um jogo que ainda não saiu, mas cujas notícias sobre o mesmo não tem ajudado nada a limpar esta imagem da Microsoft. É que as notícias que tem vindo a público e que partem de quem teve já contacto com o jogo e pode comparar a versão Xbox com a do PC revelam que a versão Xbox One X está a correr muito melhor que a versão PC.

Mais uma vez surge a questão do porquê quando sabemos que um PC Gamer possui pelo menos 2x a performance da Xbox One X?

Forza 7 é a prova disso. Apesar das queixas e das limitações dos núcleos, um PC topo de gama consegue correr o jogo a 8k 60 fps. E isto mostra que não há qualquer motivo para que um PC mais próximo do meio de gama, mas mesmo assim com especificações superiores às da consola corra os jogos pior que a Xbox One X.

O certo é que razões para que se pense que há aqui uma tentativa de se promover performances da Xbox One X de forma artificial, existem! E torna-se difícil argumentar contra perante as realidades constatadas.



error: Conteúdo protegido