A Activision usa VRS desde já à algum tempo, tendo-o implementado na PS4 no Call of Duty: Modern Warfare
A questão do VRS por software resurgiu devido à 4A Games, no seu jogo Metro Exodus, ter referido na sua tabela de suporte que a PS5 teria o mesmo suporte VRS que a Xbox, o que levou à questão sobre se a PS5 suportava VRS da mesma forma que a Xbox, com o suporte Hardware Tier 1 e Tier 2.
A resposta não foi direta, pois a 4A Games acabou por dizer que usa a sua solução VRS por software na PS5, que tinha já sido desenvolvida para a PS4. No entanto o simples facto de se ter optado por uma solução software quando na Xbox o hardware é usado indica de forma clara que a haver algum tipo de suporte hardware equivalente ao do DX 12 no que toca ao VRS, ele não está a uso.
We did simplify, we have our own VRS solution that was released in the original PS4 version and is updated for PS5
— Metro Exodus (@MetroVideoGame) February 15, 2021
Ainda segundo a equipa as performances da PS5 e da Xbox estão equivalentes no jogo.
Ora este conjunto de afirmações deixou questões no ar. Se uma consola usa VRS por hardware e a outra por software e o resultado é o mesmo, será que a PS5 pode igualar a Xbox com o seu VRS por hardware, usando software?
Segundo o Leviathan Gamer, a PS5 calcula o VRS de forma diferente… e parques vale-se e seu Geometry Engine. A PS4 faz VRS usando shaders, mas a PS5 injeta-o nas primitive shaders graças ao seu GE.
Well current gen uses Compute Shaders for VRS. Primitive Shaders are Compute Shaders that eliminate cache bottlenecks by injecting them into the graphics pipeline. PS5 VRS is handled via GE/Primitive Shaders…ding…ding…ding…
— LeviathanGamer (@LeviathanGamer2) February 16, 2021
Isto quer dizer que a PS5, mesmo sem usar unidades dedicadas consegue fazer o mesmo que a versão hardware do VRS.
Mas com que resultados e qualidade?
A resposta é surpreendente. A questão é que um VRS por software pode mesmo conseguir resultados superiores, e isto porque ele é criado de forma a ser adaptado à realidade de cada motor, ao passo que a versão hardware, acaba por ser genérica. E tal situação permite que a versão software não seja dispar em termos de performances.
O que a versão software não consegue é igualar facilidade de uso VRS por hardware facilmente acessível a todos e sem necessidade de se programar qualquer situação proprietária, o que se revela uma mais valiaacima de tudo para equipas que não possuem os recursos para desenvolver a sua solução de VRS por software.
Mas teoricamente, com tudo bem adaptado, uma solução software pode ter muitas virtudes sobre a versão hardware e Matt Hargret até dá a entender que com o GE a PS5 pode superar a versão hardware.
So this is the reason matt relate vrs with primitive shader. I knew there was something off with its wording. Because he didn’t have to relate vrs to primitive shader. pic.twitter.com/u1RXFT6Jcn
— Danta (@danta5555) February 16, 2021
Quanto a performances teremos de aguardar por comparattivos e ver, mas a realidade é que se a performance é relevante, a questão da qualidade é igualmente relevante. Afinal o VRS funciona num esquema que rouba resolução e qualidade à imagem.
E foi a pensar na relação performance qualidade que a Activision criou uma solução software que refere ser mais vantajosa que o hardware pelos seguintes motivos:
– É uma solução personalizada e não uma pré realizada como a presente no DX12U. E é igualmente acelerada, mas não pelas mesmas unidades de hardware.
– A solução software é mais flexível e personalizável, adaptando-se melhor às realidades do motor para que foi desenvolvida do que a solução genérica do DX12U.
– A versão software pode não requerer chamadas adicionais ao CPU para acesso ao GPU, como acontece na versão DX12U.
– A versão software oferece melhor qualidade gráfica que a oferecida pelo DX12U.
– A versão software pode ser tratada para remover os blocos, e pode mesmo ser injetada com uma solução de Temporal Anti Aliasing, de forma a disfarçar o aliasing causado.
Apesar de tudo é reconhecido que a solução do DX12U se revelam maisfácil de usar, e de aplicação direta, não obrigando a desenvolver uma solução proprietária.
Podem encontrar o PDF da apresentação powerpoint da Activision neste link (125 MB).
Deixa-se aqui um resumo das partes mais relevantes:
O VRS activo numa consola PS4 standard, mostrou ganhos de 2 ms no processamento (12,5%) – nada se sabe ainda do que consegue ser feito numa PS5.
A capacidade da versão software de suavizar a versão software removendo os blocos, oferece melhor qualidade de imagem, especialmente se tiver ainda um tratamento posterior de Temporal Anti Aliasing (TAA):
A versão software trabalha com blocos menores, sendo uma das principais causas das diferenças visuais.
Segundo a Activision a diferença entre os Tiers é a seguinte:
–1 – Acerto do racio de shading por desenho
–2 – Acerto do racio de desenho por tijolo de pixels (e outras frequências)
O tijolo mínimo suportado é de 8×8 pixels
No entanto a versão software consegue trabalhar com tijolos de 2×2 pixels, o que, segundo a Activision, lhe traz enormes vantagens visuais:
Conclusões
Naturalmente que o que vamos ver no global é que o uso do VRS na Xbox será mais generalizado, até porque ele está acessível de forma directa. Mas nos jogos mais desenvolvidos, com soluções VRS proprietárias, não se torna claro onde estará a vantagem, sendo que mesmo que a vantagem da performance continue a recair sobre o hardware, a vantagem da qualidade deverá recair sobre o software.
No entanto não é nossa intenção discutir aqui quem terá a vantagem, até porque acreditamos que no que toca ao VRS, tal como o conhecemos, a solução da Microsoft, pelo simplicidade de uso direto poderá ter sempre vantagem. O relevante aqui é perceber-se que a PS5 pode fazer o mesmo, pode ate fazer melhor e, segundo Matt Hargrett dá a entender, graças ao GE, até pode bater o hardware do DirectX 12.
Mas no entanto convêm esclarecer que isso não acontecerá sempre, em particular nos jogos que usam Forward rendering. Nesse tipo de motores dependentes dos pixels Shaders, o VRS por hardware é directo, ao passo que por software é altamente complexo de ser feito. Já quando os motores usam deveres rendering, ou compute Shaders, as soluções VRS são mais versáteis, adequadas e até com melhores performances.
Software VRS is indeed doable. If you have a tile binning deferred approach, you can implement it quite easily. The hardware VRS is designed for forward rendering. Software VRS is hard to do with forward rendering, but software VRS is more flexible and works better with deferred.
— Sebastian Aaltonen (@SebAaltonen) February 18, 2021
O Forward rendering é no entanto uma técnica em desuso, com o defered rendering a ser a metodologia mais popular. No entanto dado que cada tipo de rendering tem vantagens e desvantagens há motores que estão a regressar ao forward rendering num modelo algo híbrido com características de uso dos compute shaders derivadas do defered rendering.
Com esse modelo os resultados são incertos, mas no caso da Activision aqui citada, esta refere que, pelo menos no seu motor Forward+, a solução software se revela ainda assim superior à hardware.
Apenas como nota eis o que se sabe dos motores mais populares:
Motores Third Party
Unreal Engine – Defered Rendering por defeito, mas com suporte para Forward Rendering como opção, recomendado para VR e aparelhos móveis pois não tem o mesmo nível de suporte e características.
Cry Engine – Defered Engine
Unity – Forward Rendering com uma path para Defered Rendering.
Frostbyte – Defered Rendering
Motor da Rockstar – Defered Rendering
Activision (caso do artigo) – Forward Rendering+
4A Games (Metro) – Defered Rendering
CD project Red – Motor dinâmico com suporte a Defered e Forward+ Rendering.
Motores Sony
Décima Engine – Defered Rendering
Todos os outros estúdios Sony – Defered Rendering
Estúdios Microsoft
ID software – Forward Rendering+
Bethesda – Defered Rendering
Turn 10 e Playground Games – Forward Rendering+
The Coalition e Ninja Theory – Unreal Engine
Antigos Halo – Motor híbrido Defered e Forward Rendering.
Slipstream Engine ou novo motor do Halo – Defered Rendering
Leva a crer, talvez, pode , deixa no ar, será ? … puras incertezas. Um problema.
E via de regra soluções cujas instruções são suportadas no silício quase sempre se destacam melhor em performance. Pessoalmente ainda não vi algo que numa camada de software fizesse o oposto.
Isso não é uma regra!
O silício não faz mais do que executar o mesmo que uma determinada rotina de software faria. Apenas o faz mais rápido por ser hardware dedicado.
Mas o que se passa com este tipo de situação é que o que aqui temos vai atuar sobre o motor de renderização. E não só os motores funcionam todos de forma diferente, como o seu funcionamento é diferente.
A rotina que a Microsoft criou funciona muito bem sobre Forward Rendering onde deverá ser imbatível. Mas o forward rendering funciona usando pixel shaders que é onde o VRS actua. Já o Defered Rendering não use sequer pixel shaders, mas sim compute shaders, e isso quer dizer que este VRS não atua da mesma forma, mas sim como pós processamento.
No forward+, tens algo hibrido, com pixels shaders e compute shaders, pelo que o VRS da Microsoft fica no meio termo de utilização.
Ora o que a Activision fez aqui foi utilizar um VRS proprietário que segundo os seus testes é superior. Não é o Manuel da esquina que está a dizer isto, é a Activision. Isto é um documento oficial!
O seu motor de Rendering é Forward + e mesmo assim o seu VRS é superior.
Quem mete a colher é o Sebbi, um dos programadores mais creditados da praça, por ser criador de diversas técnicas de programação inovadoras, e que refere que o VRS por software nos motores de Defered rendering, se bem realizado é superior pois pode interagir com o render e não actuar apenas à posteriori.
Basicamente quem está a falar não são fanboys, ou pessoas desconhecidas… são duas entidades super credíveis. E aqui eu estou a noticiar a coisa.
“Isso não é regra.”
Mário faz pra mim um favor ? Encontre para mim um processador que rode um simples vídeo 4K sem um codec hevc de 10 bit no seu conjunto de instruções e que o faça performando bem com baixa carga ?
Veja o tamanho do imbróglio que é fazer essa tarefa apenas pela camada de software. E veja, como apesar de ser possível não é a mesma coisa nem de perto do que algo especializado para.
King… Não terás percebido o expliquei (se calhar não fui claro). Hardware dedicado para uma coisa é efectivamente melhor que software.
Mas esse hardware só faz essa coisa.
O VRS da Microsoft é um tipo de VRS que se adapta aos motores que usam os pixels Shaders, mas não compute shaders.
É o mesmo que tenhas um CPU com um codec que executa muito bem um determinado tipo de compressão vídeo, mas não tem outro codec que não executa outro tipo de compressão.
E nesse caso, nessas situações o software pode ser melhor.
Com isso não estou a dizer que um hardware dedicado à outra situação não bata novamente por muito o software, porque bate, o hardware é sempre melhor que o software. Apenas que um suporte hardware pode ser superado por um software se ele não for dedicado à situação.
O VRS da Xbox é dedicado ao Forward Rendering e nesse tipo de rendering é imbatível. Mas apesar de ser uma aceleração por hardware ele não bate o software em Defered Rendering. Para isso precisavas de um Tier 3 ou algo do género que suportasse esse tipo de motor.
O VRS da Microsoft até funciona em Defered Rendering e podia nem dar para esses motores, mas não é por ele ser hardware que bate o software, pois ele não se adequa aqui.
Espero ter-me explicado melhor agora.
Seja como for, o VRS por software só é software de nome, pois ele é acelerado pelos CUs. Apenas é uma unidade aceleradora diferente e mais genérica, mas longe de processamento software executado apenas no CPU.
Tratar com incertezas é muito mais sensato do que realizar afirmações sem provas. Nenhum de ńos trabalha na indústria de jogos produzindo jogos triple-A. Não estamos lá dentro. Então precisamos ponderar, senão estaremos passando por videntes. Ao mesmo tempo podemos abordar o assunto porque temos fonte de quem está lá dentro.
Sobre o que dizes, faria todo o sentido se o silício substituísse o software exatamente na mesma função. Por exemplo, calcular as interseções de raios nos shaders ao invés de usar aceleração via hardware (RT Cores ou Ray Accelerators).
Mas o VRS via software está ocorrendo em uma etapa diferente do pipeline da GPU. VRS via hardware ocorre no back-end, via software é feito nos próprios program shaders.
Tratou correto a respeito de incertezas, agora fato é.
Existe instruções que são virtualmente impossíveis de se adquirir desempenho idêntico apenas as simulando em níveis mais baixos de software. E elas são a maioria das que temos.
Em linhas gerais não discordo de você, e usei o próprio Ray Tracing de exemplo.
Mas sugiro ler a resposta do Mário e ver que a questão do VRS em particular é um pouco mais complexa do que executar software que faz exatamente o mesmo que o hardware dedicado.
Artigo muito bem escrito, como é de costume aqui no PCmanias. Parabéns Mário.
Este artigo traz alguns ensinamentos valiosos. Tudo o que se discute de 500% de ganho nos Mesh Shaders, 50% em DirectX 12, 30% em VRS, etc..etc.. etc… não se pode medir de forma literal. Desenvolvimento de Software é complexo demais para tamanhas simplificações e medições. Cada estúdio tem a sua respectiva abordagem, já que são motores e jogos diferentes. E além de tudo isso, Software é uma mistura de Engenharia com Arte. É um quadro branco onde as ferramentas são importantes, mas os resultados dependem mais da habilidade do pintor.
Mas voltando ao artigo, de fato parece improvável que estúdios com suas soluções de VRS via software nos compute shaders (deferred rendering) abandonem o trabalho desenvolvido e mudem para uma abordagem híbrida, usando VRS via hardware foward rendering nas GPUs compatíveis DX12 Ultimate, e via software no restante.
O que tenho visto são estúdios usando uma solução única para todas as plataformas, evitando retrabalho. E isso também vale para a gestão dos shaders. É comum usarem rasterização via software para ter uma solução única em todas as plataformas. Se começarem a usar Mesh Shaders em uma gama de GPUs, Primitive Shaders em outra e Vertex Shaders em outra, o desenvolvimento do jogo se tornará inviável, pois são abordagens muito restritas e exclusivas.
Carlos, você acha que a medida que a Sony projetava o ps5 era também atualizada as engines dos estudios da Sony ? Ou foi um processo que ainda está em ação devendo se completar lá pelo meio da geração.
De certo que as Engines já estavam sendo atualizadas sim, mas este processo perdurará por toda a geração
Do que tenho percebido, tanto Sony quanto Microsoft esperaram até o último instante para fechar os componentes do chip, e não perder as mais recentes atualizações.
Faz sentido a Sony ter começado o projeto do PS5 como RDNA 1 (existem evidências claras em alguns commits do github) e depois ter atualizado para RDNA 2. As placas de vídeo RDNA 1 foram lançadas em 2019. Não faz tanto tempo assim.
Então se o SOC levou mais tempo para ficar pronto, os impactos podem ter ocorrido em cascata: devkits podem ter demorado mais do que o convencional para serem entregues. E por consequência, motores levaram mais tempo para serem remodelados para a nova geração. Como consequência, penso que os primeiros jogos usando de fato as features de nova geração deverão se iniciar na segunda onda de lançamentos, talvez a partir de 2022.
No caso da unreal engine 5, a demonstração “ Lumen in the Land of Nanite ” não significa que a EPIC recebeu um apoio especial da Sony para que a engine dela estivesse naquele estágio?
Segundo a Cerny e Epic, sim, durante o desenvolvimento Studio e equipe de Mark Cerny estavam em sintonia quanto a tecnologia por trás da nova geração.
Além dr que a Sony é hj acionista da Epic
Julio,
Sim, a Sony e a Epic tiveram cooperação em evoluir a Unreal Engine 5. Só que tem 3 pontos interessantes:
1) O que vimos na tech-demo se tratava de um projeto em andamento. A Unreal Engine 5 será lançada neste ano de 2021. E a Unreal Engine 5 é um motor muito mais complexo porque precisa suportar diversos tipos de jogos para várias APIs distintas. Inclusive é um motor com várias interfaces em um ambiente de desenvolvimento em alto nível para os desenvolvedores. Motores proprietários podem possuir interfaces mais simples, já que são para os jogos da própria empresa, sem necessidade de vender a terceiros.
2) Adaptar os motores para consolas next-gen é uma etapa do processo de desenvolvimento de jogos. O motor da Decima Engine já deve estar pronto e adaptado para Horizon Forbidden West. Talvez até o motor da Santa Monica já esteja pronto para o God of War Ragnarok. O problema é terminar o jogo lol. No caso da Unreal Engine 5, não precisa terminar o jogo, é lançar o motor no mercado para os estúdios usarem.
3) É possível trabalhar com o motor sem ter o devkit completo em mãos, desde que se tenha os detalhes das rotinas que a API irá fornecer. Por exemplo, no caso da Unreal Engine 5, eles tem um processo refinado em realizar a gestão dos shaders via software. Isso não depende do devkit. Quando a Sony disponibilizou seus devkits, adaptaram para os Primitive Shaders.
Em Agosto o time do novo Forza Motorsport mostrou o avanço deles com relação à iluminação global do seu motor (link: https://youtu.be/NJsbnTdRY9I). Ou seja, o jogo foi apresentado no evento de Julho, e no mês seguinte ainda estavam trabalhando duro no motor. Ou seja, ainda falta muito para o jogo ser lançado (aposto em 2022).
O mais interessante da apresentação Nanite on the Land of Lúmen é que o mais pesado dos dois e que limitou a PS5 foi o lúmen. E mesmo assim a Época afirma que com optimização a consola poderia chegar aos 60 fps.
Isso aponta que, sem o lúmen mas outro motor de luz eventualmente aquela qualidade gráfica pode ser possível a 4K 60 fps.
Depende do orçamento.
me parece que a solução da MS é melhor para jogos de medio e baixo orçamento, de estudios não tão avançados na tecnologia… “so marcar a caixa de dialogo para ativar, selecionar quanto e usar”
enquanto a solução da Sony parece mais adequada para quem tem orçamento maior ou/e maior conhecimento técnico.
para a sony, acho que é melhor a segunda opção mesmo pq ND, Guerrilla, insominiac, Santa Monica são todos estúdios mais que capacitados nessa area.
para a MS é melhor para fazer jogos para o gamepass.
faz sentido.