Set 012014
 

Os programadores da 4Dev deram uma entrevista na qual dão bastante a conhecer sobre a realidade das novas consolas. Analisamos e comentamos esses dados.

redux

Metro Redux é uma re-conversão dos anteriores Metro Last Light e Metro 2o33 para as consolas de antiga geração. Daí que não foi novidade que soubéssemos que na conversão as novas consolas estavam longe de serem exploradas ao máximo. Afinal novas tecnologias e metodologias que podem ser utilizadas com estas consolas não são exploradas devido ao código antigo não pensado para esse fim.

Foi no entanto interessante perceber que este código antigo pode chegar a ser um empecilho para as novas consolas, chegando mesmo a abrandar o novo hardware

Atentem na seguinte questão que a Eurogamer colocou a Oles Shishkovstov, um dos membros da 4Dev.

Nota: Traduções manuais livres, tentando manter o significado o mais próximo do original possível.

Digital Foundry: Como é que conseguiram ter uma noção do que estas consolas eram capazes na altura em que receberam os kits e desenvolvimento?

Oles Shishkovstov: Bem, limitamos-nos a converter os nossos jogos e a realizar uma série de testes!

Um exemplo que posso dar: O Metro Last Light em ambas as anteriores consolas possui tarefas de geração de texturas vectorizadas e optimizadas à mão. Uma delas demora 0.8 ms num SPU da PS3 e 1,2 ms num dos núcleos Hyper-Thread da Xbox 360. Assim que as perfilamos pela primeira vez - já vectorizadas via AVX+VEX - na PS4, demorou mais de 2ms! E isto é mau para um frame de 16 ms. A questão é, a tarefa apenas existia com a função de libertar alguns ciclos nos antigos GPUs, o que é contra produtivo na actual geração de consolas. Esse processo foi puramente desactivado.

É um caso curioso e que mostra o problema não só das conversões, mas igualmente de código eventualmente partilhado em motores multi-plataforma. A optimização nestes casos nunca será perfeita a não ser que haja rotinas específicas dedicadas a cada hardware específico.

Outra questão interessante levantada na entrevista foi relativa às diferenças entre as consolas:

Digital Foundry: O menor número de compute Units da Xbox One, largura de banda e problemas com a ESRAM estão bem documentados. Diferenças de resolução em jogos multi plataforma são comuns e em alguns titulos vemos 720p vs 1080p. Qual a sua perspectiva nas diferenças entre a Xbox One e a PlayStation 4?

Oles Shishkovstov: Bem, vocês basicamente respondeu à sua própria questão - A PS4 é um bocado mais poderosa. Esqueceu-se de mencionar o número de ROPS, é igualmente importante - e não vamos esquecer que ambas as consolas partilham largura de banda entre CPU e GPU. Vi uma série de casos com a Xbox One onde o GPU podia actuar com a performance desejada, mas apenas quando o CPU não fazia praticamente nada. Infelizmente tambem vi o caso contrário, quando o CPU tinhas as performances esperadas mas apenas com o GPU sem fazer quase nada, mesmo sabendo que o CPU tem acesso prioritário de acesso à memória. Este é o motivo pelo qual a decisão da Microsoft de subir as velocidades de relógio antes do lançamento foi o mais sensato de se fazer com o design já fixo.

Mas a contagem de pixels não é melhor maneira de se medir a diferença entre elas. Há muitos outros factores (e mais importantes) que afectam a qualidade de imagem para além da resolução. Poderemos puxar 40% mais pixels por frame na PS4, mas não é 40% um melhor resultado. Os vossos olhos não dirão isso.

Para além da realidade de performance já conhecida, basicamente Oles falam de uma situação que curiosamente abordamos à pouco em diálogo nos comentários. A degradação da largura de banda tanto na PS4 como na Xbox One quando ambos os sistemas acedem em simultâneo à RAM. Nestes casos a PS4 perde quase 20 GB de largura de banda efectiva de acordo com os dados da Sony. Desconhecem-se os valores para a Xbox One, mas como as palavras deixam perceber, a situação, tal como tinha sido dito por nós nos comentários, e comprovada com slides da Microsoft, é idêntica nessa consola.

A imagem que se segue é na parte superior um slide da Sony e inferior um slide da Microsoft.

Degradacaomemoria

O outro ponto curioso é relativo à vantagem de resolução. Efectivamente ela nota-se, mas não é, para todos os efeitos num ganho visual equivalente ao valor da resolução. Mesmo no caso pior, ninguém pode afirmar que a diferença de 720p re-escalados para 1080p nativos, apesar de ser 225% mais pixels corresponde a uma imagem 225% melhor visualmente. Apesar do ganho visual ser perceptível, isso não é uma realidade!

O que acho que não deve porém ser esquecido, e daí a referência a que essa não é a melhor maneira de se medir a diferença entre as consolas, é que essa é apenas uma forma de se gastar a potência adicional. Caso a resolução fosse mantida idêntica, esses 225% (no caso de 720p vs 1080p) ou 44% (no caso de 900p vs 1080p) de processamento adicional poderiam ser usados em outras coisas, nomeadamente efeitos adicionais, maior número de partículas, HDR, Anti Aliasing, efeitos gráficos, melhor iluminação, ou outras situações que criariam maior disparidade visual do que a resolução.

Mas continuando com a entrevista:

Digital Foundry: É assim tão difícil de trabalhar com a ESRAM?

Oles Shishkovstov: Na realidade os problemas não vem da ESRAM, mas da quantidade dela. Quanto à performance - é suficiente para o GPU que está na Xbox One. Sim, é verdade que a sua largura de banda máxima teórica - que é de certa forma comparável à da PS4 - pode raramente ser atingida (normalmente com escritas e leituras simultâneas, como Blending FP16) mas na prática apenas vi alguns casos onde ela se torna um factor limitativo.

Mais uma vez estes dados confirmam o que aqui sempre foi dito. Apesar de ser um pouco mais limitada no caso de termos só escritas ou só leituras(onde só temos 109 GB/s máximos teóricos caso só existam escritas ou só leituras, a ESRAM possui uma largura de banda média efectiva (no caso de escritas e leituras simultâneas) em tudo semelhante à da GDDR5 da PS4. E nunca foi pela sua largura de banda que ela foi criticada, mas sim pelo facto de a memória ser de tal forma reduzida que parte do processamento necessita de ser realizado da DDR3. E nesse caso sim, a largura de banda da DDR3 é limitativa. Mas a da ESRAM nunca o foi, sendo que a memória só peca por ser escassa. Já referimos aliás que 64 MB, ou idealmente 128 MB, teriam resolvido todos os problemas da Xbox One.

largurabandaXboxOne

Digital Foundry: DirectX 11 vs GNMX vs GNM (as duas variantes do API global da PS4 (o PS4SL é apenas a parte gráfica) - Qual a vossa opinião face aos APIs disponíveis para os criadores com a Xbox One e a PlayStation 4? Na altura do lançamento havia queixas acerca da performance da driver XO e de alguma sobrecarga do CPU no GNMX.

Oles Shishkovstov: Vamos por a coisa desta maneira - já vimos cenários na Xbox One onde um único núcleo de CPU estava totalmente utilizado a fazer chamadas de desenho na (e isso na ‘mono’ driver com várias chamadas de ‘caminho rápido’ utilizadas). Então, o mesmo cenário na PS4, onde era até difícil encontrar essas chamadas de desenho nos gráficos de perfil do CPU, porque eles basicamente não usavam tempo de ocupação nenhum e como consequência eram difíceis de serem vistos.

No geral - Não percebo porque escolheram o DX11 como ponto de partida para a cosnola. É uma consola! Porque haver preocupação com as questões de “Legacy”?? Na PS4, a maior parte dos comandos de GPU são apenas uns DWORD escritos no buffer de comandos, ou seja apenas uns ciclos de relógio. Na Xbox One, facilmente pode ser um milhão de vezes mais lento devido a toda a escrituração que o API faz.

Mas a Microsoft não anda a dormir, a sério! A cada XDK que é lançado, antes e depois do lançamento da Xbox One, há cada vez chamadas de desenho mais e mais rápidas na mesa. Eles adicionaram centenas de caracteristicas para contornar as limitações do DirectX11. Até fizeram um API faça você mesmo ao estilo DirectX 12/GNM - apesar de não o termos usado com o Redux devido a restrições de tempo.

Em tempos aqui na PCManias fomos tremendamente criticados porque achamos imensa piada às frases de Albert Penello quando este referiu “As pessoas tem consciência que a Microsoft possui dos programadores gráficos mais inteligentes DO MUNDO. Nós CRIAMOS o DirectX, o API standard que todos usam“. Mas a realidade é só uma. O DirectX é um API muito, mas mesmo muito pouco optimizado. Tem vindo a melhorar a cada nova versão, mas muito pouco, e comparativamente ao que a PS4 possuía no seu lançamento, o DirectX 11 é, de forma simpática, um API de menor qualidade. E não há outra comparação possível. Esta era uma ideia consensual, e tanto que era que a AMD, vendo o estado em que se encontrava o DirectX avançou com o seu API, o Mantle.

Como já discutimos aqui, na altura do lançamento da Xbox One a situação era bem pior. Apenas alguns programadores (como a Turn 10), tiveram acesso a ao API de baixo nível da Xbox One, sendo que os primeiros jogos da consola usavam praticamente o DX 11 Standard. Essa foi uma situação que se alterou com o tempo, sendo que agora este API de baixo nível está disponível para todos. E a questão da performance foi melhorada, atingindo o seu pico com a libertação da reserva do Kinect que permitiram à Xbox poder agora explorar na sua totalidade os seus 1,31 Gflops teóricos. Da mesma forma a Sony resolveu entretanto o problema das sobrecargas no seu CPU e acredita-se estar igualmente em situação de poder explorar os seus 1,84 Gflops teóricos.

Aqui na PCManias sempre tivemos consciência destas realidades. Daí que quando nas nossas análises referíamos a superioridade da PS4 sobre a Xbox não era meramente pelo Hardware, ou por questões de gosto ou preferências. Era apenas porque… era verdade e dizer o contrário seria enganar. A Xbox One possuía, especialmente com as especificações com que foi lançada, tremendas limitações.

Se as limitações do Hardware nunca poderão ser superadas, as do software podem. E a consola tem vindo a melhorar com a diminuição das limitações do seu software, sendo que, muito certamente, atingirá o pico com o DirectX 12. Esse é um dos motivos pelos quais, e quem nos acompanha saberá, ao longo do tempo tempos vindo a alterar a nossa postura face à consola da Microsoft. A consola está, para todos os efeitos, bem mais apetecível agora do que quando foi lançada. Aliás a minha decisão de compra de uma XBox One aconteceu no momento em que me apercebi que presente API de baixo nível existente na consola estava disponível de forma aberta a todos os programadores, e que finalmente poderíamos começar a ver mais performance e grandes jogos na consola.

Acreditamos aliás que a Microsoft se vai dedicar em pleno a estas optimizações, e extrair dela tudo o que é possível, o que será bem acima do que existe hoje. E diga-se que a XBox One, é cada vez mais uma consola que possui características que a tornam bastante desejável, independentemente das performance ou jogos da concorrência que possam existir.

Eis uma frase de Oles relativamente aos APIs, e que mostra bem as diferenças entre um API de baixo nível e o DirectX 11:

Digital Foundry: A Xbox 360 e a PS3 eram designs ambiciosos para 2006/7. A Xbox One e a PS4 são muito mais viradas para uma construção económica e acessível - Será que possuem o que é preciso para durar tanto como as suas antecessoras?

Oles Shishkovstov: Bem, obviamente que elas não possuem o hardware de topo que podemos comprar nos PCs (apesar que por valores insanos de dinheiro). Mas elas são peças de hardware relativamente bem balanceados que poderão fazer bem acima daquilo que as pessoas estão a obter agora a nível de performance. E não vamos esquecer que a programação perto do metal normalmente significa que se pode obter 2x a performance do PC equivalente. Mas atingir essa performance leva tempo.

Apesar de o DirectX 12 não ir fazer os mesmo milagres na Xbox One que irá fazer no PC, os ganhos existirão. Note-se porém que a realidade de que a equipa fala é a encontrada no API usado para o seu jogo, e não no novo que refere existir, já ao estilo DX 12/GNM, mas que, como podemos ler na questão anterior, não usou por falta de tempo.

É sabido oficialmente, tendo sido referido em congressos e seminários da Microsoft sobre o DX 12 que a Xbox One está a prototipar o DirectX 12. No entanto, como se pode comprovar pela entrevista, ainda há muitos programadores que nos seus projectos, especialmente nestas reconversões, estão a usar versões antigas e menos optimizadas do API, e esse está longe do actual da PS4, particularmente na gestão do CPU.

Digital Foundry: Em que extensão o DX 12 será util na Xbox One? Não há já baixa sobrecarga no CPU quando se dirige ao GPU?

Oles Shishkovstov: Não, é importante!. Todo aquele registo de dependências tira uma boa parte do processamento do CPU. E se falamos de geração de buffers de comando para processamento multi-núcleos - o modelo do DX 11 é basicamente um falhanço, ao passo que o DX 12 deverá corrigir isso.

Naturalmente não era lógico ou coerente que sendo os CPUs de ambas as consolas semelhantes, mas o da Xbox One correndo a 1750 Mhz e o da PS4 a 1600 Mhz, os benchmarks revelassem a PS4 como a consola com o processador mais rápido. Esta situação prende-se com a melhor qualidade do seu API que na altura em que foram conhecidos esses benchmarks, não estando disponível o novo, conseguia acessos baixo nível de menor sobrecarga no CPU que só estão acessíveis na Xbox One com o novo API , e ficarão optimizados na sua totalidade com o lançamento final do DirectX 12.

Mas recorde-se mais uma vez que essa é uma realidade com o API base da consola, o DX 11, e não o será com o novo actualmente existente e referido como sendo ao estilo DirectX 12/GNM, que já oferece à Xbox One muito do que se vai conseguir com a versão final do futuro API.

Seja como for, somente nessa altura ambas as consolas se equivalerão a nível de software, sendo que daí para a frente, para voltarmos às grandes diferenças será preciso que as equipas comecem a explorar o hardware e a tirar partido das consolas como deve ser. Algo que como este programador deixou igualmente a entender, ainda só foi explorado por alguns jogos e de forma algo superficial, pelo que nunca vimos o real potencial de ambas as máquinas

Um situação curiosa que não pode deixar de ser referida é a chamada de atenção da 4Dev para o facto que os 10% de reserva libertados podem traduzir-se, na prática, em ganhos bem mais pequenos. Mas isso é algo que depende do que está implementado no jogo. No presente caso os programadores queriam FPS estáveis, e os 10% só garantiam isso com um aumento de pouco mais de 1% de resolução. Daí que o jogo tenha passado de 900p para 912p, e não mais.

É naturalmente uma situação que depende dos limites já atingidos pela consola. Se por exemplo as larguras de banda estavam já esganadas, mais performance de pouco ou nada vale. E como a reserva que existia era efectuada baseando-se em tempos de ocupação do GPU e não com impedimentos físicos de acesso ao hardware, era possível levar-se alguns componentes ao limite mesmo sem se ter disponível a performance total do GPU.

A totalidade da entrevista está aqui.

Publicidade

  8 Responses to “Entrevista com programadores da 4Dev, dão a conhecer muita da realidade das consolas.”

Comments (8)
  1. Eles confirmaram algo que eu desconfiava, o console foi adiantado pelo menos um ano para não dar vantagem maior ao PlayStation 4. Não é possível que eles planejaram sempre lançar em 2013 se o API ficou pronto no mês passado.
    Eu acredito que a escolha de iniciar com Directx 11 se deve exclusivamente ao fato de que esse era o API que estava pronto para a arquitetura GCN que eles tinham no momento sem virar a casaca e utilizar opengl.
    A Turn 10 deve ter utilizado uma versão beta do DX12 e isso ajuda explicar como forza 5 tem lisos 60 frames sendo um jogo de lançamento mas não tem muitos dos efeitos que forza horizon 2 possui mesmo utilizando a mesma engine.
    Uma vez vi o Sebbbi referenciar que APIs de baixo nivel são tudo o que um bom programador deseja mas ter o controle total pode ser um problema para caras menos experientes. O Directx 11 tem um lado bom, que seria tipo “estou no controle para evitar que você faça besteiras”. Um API de baixo nivel é do tipo “agora é tudo por sua conta em risco”. Para utilizar o API de melhor qualidade precisa ser um profissional de maior qualidade também.

    • O API não ficou pronto no mês passado. Está disponível à uns meses pois os slides da Microsoft que o referem como existente já são de Junho e Forza usou-o no lançamento. O que aconteceu, e isso não é novidade nenhuma, é que a Microsoft foi apanhada de surpresa com as especificações da PS4.
      E recordo que com a Xbox 360 o API de baixo nível não ficou disponível logo.
      De resto é como dizes, o API de baixo nível exige mais conhecimentos dos programadores. Mas a vantagem deles é que o baixo nível é opcional ;)

      • É um modo de dizer por que isso ficou pronto bastante tempo depois do lançamento, eu sei que não foi exatamente no mês passado. O que eu duvido é que tenham planejado o lançamento do Xbox one do jeito que foi, pois os drivers de video foram bastante criticados no período pré lançamento. Não me lembro do Xbox 360 ter algum tipo de critica assim.

  2. Mario, parece que alguém copiou sua notícia e postou no gamevicio:

    http://www.gamevicio.com/i/noticias/197/197221-xbox-one-directx12-ajudara-na-performance-do-console/index.html

    O mais interessante é que o autor da noticia de la copiou meu comentário exatamente com as mesmas palavras que eu escrevi aqui e colocou lá nos comentarios como se fosse dele.

    • Na parte que me toca não me sinto prejudicado. A pessoa seguiu as regras básicas que se pedem para tal.
      Colocou apenas um pedaço pequeno e não a totalidade do post, e citou a fonte.
      Seja como for é uma tristeza que tal aconteça pois a parte foi escolhida do meio e como tal fora de contexto.
      Aliás foi notória a intenção presente na escolha ao se eliminar subtilmente a ultima linha contida nesse mesmo parágrafo.

      Apenas uma nota já que é lá referido num comentário. Eu não uso qualquer tradutor automático. As traduções nas citações são feitas por mim de forma manual pois por vezes perde-se o sentido das coisas na tradução automática. E isto nem sempre é fácil.

      Mas claro, eu não vou sequer dizer lá seja o que for. O forum não tem qualidade.

  3. Agora eu fico imaginando…. se a microsoft tivesse deixa pra lançar o Xbox one em 2014, o ps4 teria uma larga vantagem em vendas. No final das contas com todos os problemas a M$ fez certo em lanças o one em 2013.

    • Nunca tinha pensado nisso! Mas isto até dava para um artigo. Afinal havia implicações para ambos os lados.

    • Na verdade a Sony é que fez muito certo em se antecipar a Microsoft e estar com o console adiantado um ano antes da previsão da Microsoft. Eles copiaram a mesma estratégia que a rival utilizou com o Xbox 360. Assim como a Sony achou que estava no controle antes da geração passada, a Microsoft acreditou que estaria dessa vez. É incrível como uma erra onde a outra acerta e vice e versa, parece que combinam de fazer os mesmos acertos e as mesmas bobagens.

 Leave a Reply

(Obrigatório)

(Obrigatório)


× 3 = dezoito

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>