Revelado: Microsoft Xbox One X benchmarks
Resolução Nativa de 4K vs 900p/1080p na Xbox One e Retrocompatibilidade.
Estávamos esperançosos que a Microsoft iria revelar o poder da Xbox One X na E3, porém apenas foram revelados alguns títulos nativos, e por isso, existe algum cepticismo perante o "true 4K" que a Microsoft reclama. No inicio do evento os developers falaram dos resultados impressionantes que conseguiram alcançar com esta consola: a Monolith confirmou que o Shadow of War iria correr em 4K nativo, enquanto que a Respawn Entertainment disse que o Titanfall 2 faz scaling até uma resolução de 6K. Para além disso, o Studtio Wildcard, produtor do Ark, disse que a Xbox One X é como um PC com uma GTX 1070 com 16GB de RAM. A Microsoft está confiante nas capacidades de 4K desta consola, com os benchmarks iniciais a prometerem uma máquina poderosa.
Hoje vamos publicar os benchmarks da Xbox One X, mas estes testes precisam de ser contextuados. A nossa visita ao Redmond campus da Microsoft foi feita entre dois "XFest" da Microsoft (eventos de developers), tendo um deles ocorrido no Reino Unido, e o outro nos Estados Unidos da América. David Cook, um engenheiro de Software no Advanced Technology Group da Microsoft (ATG), apresentou um plano detalhado do Scorpio Engine GPU, apresentando muito dos resultados que já tinhamos visto na Análise às Especificações: Xbox Project Scorpio. Apesar de terem falado exclusivamente connosco sobre o hardware, a Microsoft não revelou estes números - nós conseguimos ter acesso a eles através do contacto com developers, e de uma pesquisa mais profunda antes de os publicar-mos.
É uma oportunidade fantástica para poder ter acesso às características do Scorpio Engine. Para além destes dados, a apresentação revela como os GPU bottlenecks variam entre a Xbox One e a Xbox One X - o compute power é uma limitação no sistema base mas, em muitos cenários, isto troca para a memória, geometria e o limite de pixeis no novo hardware, necessitando um novo rumo por parte do developer. O foco regressa ao compute power - uma área na qual o Scorpio Engine se destaca. Felizmente, a Microsoft também parece advogar uma subida de 4x para 8x anisotropic texture filtering também, algo muito importante para obter o máximo possível de um apresentação em ultra HD.
Foram usados gráficos da ferramenta de análise de performance da Microsoft (PIX) para ilustrar as performance bottlenecks, para além de outros gráficos para demonstrar a capacidade de resolution scalability que a Xbox One X possui. Foram revelados dados sobre nove jogos, uma mistura de jogos que já foram lançados e outros que ainda estão em desenvolvimento. Mais à frente poderás ver a tabela com todas as informações que foram partilhadas. Não foram dados os nomes dos jogos, por isso vai ser complicado adivinhar quais jogos foram analisados. Nós estamos razoavelmente confiantes que os títulos B e C se tratam do Forza Motorsport 7 e Gears of War 4, respetivamente, enquanto que o Star Wars Battlefront possui os atributos do título H. Se tivéssemos que adivinhar, o título A deveria ser o ReCore, enquanto que o título G deveria ser o Halo Wars 2, mas isto trata-se apenas de especulação. O objetivo aqui não se trata de adivinhar quais jogos foram analisados, mas sim como é que a Xbox One X se compara com o modelo standard desta consola.
Para obter estes dados na PIX, todos os títulos sofreram um porte básico para o Project Scorpio development hardware, o que representa um desafio em termos de obter dados significativos da versão final dos jogos. Em primeiro lugar, foi realizado um processo de iteração no sistema operativo, enquanto que as funcionalidades específicas do Scorpio não foram usadas. Para além disso, a ESRAM da Xbox One base foi mapeado diretamente para GDDR5 na nova consola sem qualquer tipo de ajuste, significando que vai haver muitos read/writes entre as memory areas, o que se trata de algo que não aconteceria na versão final de um jogo. No entanto, estes benchmarks foram completamente baseados no GPU, o que significa que os problemas de memory contention entre o CPU e o GPU não entram na equação. Porém, isto aplica-se tanto à performance da Xbox One como à performance da Xbox One X.
Outra aspeto importante, é o facto de que os resultados do PIX representam um simples "snapshot" da atividade do GPU, e a carga do GPU varia dramaticamente ao longo de um jogo. No entanto, podemos assumir que eles foram escolhidos pela Microsoft para ilustrar como os jogos fazem scale da Xbox One para a Xbox One X. Apesar de termos convertido os dados originais para uma frame-rate, é importante ter em conta que estes dados são apenas baseados no GPU time, e é diferente de qualquer frame-rate cap que os jogos finais podem implementar. Por exemplo, o frame-rate do título B (quase de certeza o Forza Motorsport 7) é de 13ms na Xbox One e 11ms em 4K na Xbox One X. Um frame-time de 11ms seria convertido para 90fps, mas a versão final está bloqueada a 60fps - como sabemos a Turn 10 vai usar isto para implementar gráficos melhorados na nova consola.
Na apresentação foi dito que o objetivo da Xbox One X é de correr títulos de 1080p nativos com um melhoramento na resolução de 4x. Enquanto que, durante a nossa visita, a Microsoft expandiu este objetivo, dizendo que queria que os game engines de 900p e 1080p corressem a 2160p. A maioria dos dados obtidos demonstra que o objetivo de aumentar a resolução 4x foi alcançado, mesmo sem aceder às novas funcionalidades do GPU da Xbox One X. Enquanto que o 900p scaling não demonstra as mesmas melhorias, dois dos três portes básicos conseguiram alcançar este objetivo, ou quase conseguiram, com a otimização do hardware a aumentar o sucesso desta tecnologia.
Género | Objetivo | Engine | API | Estado do título (Março 2017) | |
---|---|---|---|---|---|
Título A | Exploração em Mundo aberto | 900p30 | Unity | DX11 | Lançado |
Título B | Desporto/Corridas | 1080p60 | In-House | DX12 | Em Desenvolvimento |
Título C | Shooter Linear | 1080p30 | Unreal Engine 4 | DX12 | Lançado |
Título D | Ação em Mundo aberto | 900p30 | In-House | DX11 | Em Desenvolvimento |
Título E | Multiplayer em Mundo aberto | 900p30 | Unreal Engine 4 | DX12 | Lançado |
Título F | Desporto/Corrida | 1080p60 | In-House | DX11 | Em Desenvolvimento |
Título G | Estratégia Multiplayer | 1080p30 | In-House | DX11 | Lançado |
Título H | FPS | 720p60 | In-House | DX12 | Lançado |
Título I | Ação em Mundo aberto | 1080p30 | In-House | DX12 | Em Desenvolvimento |
Assumindo que os Títulos B e C são de facto o Forza Motorsport 7 e o Gears of War 4 respetivamente, temos aqui paralelismos entre portes iniciais e resultados otimizados presentes na E3. O engine da Turn 10 é capaz de atingir 60 frames por segundo, com milissegundos de sobra, e com um tempo de frame render de 11ms, atingindo assim 65% da carga do GPU num jogo que tenha como objetivo correr a 60fps - precisamente aquilo que vimos com a demo do ForzaTech. Tendo isto em conta, estamos ansiosos para descobrir quais upgrades a Turn 10 decidiu implementar, pois o texture filtering está com um ótimo aspeto na demo que jogamos.
Por outro lado, o Gears of War 4 é consideravelmente mais fascinante. A The Coalition anunciou upgrades para o jogo na E3, incluindo texturas com uma resolução mais elevada, uma taxa maior de polygon counts, uma draw distance maior, sombras dinâmicas melhoradas, assim como reflexos melhorados. É difícil acreditar que todas estas melhorias podem ser processadas, tendo em conta a pequena melhoria que foi aplicada no render time, sugerindo que uma uma maior optimização da Xbox One X melhora os resultados dos benchamrks.
Se for este o caso, dois dos três títulos em 900p que aqui foram testados, podem atingir uma resolução de 4K nativa - o Título A tem apenas 1ms de diferença dos níveis da Xbox One, enquanto que o Título E tem apenas 2ms de diferença, com os frame-times a aumentar entre 5-6% em ambos os casos. Claramente nem todos os jogos vão fazer scaling como estes. O Título D, um jogo de aventura em mundo aberto, claramente não vai conseguir alcançar estes níveis. Talvez, por coincidência, o Assassin's Creed Origins foi apresentado na E3 a correr numa Xbox One X produzindo um output de 2160p, apesar de precisar de checkerboard e scaling dinâmico para alcançar esses resultados. De qualquer forma, os resultados foram impressionantes.
Em adição, o Título H, quase de certeza o Star Wars Battlefront (Frostbite engine), também não deve alcançar uma resolução nativa de 4K na Xbox One X, visto que se trata de um jogo de 720p. Os dados sugerem que este jogo, que originalmente corre a 60fps, iria correr a 38fps - o que não é surpreendente, visto que estamos perante um aumento de 9x na resolução. Também discutimos recentemente o facto de que a chegada da Xbox One X será uma boa notícia para a PS4 Pro. Nós especulamos que a equipa da Frostbite iria adotar as estratégias usadas na Pro, e aplicá-las na Xbox One X, e com base nos dados que obtivemos até agora (checkerboard de 2160p), parece que foi exatamente isto que aconteceu.
Para além disto, existem outras curiosidades nos benchmarks, especialmente no Título I, um jogo de mundo aberto, em desenvolvimento, que usa um in-house engine baseado no DX12. Os frame-times na Xbox One alcançam os 59ms, sugerindo que esta secção do jogo correu a apenas 17 frames por segundo. Ao correr a 4K na Xbox One X o jogo melhora, e a sua perfomance parece estar limitada ao GPU - se o CPU fosse um problema, o scaling iria ser muito mais limitado nos resultados apresentados mais abaixo.
Nos documentos que nós vimos, a Microsoft providencia dados de uma comparação entre a Xbox One e a Xbox One X a correr na mesma resolução. Isto pode não parecer muito útil, exeto o facto de que os developers podem usar a enorme quantidade adicional de GPU disponível caso queiram manter a mesma resolução. No entanto, estes dados podem ser relacionados com a retrocompatibilidade da Xbox One X com os jogos da Xbox One.
Se olharmos para as tabelas que se encontram mais abaixo, podemos ver dados de comparação de jogos da Xbox One, assim como a forma que esses jogos correm na Xbox One X, baseando-se em dois cenários: num deles, os jogos são compilados usando o último XDK development environment, enquanto que no outro cenário eles usam outro environment (basicamente todos os jogos existentes). Os dados da Xbox One X representam os jogos compilados com o XDK de Julho de 2017 (ainda em desenvolvimento quando esta apresentação foi feita). Com o XDK, todos os jogos da Xbox One irão automaticamente ganhar o aumento de performance da Xbox One X, mesmo que o developer não tenha acesso ao devkit da Xbox One X. Tal como os dados revelam, compilar jogos com o XDK proporciona uma grande melhoria sobre os jogos já existentes. Por isso, resta uma questão. Porque é que os jogos já existentes não são compilados com XDKs mais antigos de forma a atingir os mesmos resultados que o XDK mais recente proporciona?/p>
Resulta que a retrocompatibilidade é algo difícil de alcançar, por isso os jogos já existentes na Xbox One irão funcionar de forma diferente. É uma generalização algo escandalosa, mas poderias dizer que efectivamente os jogos mais antigos ganham acesso a 3TF de poder, comparados com o 1.31TF da Xbox One, e com os 6TF que podem ser acedidos através do XDK de Julho. Tal como as melhorias no render time demonstram, os títulos já existentes devem ganhar acesso a poder extra o suficiente, o que os permite maximizar a resolução e melhorar o anisotropic filtering. Outras melhorias que a Microsoft prometeu na retrocompatibilidade foram: loading mais rápidos, poder de CPU mais rápido, RAM cache, etc. Ou seja, todas estas melhorias são dependentes do GPU, por isso não há razão para não acreditar que estas promessas não vão ser cumpridas.
Neste sentido, a implementação da compatibilidade por parte da Microsoft, pode também explicar o boost mode da PS4 Pro, onde apenas o clock-speed parece fazer alguma diferença em cenários relacionados puramente com o GPU. Talvez ambas as consolas estejam a usar da mesma forma o GPU melhorado, tendo como única diferença o facto de que a Xbox One X tem muitas mais compute units, e um clock muito mais alto.
Estamos ansiosos por testar esta teoria. Na ausência de um patch para o Halo 5 na Xbox One X, este jogo deverá proporcionar um teste fascinante às funções de retrocompatibilidade, assim como a forma que o poder causa um impacto na função de dynamic scaling. Para além disso também iríamos testar o Project Cars e o Just Cause 3. A Microsoft também sugere que os developers podem utilizar o último XDK para atualizar os patches de jogos mais antigos, mesmo que não planeiem usar nenhuma funcionalidade exclusiva da Xbox One X - e por norma, isto deverá desbloquear automaticamente os 6 TF de GPU power.
Ainda existem mais informações, segundo a documentação que vimos. A arquitetura fundamental do GPU da Xbox One X é igual ao da consola original, ao qual foram aplicadas melhorias e upgrades (isto provavelmente também acontece na PS4 Pro). Existem outras funcionalidades, tal como a colour compression da AMD, que aumentou a performance entre 7 a 9% em dois jogos que a Microsoft testou. O DCC é uma funcionalidade exclusiva da API do DX12. De facto, o DX11 entrou num "modo de manutenção" na Xbox One X, sugerindo que a Microsoft pretende que os developers avancem e comecem a usar o DX12. Existem benefícios para ambas as Xboxes, caso façam isto. Para além disso, um apoio adicional ao DX12 no PC também seria bem-vindo.
A Microsoft deu um conselho crucial aos developers. Para conseguirem criar um porte para a Xbox One X com um boost de 4x na resolução, de forma fácil, comecem com as definições do vosso pc high-end, usem bem a memória e encham todos os frame-time extras com efeitos adicionais. Tenham cuidado com os loading stalls, e considerem técnicas como o checkerboard rendering e a resolução dinâmica. Já podemos presenciar algumas destas técnicas ao vivo, mas assim que nos movemos em direção ao Gamescom e ao lançamento da Xbox One X, estas benchmarks iniciais são fascinantes - e o facto de que o software usado para criar este scaling está prestes a ser lançado também vai ser algo a ter em conta para testar hardware e jogos no futuro.