A análise crua do hardware revela 50% de vantagem para a PS4. Os programadores revelam a mesma coisa. Mas será que vamos mesmo ter 50%?
Analisar as especificações das novas consolas revela um hardware na PS4 que, sem contarmos com optimizações específicas, e comparando com o hardware equivalente PC, conferem à PS4 face à Xbox One uma vantagem teórica a nível gráfico entre os 40 e os 50%.
Esta vantagem parece confirmada por diversos programadores que em declarações a diversos órgãos de comunicação referiram idêntico valor para essa diferença de performances.
A questão é que uma leitura mais pausada e ponderada do artigo da EDGE levam a pensar se tal será efectivamente assim.
Na realidade, quer-me parecer que os comentários efectuados dizem respeito à situação real das consolas… NA DATA ACTUAL E SEM OPTIMIZAÇÕES DEDICADAS.
Quer isto dizer que a ideia que parece ser transmitida de uma forma geral, mas que pode não ser claramente visível, é que essa diferença é válida apenas para código gráfico não optimizado. E com esse código gráfico genérico nas duas consolas, a PS4 seria então 50% mais rápida do que a Xbox One sendo que, a titulo de exemplo, num caso onde a consola da Sony pudesse atingir os 1920*1080 a 30 fps, a da Microsoft teria que se ficar por uns fps perto dos 20 com uma resolução a 1600*900.
Mas o problema é que isto pode ser uma realidade com muitos dos jogos actuais que estão a ser convertidos para a consola, e mesmo alguns exclusivos programados de forma mais genérica, podendo porém não ser esta a realidade com que nos depararemos daqui a uns meses. E isto porque o artigo é claro ao dar a entender que tanto uma consola como outra estão longe de possuir SDKs finais a utilizar o hardware na sua totalidade (entenda-se optimizações).
Ou seja, estes 50% referidos são apenas os lógicos. Se há mais Compute units, Asynchronous Compute Engines, Raster Operators, Raster Back Ends, e largura de banda, há claramente vantagem a nível de potência no hardware para a PS4.
Mas as optimizações criadas em ambos os sistemas estão lá para optimizar ainda mais essa performance, e em ambas as consolas há optimizações no processador gráfico que não deverão ainda estar em uso. Falta agora saber quais os ganhos de performance que essas optimizações, quando usadas, irão trazer, e quais se revelarão mais vantajosas face às alterações efectuadas à arquitectura base x86 por cada um dos fabricantes.
No entanto, a ideia que dá é que a Xbox será quem tem mais a ganhar com essas optimizações. E por vários motivos.
1º Porque como é deixado claro, as drivers da Microsoft estão bastante atrás das da Sony.
2º Porque a vantagem da simplicidade de uso da Sony obtém-se directamente sem optimização. Já o uso da ESRAM requer optimizações, e quando as mesmas existirem grande parte do ganho de 50% da GDDR5 que é referido no artigo da EDGE, deve desaparecer.
3º Porque por norma, nos títulos multi-plataforma, é mais comum os programadores optimizarem o sistema mais fraco para se aproximar do mais rápido, do que optimizar o mais rápido.
Vamos elaborar mais um pouco sobre estes três pontos
As drivers Microsoft estão mais atrasadas que as da PS4
Sem contabilizarmos qualquer tipo de optimização específica que ainda possa ser feita para a consola A ou B e que poderá ser determinante em manter, diminuir ou até aumentar a diferença actualmente existente, o certo é que o mais lógico e coerente é aceitar que no final do percurso ambas as empresas possuam drivers igualmente optimizadas para as suas consolas.
Assim é igualmente lógico crer que se actualmente as drivers Microsoft são as mais atrasadas, então serão aquelas que mais ganhos poderão ainda trazer. E nesse sentido, mais uma vez ignorando as optimizações específicas cujo ganho de performances não podemos contabilizar, será de acreditar que neste campo, após a total optimização, a Microsoft consiga diminuir a diferença.
Optimizações lógicas
A optimização mais lógica e que existirá forçosamente é a relacionada com a memória da Xbox One. As diferenças de performance do sistema para a GDDR5 são enormes, e a ESRAM é de uso obrigatório para suprimir parte da diferença. Quer isto dizer que a vantagem da PS4 neste campo é notória mal o código é introduzido, mas já a da Xbox One só se perceberá após a optimização para o uso da ESRAM.
Se efectivamente entendermos o artigo da EDGE como referência a código não optimizado, a diferença no que toca ao uso da memória será bastante diminuída, e a diferença de performances oferecida por este componente também diminuirá.
Optimizações ao mais fraco
Quer se queira, quer não queira, os programadores possuem sérios problemas em apresentar jogos com diferenças radicais entre as versões XBox e Playstation. Assim, o jogo é concebido no seu conceito geral e depois passado às consolas. Se uma delas conseguir criar o jogo tal como foi concebido e a outra não, os esforços serão concentrados na consola problemática para se optimizar a mesma e aproximar os resultados finais. Isto acontece actualmente com a PS3 e a Xbox 360 onde os jogos são concebidos com a PS3, a consola mais problemática, como a que merece mais atenção. E o motivo prende-se com o facto de a Xbox 360 conseguir mais facilmente apresentar os mesmos resultados, ou até melhores. Ou seja, mais do que se optimizar a versão Xbox 360, actualmente optimiza-se a versão PS3 por ser a mais fraca. E tal pode continuar a acontecer no futuro mas com os lugares invertidos.
—
Mas tendo em conta estas três optimizações que poderão suprimir a diferença entre as consolas há outros pontos que necessitam de ser tomados em conta. E estes em vez de diminuir a diferença até a podem aumentar.
Por exemplo, a PS4 sempre foi pensada para um acesso de baixo nível ao seu hardware (acesso directo), e como tal este foi concebido de forma a fornecer aos programadores total liberdade e facilidade de uso.
Já a Microsoft não o fez e, como é hábito, acreditava ter no seu API DirectX a 8ª maravilha do mundo. Infelizmente, quando soube dos acessos de baixo nível da Sony foi obrigada a apresentar novas drivers com iguais características. E esse é um dos motivos pelos quais a Microsoft possui as drivers mais atrasadas.
A questão é que o DirectX nunca foi uma referência e a própria AMD referiu que o mesmo estava a prender as performances das placas. O chamado “Overhead”, ou potência desperdiçada do DirectX nos PC’s é enorme, e este tipo de acesso de baixo nível (directo ao hardware) é algo que a Microsoft nunca fez. Ou seja, os seus “génios”, como foram chamados por “Major Nelson”, estão aqui a entrar em território completamente novo e no qual, já agora, se espera que aprendam e aproveitem algo para ser usado nos PCs. Diga-se que mesmo na Xbox 360, apesar da existência de um DirectX optimizado, o mesmo está longe de ser de baixo nível.
A PS3 já possuía acesso de baixo nível ao hardware, mas infelizmente o seu processador CELL é demasiadamente complexo e nunca foi dominado completamente. Para além do mais o grande problema dos acessos baixos nível é que, apesar de permitirem ganhos de performance, normalmente requerem mais memória vídeo, e a PS3 nesse campo estava mais limitada do que a Xbox One que possuía uma memória unificada de 512 MB ao passo que a PS3 possuia 256+256 MB. Independentemente de tal, é essa experiência que vem desde à 6 anos na PS3 que a Sony oferece desde já na PS4.
Para quem não percebeu e pensa que a PS4 não suporta DirectX, fique a saber que o DirectX é uma norma que inclui especificações hardware e um API software para lhes aceder. Assim uma placa que suporte a norma DirectX terá de possuir uma série de características hardware que o software explorará. A Microsoft é detentora do API DirectX para Windows, ou seja o software que permite ao Windows aceder e usar as características suportadas pelas placas, mas não possui direitos sobre o uso das características das placas em si. Quer isso dizer que qualquer um pode fazer o seu próprio “DirectX” e usar essas características, e foi isso que a Sony fez com o seu API que suporta todo o hardware até à norma DX 11.2, e vai mesmo mais além. E curiosamente o seu API, apesar de muito mais avançado, usou como inspiração o HLSL, a base da componente Direct3D do DirectX da Microsoft, sendo mesmo compatível com ele. Ou seja, a Sony tem “DirectX” sem o ter uma vez que usa o seu próprio API compatível e o melhorou em tudo que eram limitações das quais os criadores de software se queixavam.
A qualidade deste API face ao da Microsoft será fundamental nas performances finais podendo alterar a diferença para o lado da Sony ou da Microsoft, sendo que o acesso baixo nível é fundamental neste aspecto.
Mas depois, se há optimizações lógicas como a memória da Xbox One, há outras optimizações a considerar. A Placa gráfica da Xbox deverá ter optimizações diversas que vão além das características do DirectX 11, e a da PS4 também. Sabe-se aliás que ambas as placas possuem especificações acima das referidas na norma Dx 11.2 e como tal essas optimizações podem desde já começar a ser usadas. Mas no entanto o GPU da PS4 foi pensado de raiz para ser um importante auxiliar no processamento genérico, nomeadamente na física de sistemas, algo que não aconteceu na Xbox One.
Existem 4 CU da placa gráfica que, apesar de poderem ser utilizadas para gráficos, foram optimizadas para processamento genérico, possuindo não uma, mas duas ALU (Unidade lógica aritmética) de forma a melhorar as suas performances para este tipo de cálculo.
Dado que cada uma destas unidades CU é capaz de processar duas instruções por ciclo de relógio, e cada uma destas Compute Units possui 64 unidades de processamento de shaders, teremos que cada CU é capaz de 64*800 mhz*2 comandos = 102,4 Gflops. E efectivamente, para as 18 CU teremos 1843,2 Gflops ou 1,843 Tflops, a capacidade de processamento gráfico da PS4.
O interesse em falar disto prende-se com o facto de a Xbox One possuir optimizações que podem libertar o seu CPU, como é o caso do Shape, o processador sonoro que se sabe pode processar até 15 Gflops.
E assim, o que temos? Se calcularmos a potência em Gflops do processador da Xbox One e da PS4 vemos o seguinte (de notar que o Jaguar aceita quatro comando por ciclo de relógio, mas como os 8 núcleos são na realidade 2 processadores de 4 núcleos, então teremos 4*2=8 comandos trabalhados em simultâneo):
PS4 = 1600 Mhz*8 núcleos*8 comandos por ciclo=102.4 Glops
Xbox One = 1750*8*8=112 Gflops
Depois se a Xbox possui o processador audio Shape que pode libertar o CPU do processamento audio, a PS4 possui os CU optimizados que o podem libertar da física.
Ora aqui está uma optimização óbvia da PS4, onde abdicando apenas de 1 único CU pode fornecer 102,4 Gflop adicionais ao CPU. Estamos a falar de uma capacidade de calculo idêntica a toda a capacidade do Jaguar, ou 204,8 Gflops se somarmos os dois.
No entanto há que ressalvar que não se está a referir que a PS4 pode fazer o mesmo que o Shape. Ele é um processador dedicado a audio e como tal, apesar da sua potência de 15 Gflops parecer pequena face aos 102,4 Gflops referidos, provavelmente até é impossível de ser emulado com o CPU ou 1 CU da PS4. Mas não é a capacidade de emulação do Shape que está aqui em causa mas sim a capacidade de o CPU da PS4 poder ser auxiliado em cálculos complexos de física, partículas, animação de tecidos e fluidos, etc. (Como já expliquei os Flops são excelentes para medir performances em arquitecturas iguais, mas podem ser muito enganadores em arquitecturas diferentes, como é o caso). Ou seja, se a Xbox One pode ser auxiliada no audio, estes CU dedicados podem ajudar na física criando resultados visuais mais complexos. E crê-se que para 99% dos jogadores os gráficos são mais importantes do que o som que normalmente até é obtido de colunas stereo de televisores.
Naturalmente a Xbox One pode fazer igualmente cálculos pelos seus CU, mas não só a consola não possui CUs que tenham sofrido optimizações para processamento genérico como o número de CU disponíveis é de apenas 12 (18 na PS4 incluindo os 4 optimizados).
Escusado será dizer que ceder este processamento ao CPU não implica perder na componente gráfica. Afinal um mundo onde as bandeiras se agitam ao vento, a água se agita com as perturbações, as folhas voam livremente, etc, acaba por ser graficamente mais complexo do que outro onde isso não acontece.
De qualquer maneira para estes jogos de lançamento será muito mais fácil usar o poder adicional do CPU da Xbox One do que alterar toda a programação para que este passe a calcular certas partes da física pelo GPU, pelo que nesta situação os ganhos só deverão acontecer em software devidamente optimizado para a PS4, assim como o SHAPE só deverá ser usado devidamente em jogos devidamente optimizados par a Xbox One. E isso nesta fase não se crê que exista.
Seja como for, haverão certamente outras situações relacionadas com optimizações que ainda não foram anunciadas na Xbox One e na PS4, pelo que se torna difícil de prever para que valor, depois de tudo contabilizado, tombará a diferença final.
No entanto, as optimizações apenas ao mais fraco são um ponto a ter em conta. A tendência de nivelar por baixo existe, e o sistema mais prejudicado com isso tem sido o PC. No entanto, e apesar das fracas vendas, não tem deixado de ver jogos com qualidade superior à das consolas, motivo pelo qual a PS4 também deverá sempre mostrar as suas vantagens.
Conclusão
A realidade é que com tudo isto ponderado é minha opinião que nos jogos multi-plataforma, e com as optimizações mais óbvias efectuadas, as vantagens para o lado da PS4 não deverão ser assim tão grandes como os 50% anunciados, podendo mesmo ser pouco notórias. Eventualmente no futuro, com o conhecimento da máquina e o uso das suas optimizações, a situação pode e deve melhorar.
Mas isto, claro, sempre dependente da qualidade e ganhos das optimizações que nesta fase, ao serem desconhecidas, até podem ser tremendamente vantajosas para a Xbox One. Mas face ao conhecido o previsível é que a diferença se mantenha, ou até alargue, sendo que nesta fase inicial se prevê uma aproximação devido à necessidade urgente das optimizações para a ESRAM, mas no futuro com o uso do processamento paralelo da PS4 a lacuna deverá voltar alargar.
Esta é apenas uma previsão, sem verdadeiramente muitos dados em que me apoiar, mas baseado naquilo que foi dito nas entrevistas, e no que é actualmente conhecido, sendo que apenas com o uso intensivo do GPGPU da PS4 no processamento genérico para física, partículas, sistemas e colisões é que deveremos começar a ver a verdadeira diferença entre as consolas. Mas isso só acontecerá dentro de um ano ou dois.