A escalada sinuosa/A evolução da Xbox One

Já todos sabemos que a Xbox One é menos potente que a PS4. Mas se as diferenças iniciais eram abismais e mais do que aquilo que o hardware indicava, actualmente a Microsoft, mostrou trabalhar afincadamente e conseguiu repor a diferença de performances naquilo que o hardware indica… ou menos.

Nota inicial

xboxone-kinecticNeste artigo vamos ignorar as questões relativas às alterações de DRM e diversas políticas da Microsoft que prejudicaram a sua consola na fase inicial. Vamos apenas centramos-nos naquilo que historicamente foram alterações fulcrais nas questões relacionadas com performance, de forma a que a Xbox One fosse mais apta a concorrer com a PS4.

Introdução.

Estávamos em 2013! Microsoft e Sony anunciavam as suas novas consolas, e entre elas algo saltava à vista, uma grande semelhança entre o hardware usado (mesmo CPU e placa gráfica da mesma família), mas simultaneamente uma grande diferença entre os valores de performances anunciados.

Nessa altura, e ainda antes de se saber grandes dados sobre a realidade das consolas, e perante os números e realidades do hardware era claro que com duas consolas tão semelhantes a nível de hardware e onde a menos potente era mais cara a decisão da geração estava claramente inclinada para um lado.

Tornava-se por isso imperativo que a Microsoft se mexesse no sentido de optimizar, a um ritmo elevado, a sua consola.

O pré lançamento

Lançamento

Antes das consolas serem efetivamente lançadas, as potências anunciadas para ambas eram as presentes no gráfico de cima. 1,23 Tflops de potência de cálculo na placa gráfica para a Xbox One, e 1,84 Tflops para a Playstation 4. Uma diferença de 50% de performance!

Nesta altura o grande público desconhecia ainda que a Xbox One possuía uma reserva de 10% para o Kinect que lhe colocava a potência efetiva em apenas 1,107 Tflops, mas no entanto essa era a realidade que as equipas que trabalharam nos jogos de lançamento encontraram. Associando essa realidade aos problemas igualmente desconhecidos na altura e relativos à pequena dimensão da eSRAM, e a ausência de qualquer tipo de acessos de baixo nível (na altura reservados apenas às equipas First Party, sendo que os Third Party trabalhavam nesta altura com um DirectX 11 puro) vimos a Xbox One, nas primeiras remessas de jogos, a apresentar jogos a 720p quando a consola da Sony apresentava 1080p (apesar de tal é extremamente duvidoso que a primeira remessa de jogos utilizasse igualmente qualquer característica adicional do API da PS4). Uma diferença de performances de 125%, e bem superior aos expectáveis 50% que o hardware dado a conhecer ao público indicava!

O lançamento

PS4_XboxOneNaturalmente que perante esta realidade a Microsoft tratou de se mexer. Se queria vender a sua consola havia de tentar cobrir a diferença prevista de performances entre as consolas, pelo que, sendo já tarde para alterar o hardware, levou a que se recorresse a uma solução de recurso para diminuir um pouco o fosso, o Overclock (Oficialmente esta acção nunca foi reconhecida nesse sentido, mas mesmo que indirectamente a redução do fosso foi uma consequência real e certamente desejável). E apesar de um aumento de velocidades de relógio poder ser uma solução, a fase avançada de desenvolvimento e produção em que a consola já se encontrava (estávamos a cerca de 3 meses do lançamento) impedia grandes alterações à mesma. Havia que se encontrar um valor de overclock que fosse compatível com o sistema de dissipação existente e que não colocasse em causa o bom arrefecimento da consola!

Nesse sentido a Microsoft, ainda antes do lançamento, alterou os valores de origem do seu CPU e GPU, inicialmente idênticos aos da consola da Sony e a 1600 Mhz e 800 Mhz, respectivamente, para os 1750 Mhz e 853 Mhz.

Os valores podem parecer pequenos face ao que teoricamente um overclock poderia permitir, mas como referido dada a proximidade do lançamento, o facto de as consolas estarem já preparadas para produção nas linhas de montagem, e sabendo-se que o Overclock era uma jogada arriscada pois era um alterar consciente dos parâmetros recomendados pelo fabricante, a Microsoft optou por estes valores para evitar que se pudessem repetir situações de maus valores de fiabilidade que tanto assombraram a Xbox 360 na altura do seu lançamento.

Tal medida permitiu à Xbox One ganhar 9% de vantagem a nível de performance bruta do CPU face à Playstation 4, bem como passar a performance da placa gráfica para os 1.31 Tflops.

Assim, a Xbox One é lançada com a seguinte capacidade de performance:

 Lançamento_final

Apesar de nesta altura se desconhecer ainda que 10% da performance era reservada ao Kinect, o que mantinha a performance efectiva pouco acima do que tínhamos inicialmente, conheceu-se a fundo a questão da memória eSRAM e sua pequena dimensão. Esta revelava-se essencial para que as performances da consola fossem possíveis, mas face às metodologias tradicionais revelava-se problemática a nível de dimensão para conter um framebuffer a 1080p. Aliás usando metodologias como o Deferred Rendering o frame buffer máximo era mesmo 792p. Era claramente necessário o uso de novas técnicas e optimização do uso da memória!

A consola é igualmente lançada sem acessos de baixo nível, o que se sentiu até meados de 2014 onde tal continuava a criar maior disparidade entre as duas consolas do que os agora existentes 41% de diferença de cálculo teórico, e indicado pelos números do gráfico de cima.

Meados de 2014

Em meados de 2014 a situação quase que se regulariza! Como era previsível a Microsoft necessitava de se mexer rapidamente, e de trazer as optimizações da sua consola para o nível da consola da Sony. Nesta altura é lançada para as empresas Third Party aquilo que ficou conhecido como a Mono Driver. Tratava-se de uma driver que continha aquilo que a Microsoft reconheceu estar na base do DirectX 12, as optimizações ao DirectX 11 estudadas e realizadas na concepção da Xbox One para melhor suporte do seu hardware. Uma driver com acessos de baixo nível e com capacidades de computação assincrona, algo que o DirectX 11 não suportava convenientemente e que aparecerá agora nos PCs com o DX 12. Esta driver tinha até esta fase estado reservada às equipas first party que as tinha usado para a criação de alguns dos jogos de lançamento mais impressionantes existentes na altura para a consola, como foi o caso de Forza 5.


Era o início da recuperação das drivers da consola da Microsoft face às da PS4 que na altura estavam claramente mais avançadas!

Em meados de 2014 dá-se ainda outra mudança relevante. A Consola liberta-se finalmente do Kinect e da reserva de 10% de potência que lhe estava atribuída. Agora a Xbox One contava com 1.31 Tflops efectivos face à PS4. Tinha claramente existido uma recuperação de performances!

inícios de 2015


A constante optimização das drivers e ferramentas da Xbox One que a Microsoft foi mantendo atualizadas ao longo dos tempos acabou por repor a diferença das consolas naquilo que é a diferença do hardware.

Se nos jogos de lançamento, criados para um hardware com 50% de diferenças de performance vimos jogos com 125% de diferenças no cálculo e respectivo débito de pixels, em inícios de 2015, salvo em jogos que não exploravam a performance total das consolas e obtinham paridade, começávamos a ver constantes diferenças de apenas 44% (900p na One e 1080p na PS4), um valor bem mais próximo dos 41% indicados pela diferença de cálculo do hardware.

Mas em 2015 começamos igualmente a ver casos onde a diferença acabou por ser mesmo idêntica aos 41% do hardware. Jogos em que a Xbox One atingiu a resolução de 1360*1080, face aos 1920*1080 da PS4. Exatamente 41% numa resolução que apesar de ser pouco superior aos 1600×900, ao ter mais linhas e menos colunas acaba por ser visualmente mais difícil de ser discernível uma vez que os nossos olhos são mais sensíveis à falta de linhas na resolução.

Podemos por isso dizer que a Microsoft apanhou as optimizações das drivers da Sony e optimizou a sua consola de forma a que a diferença entre as mesmas fosse aquilo que os valores ditados pela potência do hardware indicam.

Meados de 2015

Mas a Microsoft não se ficou por aqui. E a necessidade ditou que fosse mais longe do que a Sony antecipando certas optimizações que se esperavam apenas mais tarde no ciclo de vida da consola!

Apesar de ser totalmente previsível que as consolas vão libertando capacidade de processamento ao longo dos tempos, abdicando de intergração com serviços do OS, a Microsoft avançou, de forma inesperada, mas compreensível, face à idade da consola (menos de 2 anos), com a libertação de parte de um 7º núcleo do CPU (de 50 a 80%), anteriormente reservado ao sistema (anteriormente dos 8 núcleos, apenas 6 eram dedicados a jogos, sendo 2 reservados ao sistema). A Sony que reserva igualmente 2 dos seus 8 núcleos de CPU para o sistema, não respondeu e não há sequer indicação que pretenda responder.

Ora o que vemos é que com 80% de um 7º núcleo (o valor máximo), a Xbox One ganha 10% mais de performance de CPU. Basicamente, mais ponto, menos ponto, e somando isto à diferença de 9% anteriormente existente face ao overclock, a Xbox One passa a revelar ter um CPU 19% a 20% mais potente que o da PS4!

E este CPU extra tem-se revelado fundamental. Dado que num jogo temos pontos onde por vezes o gargalo está no GPU (normalmente o limite máximo) e por vezes no CPU (normalmente o limite mínimo), o que passamos a ver são jogos onde as quebras de performance são inferiores na consola da Microsoft. Exemplos são jogos onde os programadores, optaram pela paridade entre as consolas, tais como Assassins Creed Unity (totalmente limitado pelo CPU) e Mad Max, e que apresentam valores para os fps mínimos mais elevados (tal não acontecerá certamente com os máximos, mas o limite superior de fps impede a visualização dessa realidade) !

Outro exemplo é The Witcher 3. No entanto este jogo corre a 900p na Xbox One e a 1080p na PS4, mas sempre que o ganho fornecido aos fps mínimos  pelo CPU adicional permite, o jogo na Xbox One sobe igualmente para 1080p, permitindo à consola uma resolução dinâmica e um atingir dos 1080p que de outra forma seria impossível.

Mas apesar de ser claro e notório que o trabalho da Microsoft com as optimizações da consola está a dar frutos, há ainda muitos problemas com o uso da eSRAM, e a sua optimização. E como uma solução para resolver essa situação, a Microsoft aplica já uma solução que só se esperava que se tornasse comum e usada em ambas as consolas, após a saida e vulgarização do DirectX 12 e que permite conseguir eliminar todos os limites da eSRAM. Usada em jogos como Forza Horizon 2 e Forza 6 esta é uma nova metodologia de rendering denominada de Forward+ criada já pela AMD à uns anos, mas que nunca foi usada pois o DirectX 11 não suporta convenientemente a computação assincrona (sigam o link para perceberem como ela funciona e como usa a computação assincrona no GPGPU).

Esta metodologia criada pela AMD, possui várias vantagens face ao forward rendering tradicional que tantos problemas criou com a dimensão da eSRAM. Não só requer menor largura de banda como possui melhores performances, o que se torna ideal para o uso misto da eSRAM de alta velocidade com trocas de dados com a DDR3 de muito menor velocidade, mas requer igualmente menos memória, o que permite um melhor uso da eSRAM.

A técnica pode ser usada igualmente na PS4 mas, que se saiba a Sony não a implementou ainda em nenhum jogo!

A actualidade e o futuro

A realidade é que com estas optimizações a Xbox One, tal como previsto, aproximou-se da PS4. Onde há diferenças elas são normalmente na resolução e em um ou outro efeito melhorado, sendo que cada vez mais jogos e mais jogos atingem os 1080p na consola da Microsoft. E tal leva a que muitas pessoas afirmem, que os 41% de diferença afinal não são assim tão notórios e que não fazem a diferença.

Se isto é uma boa notícia para a Xbox One, a vida das consolas não acabou aqui! Há uma nova componente do processamento prestes a entrar em força, a computação assincrona que deverá forçar a Microsoft a não descansar e a continuar a mexer-se.

É que se no uso do pipeline tradicional os ganhos da PS4 se esbatem no aumento da resolução, a maior parte das utilidades da computação assincrona são independentes da resolução (física, audio, IA, etc). E isso quer dizer que 41% mais de performance nesse campo serão bem mais relevantes do que 41% no pipeline gráfico, o que obrigará a Microsoft a não parar e a trazer forçosamente a Cloud, com as suas vantagens e desvantagens, para a Xbox One de forma a, mais uma vez, criar equilíbrio.

Teremos ainda o DirectX 12 a aparecer no mercado, com a Xbox One a receber este API. Tal trará algumas novidades a nível de suporte que ao passarem a ser standard no PC beneficiarão ambas as consolas, mas em particular a One por partilhar exatamente o mesmo API.

Mas sobre a computação assincrona e o DirectX 12 falaremos em outro artigo.

Conclusões

Decididamente a Xbox One começou mal, mas a mudança de liderança para Phil Spencer que, mais do que ninguém se esforçou por optimizar a performance da consola, foi algo de super positivo. Já elogiamos Phil por várias vezes por este trazer a Xbox One para um lugar de muito maior destaque, e como este artigo o mostra, a Xbox One actual é bem mais desejável que a inicial, conseguindo agora fazer sombra à PS4, algo impensável sem estas alterações.

Naturalmente a Xbox One nunca será tão poderosa como a PS4, mas se Phil conseguir manter a Microsoft a suportar a consola, arranjando formas adicionais de combater as diferenças que a PS4 acrescentará com o uso do GPGPU, teremos até final da geração duas consolas bem interessantes e se calhar muito mais próximas do que alguma vez seria previsivel no seu inicio.

Publicidade

Posts Relacionados