O que esperar da Xbox One X, e porque motivo Mark Cerny apontou 8 Tflops para render em 4K nativo?

A resposta é dada por Timotthy Lottes, um dos grandes programadores da praça, e explica como com um valor inferior a Xbox One X atinge os 4K.

O nome Timotthy Lottes poderá não dizer muito a muita gente, mas a realidade é que este é um dos grandes nomes da Industria, sendo mesmo referido como sendo um dos Gurus da tecnologia, e o criador de um dos métodos de Anti-Aliasing mais utilizados desde sempre, o FXAA.

Tendo trabalhado na Nvidia, AMD e na Epic, onde esteve ligado a jogos como Ryse: Son of Rome, este senhor é um dos nomes quase omnipresentes na Game Developers Conference, com trabalhos como este, este ou este, apresentando sempre trabalhos com novas e revolucionárias técnicas de programação que tem vindo a ajudar o mercado a evoluir.

Timothy Lottes possui um pequeno blog onde escreve artigos, e que sigo à já alguns anos, apesar de não com tanta regularidade como isso pois a maior parte deles são demasiadamente complexos para pessoas que não estejam directamente ligadas à industria, e que se encontra aqui.

Ora visualizando o seu blog dei com um artigo muito interessante do qual irei aqui incluir alguns dados. Note-se que o conteúdo não é nosso, pelo que tentarei não usar as suas palavras de forma a não usurpar do seu trabalho, apesar que o que aqui está já foi referido vezes e vezes sem conta por nós aqui na PCManias, sendo apenas repetido agora por vir de uma fonte de elevada credibilidade.



Mas antes de avançarmos vamos fazer uma breve introdução:

Muitas pessoas tem vindo a mostrar admiração pelos resultados apresentados pela Xbox One X em alguns casos. Mas a realidade é que não há motivos para admiração! O termo “monstro” aplicado à potência da consola é adequado, mas não na proporção que muitos tentam fazer passar, acreditando que a consola está a superar-se ou a fazer algo que não era expectável, ou que será sempre capaz de 4K nativos.

E o artigo sobre os benchmarks da Xbox One X da Digital Foundry poderá ter servido para causar mais confusão naqueles que estão mal informados e retiram a informação do seu real contexto, ao focar-se apenas em jogos First Party da Microsoft, e sem referir que mesmo desses nem todos atingirão os 4K nativos em todos os casos.

Na realidade nada do que a Xbox One X está a apresentar é anormal e apenas o expectável numa consola com as caracteristicas anunciadadas. Mesmo os supostamente surpreendentes 6K atingidos como pico que foram referidos em Titanfall são perfeitamente normais e explicáveis, e tudo passa pelo facto que os resultados finais dependem do que se pega de base, e é isso que este artigo tenta explicar:

Voltando então ao artigo de Timothy, o que este faz é uma série de considerações básicas que calculam o que cada uma das consolas poderia fazer se corresse um jogo com a qualidade máxima que seria possível extrair-se de uma consolas inferior.

Isto pressupõem então que o GPU da consola que serve de base ao comparativo está ocupado ao máximo, e que o jogo não possui qualquer gargalo.



Vamos ver então o que Timothy refere, sendo que este  começa por listar as performances das várias consolas do mercado:

Baseado nesta realidade da tabela de cima , ele faz uns cálculos bastante simples mas completamente válidos, para verificar o que cada uma das consolas pode dar a nível de resoluções, caso a qualidade apresentada seja a máxima possível de uma consola anterior (o que implica o uso todo da sua performance de GPU na sua resolução nativa e a 30 fps).

Assim, por exemplo, partindo do principio que a qualidade usada seria a da Wii, que performance seria necessária para resoluções superiores?

Ora a Wii possui 14.1 Glops sendo capaz de uma resolução de 640×480. E isso quer dizer que 1920×1080 é uma resolução 6,75x superior.



Ou seja, para esta consola fazer o mesmo que faz a 640×480 30 fps, mas a 1920x1080p 30 fps, ele precisaria de 6.75 mais performance, ou seja 14,1×6,75 = 95 Gflops, ou 0.095 Tflops.

Daí para a frente, sempre seguindo esta lógica de relações entre resoluções e de fps (onde de 30 para 60 fps teremos de multiplicar por dois), torna-se fácil perceber que capacidade de cálculo seria necessária para colocar este jogos em várias resoluções e FPS.

Vamos ver com mais detalhe esses resultados:

Qualidade Wii

Como vemos, uma Xbox One base com 1.31 Tflops poderia, caso não fosse restringida pelo HDMI (algo que aqui vamos presumir em todos os casos que não acontece), atingir 5120×2880 a 30 fps, com bastante folga. Mas curiosamente, e por uma unha negra, para os 60 fps seria preciso já uma preciso uma PS4 com os seus 1,84 Tflops, que a 30 fps poderia atingir os 7680×4320.



Já uma Xbox One X (aqui ainda referida como Scorpio) ou uma PS4 Pro poderiam atingir os  10240×5760 30 usando apenas 2.65 Tflops, ou alternativamente os 5120×2880 a 120 fps usando a mesma performance.

Basicamente o que interessa aqui mostrar é que com este nível de qualidade, tanto a Pro da Sony como a X da Microsoft poderiam atingir 5K a 120 fps, ou 10K a 30 fps. Números que impressionariam muitos se aparecessem aí por qualquer lado, e que certamente levariam ao uso exagerado do termo “monstro”, quando na realidade, estamos a falar de uma performance normal e totalmente dentro do expectável para este nível de uso base do GPU.

Fazendo agora o mesmo raciocínio, mas com a qualidade de uma Xbox 360.

Qualidade Xbox 360

Tal como no caso anterior foi feita a conversão da potencia requerida a 1280×720 30 fps para 1920×1080 30 fps, o que implica multiplicar os 240 Gflops da Xbox por 2,25 (a proporção entre resoluções), obtendo-se assim 540 Gflops requeridos para se trazer um jogo com a qualidade do teórico melhor possível de se apresentar na Xbox 360 a 1080p 30 fps.



O que vemos depois é que tanto Xbox One como PS4 com o mesmo jogo optimizado para o seu hardware podem perfeitamente colocar os jogos com a qualidade da 360 a correr a 1920×1080 60 fps, e ainda com performance disponível. Alternativamente poderiam ir aos 2560×1440 30 fps.

Já uma PS4 Pro poderia com esta qualidade de jogo atingir os 3840×2160 a 30 fps, ou 2560×1440 a 60 fps. Uma Xbox One X pode ir a 5120×2880 a 30 fps ou 3840×2160 a 60 fps.

Aqui como vemos a PS4 Pro não conseguiria pegar num jogo Xbox 360 a 30 fps que usasse toda a sua performance e coloca-lo a 4K a 60 fps (seria por uma unha negra, mas não conseguiria, tendo de se ficar pelos 4K 30 fps). Já a X/Scorpio sim, e com muita potência por usar.

Mas agora que perceberam a lógica do que aqui está explicado, vamos ao que interessa. E o relevante aqui é agora pegarmos no que fizemos e aplicar a lógica aos jogos PS4. Afinal é na evolução de jogos da mesma geração que estamos mais interessados.

Qualidade PS4



Tendo como base a qualidade de uma PS4, que potência é então necessária para garantir que os seus jogos passam para 4K nativos?

Como vemos se o jogo usa toda a potência da PS4 a 1920×1080 30 fps, para 4K nos mesmos fps seriam necessários 7,37 Tflops (os tais 8 Tflops referidos por Mark Cerny necessários à passagem de jogos que utilizem toda a performance da PS4 para 4K).

Ou seja, Mark Cerny estava completamente certo. Este é o valor necessário para se levar um jogo não limitado que use todo o potencial da PS4 para 4K, algo que a fica assim vedado à Xbox One X pelos seus 6 Tflops.

Foi nesse sentido que a Sony pensou a PS4 Pro. Não podendo levar o jogo para 4K sem algo perto dos 8 Tflops de performance, como anunciado por Mark Cerny, a Sony optou por 4,2 Tflops com CBR, algo que lhe permite trabalhar com metade efectiva da resolução 4K e, reconstruindo a imagem, levar o jogo para 4K. Basicamente metade da potência… para metade da resolução nativa e 4K por checkerboard.

Resumidamente, para se levar os jogos PS4 para 4K nativos, a tecnologia ainda não é barata o suficiente. E nesse sentido, mesmo sendo a Pro uma consola inferior à Xbox One X, e ficando por isso sempre com resoluções nativas inferiores, a consola possui a potência necessária para o compromisso a que a Sony se propôs, os 4K CBR.



Mas e nos jogos Xbox One?

Qualidade XBox One

Nesta situação a Xbox One X já consegue fazer com os jogos Xbox One o que a Pro não faz com a PS4 (levar a 4K nativo os jogos da base). E basta fazer aqui então duas continhas básicas que Timothy não tem no seu website (ele não contabiliza a One base), mas que são feitas agora por nós na PCManias, usando a mesma lógica:

A Xbox One possui 1.31 Tflops trabalhando a 1920*1080!

3840×2160 (4K) é 4x mais resolução… logo para isso precisas de 4x mais potência! O que requer… 5,24 Tflops!

Ou seja, os 6 Tflops da Scorpio são exactamente a mesma lógica de Mark Cerny, mas desta vez adequado à realidade da Xbox One.



Daí que esta situação em que os programadores de Forza vem dizer que conseguiram colocar o jogo a 4K com poder de sobra é basicamente marketing, e algo que não deveria admirar ninguém!. Se não houver limites colocados pelo GPU da,X/Scorpio (algo que neste jogo não acontece), a Xbox One X conseguirá sempre passar os jogos 1080p da One para 4K nativos mantendo a mesma taxa de fotogramas.

E mesmo os 90 fps que se referem ter sido aqui atingidos não são estranhos se considerarmos que um jogo 60 fps tem os 60 fps como mínimo, e não como média. E isso quer dizer que a Xbox One já corria o jogo com uma média acima dos 60 e com picos se calhar bem mais elevados, algo que a X teria ainda de melhorar. Afinal possui melhor CPU e sobram 760 Gflops de performance no GPU.

Mas e jogos 900p, e jogos 720p?

Bem… aqui a situação é uma incógnita! A questão é que este artigo parte do principio que não há qualquer limitação de CPU ou largura de banda nas consolas base, pois isso invalida este tipo de contas.

E aqui podemos estar perante casos onde o limite está no GPU, ou no CPU/largura de banda/eSRAM, ou até em mais do que um em simultâneo.



Ora se o limite for o GPU, a realidade é que a Xbox One X não conseguirá os 4K nativos pois a proporção entre as resoluções é superior obrigaria a uma performance que a X/Scorpio não possui, forçando o checkerboard. Dai que, fazendo o raciocínio agora ao contrário, e sabendo-se que Anthem correrá a 2840×2160 checkerboard na Xbox One X, será de prever que, caso não haja outro gargalo, este seja um jogo 900p (ou 720p) limitado pelo GPU na Xbox One.

Mas depois há os outros casos, onde o limite não é o GPU da One, mas sim outro componente, e nesses casos o GPU nunca é levado ao máximo devido ao gargalo aplicado, seja ele com o CPU ou com a largura de banda, ou com a dimensão da eSRAM a serem o fator limitador.

E isso quer dizer que estas contas aplicadas apenas à potência de cálculo não podem ser aplicadas, sendo que teríamos de saber qual o factor limitador e em que percentagem a Xbox One X elimina esse gargalo.

Alguns jogos explicados:

Titanfall



Como se explica por exemplo que TitanFall chegue a ter picos de 6K de resolução na Xbox One X quando na Xbox base há quebras de resolução constantes para baixo dos 1080p? 6 Tflops garantem que 1080p passa a 4K nativos, mas não garantem que 900p chegue a 4K nativos. E aqui temos até picos de 6K! Como se explica?

Bem, aqui a explicação passa por dois fatores. Como já vimos atingir os 4K com os mesmos fotogramas da base é algo perfeitamente possível se o jogo for 1080p 60 fps, tal como vimos em Forza. Mas fica a dúvida quanto ao resto: Como é que com o jogo a ter quebras de resolução,se consegue atingir na mesma os 4K e até chegar-se inclusive aos 6K.

O atingir-se os 6K em picos é algo que se explica facilmente. Como em qualquer jogo, a ocupação do GPU não é constante, e a potência total do mesmo não está sempre a uso.

Mas aqui na Xbox One X o jogo possui um re-escalamento dinâmico para 4K. E isso quer dizer que o jogo não se limita a pegar no jogo base e passa-lo para 4K. Ele pega em todo o poder disponível e calcula a resolução máxima que consegue, re-escalando depois para 4K.

Ora facilmente é perceptível aqui que em certas situações pontuais de câmera o jogo apenas ocupa 750 Gflops dos 1310 que a consola dispõem. E fazendo este jogo isto, os 6 Tflops permitem um ganho de 8 vezes essa ocupação, chegando-se assim a uma resolução igualmente 8 vezes superior, os 6K. É a questão inicial onde vimos que a resolução atingida depende da potência que está em uso naquilo que pretendemos transportar.



Basicamente aqui não há nada de anormal nisso, e a situação anormal está na forma como este jogo usa a performance da consola sempre na sua totalidade para cálculo de resolução, algo que não é muito comum.

Agora que os 6K se explicaram, como se explica o resto, que o jogo consiga manter um mínimo de 4K quando a Xbox One base normalmente está sempre abaixo dos 1080p?

E aqui a explicação é outra. A Xbox One atinge um gargalo qualquer que a força a descer a resolução, mas esse não é um gargalo de GPU, mas sim de qualquer outro factor que desaparece na passagem para a Xbox One X com os seus limites bem mais alargados e onde CPU, largura de banda e dimensões da memória rápida não são um problema.

Gears of War 4

Gears of War 4 é um dos casos mais interessantes da Xbox One X. Um jogo que corre a 1080p 60 fps na Xbox One, mas que, ao contrário de Forza 7, não corre a 4K 60 fps na Xbox One X, requerendo o uso de uma resolução dinâmica (ou seja a resolução desce abaixo dos 4K nativos).

E este jogo revela aquela que parece ser a única “fraqueza” do hardware da Xbox One X!

Ora a pergunta é bem simples. Se Forza passou de 1080p 60 fps para 4K 60 fps, com aumento de fps e melhorias de qualidade,  o que impede este jogo de fazer a mera passagem para os 4K?

A explicação é igualmente simples:

Gargalo na X

A diferença entre estes dois jogos está em algo muito simples, o motor de jogo! Ele não é o mesmo de Forza. E isso quer dizer que o que é extraido do jogo na Xbox One  se revela dependente de algum componente que quando o jogo é corrido na Xbox One X a 4K a limita de uma forma que não existe na One a 1080p.

Basicamente estamos perante um gargalo que suje agora na X, mas que não se aplica na consola base a 1080p. Apesar das suas especificações impressionantes, algo surge que impede aqui uma passagem que se esperaria normal.

O que pode ser, se a X possui mais CPU, mais GPU, mais RAM e mais largura de banda, e mais ainda, se Forza faz isto com uma perna às costas.

Bem, há uma coisa que a Xbox One X não melhora da forma que deveria, as ROPs.

A Xbox One foi muito falada em 2013, inclusive na Game Developers Conferência pelos programadores da Avalanche, pelo facto de facilmente poder ter o seu GPU mais saturado que o da PS4 pelo uso de apenas 16 ROPs (32’na PS4), no caso de o jogo usar shaders complexos. E Gears usa-os! Ao ponto de termos mesmo na nossa análise a este jogo comparado a qualidade gráfica do mesmo ao apresentado por Uncharted 4 da PS4.

Apesar que as 16 ROPs nunca se terem revelado limitativas para a One, a sua existência neste número terá levado a uma decisão na Sua/Scorpio que agora se revela limitativa e explica estas incongruências, a colocação, segundo os dados disponíveis, de 32 ROPs. Mas para começar expliquemos porque é que esta situaçáo não se revela igualmente um problema em jogos como Forza, e tal deve-se ao facto que Forza usa um motor denominado Forzatech que funciona usando um Forward+ Rendering introduzido pela primeira vez em Horizon 2, uma metodologia desenvolvida pela AMD e que elimina muitos dos limites do GPU ao passar muito do cálculo gráfico das ROPs para um Compute Engine.

Mas já Gears 4 usa um sistema de Deferred render tradicional, muito dependente das ROPs!

Em que aspecto os shaders e as ROPs estão ligados? Bem, a questão é que os shaders são aplicados por camadas sobre a imagem. Um edificio por exemplo é criado a nível de geometria, depois é texturado, e depois são aplicadas outras camadas com as diferentes layers de efeitos, de luz, etc. Isso quer dizer que um pixel final na realidade é um pixel calculado por várias vezes, com os vários efeitos aplicados e sobrepostos. E isso quer dizer que o cálculo de pixels real por segundo não corresponde à resolução multiplicada pelos fotogramas por segundo, mas sim a muito, muito mais do que isso, sendo várias vezes superior. O efeito agrava-se ainda mais com o 3D onde, entre muitas outras situações, a sobreposição de superficies transparente sobre objectos obriga a um cálculo que é o somatório de todos os efeitos aplicados na zona de transparência a todos os objectos visiveis, bem como à transparência em si.

E é por isso que o Fill Rate, ou a capacidade de saida de pixel dadas pelas ROPs, para um sistema que funciona a 1080p 60 fps é normalmente bem superior ao que seria necessário para escrever uma imagem 2D nessa resolução 60 vezes por segundo, o que requereria 124 416 000 pixels por segundo, ou 0.124 Gpixels/s .

Por exemplo, a Xbox One possui 16 Rops a 853 Mhz, capaz de desenhar 13.65 GPixel/s, ou 13 650 000 000 pixels por segundo.

Já a xbox One X, segundo as informações disponíveis, possui 32 Rops a 1172 Mhz capaz de 37,5 Gpixels/s, ou 37 500 000 000 pixels por segundo.

Basicamente, o Fill Rate da Xbox One X é apenas 2,74 vezes superior ao da Xbox One base, mas a resolução final é 4X mais. O que isto quer dizer é que caso shaders do jogo na base estejam a usar de forma mais intensiva nas 16 Rops, pode efectivamente acontecer que a Xbox One X ao apenas aumentar a capacidade de output de pixels em 2.7 vezes, não consiga manter nas situações de maior débito que ocorrem a 60 fps a qualidade do jogo base em 4K. Há quatro vezes mais pixels a desenhar, mas apenas um aumento de 2,7x do débito máximo de pixels, e isto quer dizer que as ROPs podem limitar efectivamente as performances.

Basicamente capacidade máxima de saida da Xbox One é 109 vezes superior ao necessário para escrever uma imagem 2D a 1080p repetida 60 vezes por segundo e sem qualquer efeito, mas na Xbox One X, com a mesma imagem a 4K repetida 60 vezes por segundo serão precisos  497 664 000 pixels, sendo que a capacidade de saida da X é apenas 75,35 vezes superior. Ou seja, a proporção da Xbox One não é mantida, e isto pode ser limitativo.

Note-se que isto não é minimamente impeditivo dos 4K ou dos 60 fps, especialmente usado os forasteiros++ rendering, mas alguns casos mais tradicionais pode efetivamente limitar os 4K caso a qualidade/quantidade dos shaders e efeitos da base seja mais elevada, algo que se resolveria facilmente com um ligeiro corte na qualidade a 4K, mas que neste caso, pelo facto de a consola se destinar a melhorar a base, isso não pode acontecer, levando à alternativa. A redução da saída do número de pixels por quebras de resolução.

Basta assim que as ROPs da Xbox One estejam a 68,7% ou mais de uso face à sua capacidade total, para que a One X não consiga replicar o seu efeito a 4K nativos!

Este pode ser igualmente um dos motivos (o uso de um deferred rendering e shaders complexos), pelos quais Anthem corre a 4K checkerboard. E se esse for o caso a Xbox One base, salvo outro possível gargalo, poderá correr o jogo a 1080p.

Conclusões

Basicamente o que se pretende que se perceba é que aqui não há milagres, magoas ou tecnologias alienígena como alguns parecem querer deixar entender, e como sempre tudo se explica de forma lógica e coerente (e se tivéssemos mais dados, explicávamos com mais certezas)! A Xbox One X está a comportar-se dentro do que seria expectável numa consola poderosa como ela é de 6 Tflops, e apesar de ser um monstro de performance, não se iludam com números ou palavras que tentam pintar uma realidade anormal de uma consola que está a conseguir feitos que não se esperariam!

Porque como aqui se explica, não é porque atinge picos de 6K num jogo, ou porque atinge 90 fps a 4K em outro, que há aqui algo estranho ou anormal. Na realidade tudo está dentro dos parâmetros expectáveis para uma consola de 6 Tflops criada para evoluir os jogos da Xbox One e onde os gargalos são bastante diferentes dos da consola base.

A Xbox One X é uma grande consola. Diria mesmo que é uma consola que não se consegue ignorar. Mas no entanto há que se colocar os pés na terra face ao que ela realmente é e será. Algo que parece que nem todos estão a fazer. E nesse sentido foi elaborado este artigo.

 

 

 



error: Conteúdo protegido