No final do mês de setembro, a AMD reuniu a imprensa para apresentar a sua nova linha de placas de vídeo. Entre informações de modelos, preços, nomenclatura, efeitos especiais e muito marketing, um novo recurso quase passou despercebido da plateia que acompanhava o evento.
Trata-se do Mantle, uma nova API gráfica de baixo nível que promete revolucionar o modo como as placas de vídeo da AMD trabalham.
A linguagem de baixo nível não é exatamente uma novidade, mas a sua utilização em APIs gráficas ainda é controversa. A novidade é que a AMD está amparada pela DiCE e pela poderosa engine Frostbite, o motor de Battlefield 4, e, segundo ela, apesar dos problemas de compatibilidade que uma API de baixo nível pode proporcionar, o recurso foi implementado devido a insistentes exigências dos desenvolvedores, que buscam um modo mais eficiente de criar jogos para PC.
Programação de alto e baixo nível
Antes de prosseguir, vamos entender a diferença entre programação de alto e baixo nível. A programação de baixo nível está diretamente relacionada com a arquitetura de hardware. Desse modo, é possível entender que, para que uma API gráfica de baixo nível possa funcionar, é necessário conhecer exatamente como o hardware trabalha.
Graças a isso, é possível enviar instruções diretamente para o hardware. Esse tipo de programação elimina a necessidade de interpretadores, tornando-se muito mais eficiente. É uma linguagem mais “direta” e sem abstrações.
A programação de alto nível possui muita abstração, ou seja, ela não está ligada diretamente à arquitetura do computador. Deste modo, quando um programador utiliza uma linguagem de alto nível, ele não precisa saber exatamente para qual hardware ele vai escrever aquele código, uma vez que isso não tem muita importância no momento.
Isso faz com que os aplicativos sejam compatíveis com um grande número de hardwares diferentes. Entretanto, essa compatibilidade tem um lado negativo: como os programas precisam de muito mais camadas de código (para garantir a compatibilidade), sua execução acaba se tornando mais lenta e “pesada”.
O que é uma API gráfica?
A sigla API vem de Application Programing Interface. O que ela faz, genericamente falando, é oferecer um conjunto de instruções padrão sobre como um programa pode trabalhar com outro.
As APIs gráficas funcionam do mesmo modo, fazendo a ponte entre o jogo e o driver de vídeo. Imagine que o jogo quer renderizar uma cena. Para isso, ele precisa de 10 triângulos. O título conversa com a API gráfica, que vai até o driver de vídeo e faz essa solicitação de um modo que a GPU possa realizar essa tarefa.
As principais APIs gráficas que temos hoje no mercado, Direct3D e OpenGL, permitem que os desenvolvedores possam criar aplicativos que rodem em uma grande variedade de hardware, pois os jogos são programados para conversar com a API gráfica, e não com a placa de vídeo diretamente.
Direct3D e OpenGL
Tanto o DirectX quanto o OpenGL servem para o mesmo propósito, mas funcionam de modo particular com vantagens e desvantagens. Ao planejar a criação de um jogo, os desenvolvedores levam em conta qual dessas linguagens vai favorecer mais o seu trabalho e escolhem a engine gráfica mais adequada.
Pipeline OpenGL. (Fonte da imagem: Reprodução/Wikimedia)
O OpenGL é de código aberto e multiplataforma, o que significa que jogos criados com essa linguagem podem rodar em PC, Mac ou Linux. O DirectX, por outro lado, é de código fechado e exclusivo de plataformas Windows.
O que essas duas linguagens têm em comum é que ambas são APIs gráficas de alto nível, ou seja, para garantir a compatibilidade com o máximo absoluto de placas de vídeo disponíveis no mercado, é preciso incluir uma camada de abstração entre a elas e a placa de vídeo, sacrificando o desempenho.
Porque todas as APIs não são de baixo nível?
A parte ruim desse processo é que, para desenvolver jogos utilizando uma API de baixo nível, é preciso conhecer o hardware que vai executar o código. Esse sistema funciona perfeitamente em um console, pois o hardware é fechado. Se um jogo é feito para rodar no PlayStation 3, ele vai rodar em todos os PlayStations 3 existentes no mercado.
Já nos PCs, a situação é diferente, ou seja, a combinação de placas de vídeo e demais componentes é muito grande, o que acaba obrigando os desenvolvedores a utilizarem as APIs de alto nível para garantir a compatibilidade de seus aplicativos com o hardware disponível no mercado.
E esse “desperdício” de recursos em prol da compatibilidade não é pequeno nos computadores. De acordo com Richard Huddy, ex-gerente da divisão de GPUs da AMD, uma placa de vídeo top atual possui facilmente cerca de dez vezes (ou até mais) mais potência que um PlayStation 3 ou um Xbox 360. Mesmo assim, não se vê por aí jogos dez vezes mais avançados graficamente. E a culpa disso é das APIs de alto nível.
(Fonte da imagem: Divulgação/Microsoft)
Segundo Huddy, ao liberar todo o poder do hardware para os desenvolvedores, as companhias estariam libertando eles de suas amarras, permitindo a inovação completa no setor:
“Envolver [o jogo] em uma camada de software lhe dá segurança e proteção, mas, infelizmente, tende a roubar-lhe um monte de desempenho e, o mais importante, rouba-lhe a oportunidade de inovar”.
Richard também deixa um exemplo prático de como o DirectX pode impactar no desempenho de um aplicativo: “Nos consoles, é possível criar 10 ou até 20 mil conjuntos geométricos [draws] em um único quadro, e você pode fazer isso em 30-60 fps. Em um PC, você não pode chamar mais de 2 ou 3 mil [conjuntos] sem ter problemas de desempenho”.
Esses chamados, ou draws, são quantos objetos podem ser renderizados na tela simultaneamente. Quanto mais draws são executados ao mesmo tempo, mais detalhadas são as imagens exibidas na tela.
(Fonte da imagem: Divulgação/Sony)
Ao trabalhar com uma API de baixo nível, é possível ter muito mais draws simultâneos, o que consequentemente aumenta exponencialmente o poder da GPU mesmo que não exista uma melhora significativa no hardware. Segundo a AMD, o Mantle é capaz de fazer até nove vezes mais draws por segundo que o DirectX 11, por exemplo.
Mantle API: programação de baixo nível nos PCs
Para tentar mudar as regras do jogo, a AMD está introduzindo o Mantle, uma nova API de programação gráfica de baixo nível, desenvolvida especialmente para trabalhar com o Graphics Core Next, o motor que movimenta as placas de vídeo Radeon da série HD 7000 para cima.
O conceito do Mantle é justamente “libertar” a GPU das amarras e permitir que os desenvolvedores possam aproveitar mais o poder dos computadores modernos. Mas como a AMD pretende fazer isso funcionar?
É aqui que entra na jogada o fato de a AMD estar trabalhando com a Nintendo, a Sony e a Microsoft na nova geração. A empresa é a responsável por fornecer os chips que movimentam esses consoles — e esses chips são baseados na arquitetura Graphics Core Next. Desse modo, é a AMD que precisa criar a API gráfica e o hardware dessas plataformas.
É claro que o hardware e as APIs presentes em todos os consoles é particular de cada um deles, mas é ingenuidade acreditar que a AMD recriou 100% do zero a arquitetura de cada um dos três.
(Fonte da imagem: Divulgação/AMD)
É de conhecimento de todos que os consoles são plataformas otimizadas. Eles trabalham com programação de baixo nível, pois isso, além de mais prático, permite que os desenvolvedores consigam atingir o máximo de performance. Isso é possível porque o hardware de um console, diferentemente de um PC, é fixo. Mas e como levar isso para os computadores?
A AMD está apostando alto em sua parceria com a Sony, a Microsoft e a Nintendo. A empresa acredita que, ao criar uma API de baixo nível, será possível garantir muito mais compatibilidade entre todas essas plataformas, nivelando o desenvolvimento de jogos entre elas.
Isso pode garantir que os desenvolvedores criem ports dos games de Xbox One para o PC, por exemplo, sem precisar modificar completamente o código, utilizando inclusive partes da programação em baixo nível utilizada no console.
De acordo com a AMD, os desenvolvedores pediram uma ferramenta assim, por isso surgiu o Mantle. Mas será que, agora que seus desejos foram atendidos, eles vão embarcar nessa? Alguns, como a DiCE, já embarcaram. A empresa garante que Battlefield 4 e a Engine Frostbite 3 são completamente otimizados para a nova API da AMD, o que significa que o game não vai precisar do DirectX 11 para rodar nos computadores que tiverem placas de vídeo Radeon compatíveis com o Mantle.
(Fonte da imagem: Divulgação/AMD)
E o desempenho impressiona. Durante o evento GPU14, que apresentou o Mantle pela primeira vez, a empresa exibiu o game Battlefield 4 rodando em resolução 5760x1080 (com três monitores ao mesmo tempo) a 60 quadros por segundo, sem apresentar slowdowns em nenhum momento. E o mais impressionante é que, para fazer isso, a empresa utilizou apenas uma placa Radeon R9 290X.
O problema é que, se um jogo for desenvolvido para o Mantle, ele precisará ser compatível também com o DirectX ou o OpenGL, caso contrário não vai rodar nas placas de vídeo NVIDIA ou Intel. Isso vai significar aos desenvolvedores a necessidade de trabalhar com duas linhas de programação simultâneas para o mesmo game, e isso pode significar um custo maior de desenvolvimento.
Desempenho versus compatibilidade
O maior problema é a mudança brusca no sistema de desenvolvimento dos aplicativos. Como convencer toda a indústria de games que o seu sistema, mesmo que comprovadamente mais eficiente, será adotado pelo público, ainda mais, quando a adoção dessa nova tecnologia significa aumentar os custos de produção dos estúdios? O fato de estar em segundo lugar no mercado de GPUs também não ajuda muito a AMD nesse quesito.
É aí que entra a parceria forte com a Nintendo, a Sony e a Microsoft. Ao estar presente em todas as plataformas da nova geração, a AMD tem uma oportunidade única: nivelar o mercado de games com a sua arquitetura.
Para os desenvolvedores de jogos, portar de um console para o outro e, principalmente para o PC, passa a ser uma tarefa incrivelmente mais simples com o Mantle. É claro que não é tão simples como simplesmente dar CTRL+C, CTRL+V no código de uma plataforma para outra, mas não será mais preciso reescrever o código praticamente do zero na hora de portar um título.
(Fonte da imagem: Divulgação/AMD)
Apesar disso, o Mantle é apenas uma ferramenta a mais na nova geração Radeon. A empresa já garantiu compatibilidade total com DirectX 11.2 e OpenGL e, mesmo que o Mantle não seja adotado pela indústria, os jogos continuarão funcionando nas placas da AMD. Que, inclusive, já se mostraram capazes.
Em testes recentes, a Radeon R9 290X supera a GeForce GTX Titan, apresentando um desempenho superior em diversas situações. Vale lembrar que em nenhuma dessas situações o Mantle foi utilizado.
Mantle wrapper: opção para GPUs não GCN?
O Mantle está sendo desenvolvido especialmente para as placas de vídeo compatíveis com o Graphics Core Next da AMD. Ou seja, se a sua placa de vídeo for NVIDIA, pode esquecer. Isso pode acabar obrigando os desenvolvedores a ter trabalho dobrado na hora de criar os jogos.
Entretanto, existe uma técnica que pode auxiliar os programadores, eliminando a necessidade de ter todo esse trabalho. Basta que a AMD crie um wrapper, ou seja, um software destinado a “traduzir” as instruções do Mantle para outra API gráfica, como o DirectX. Com isso, a compatibilidade estaria garantida, mas, novamente, em detrimento do desempenho.
Entretanto, talvez a empresa não adote esse tipo de ferramenta. De acordo com a DiCE, o game Battlefield 4 — um dos “garotos propaganda” do Mantle — está sendo desenvolvido para ambas as APIs: Mantle e DirectX 11.
Quantos games vão suportar o Mantle?
Quando falamos em cortar a compatibilidade, a primeira coisa que deve vir à mente dos desenvolvedores é que vão existir menos clientes em potencial. Consequentemente, menos dinheiro disponível para os estúdios. E, quando falamos em menos dinheiro, falamos em um índice de rejeição potencialmente grande para os estúdios.
Isso pode significar uma rejeição inicial ao Mantle, já que possivelmente poucos terão coragem (ou capital) de serem os “primeiros” a embarcar nessa nova arquitetura. Sendo assim, até que o sistema se mostre realmente eficiente, poucos títulos devem ser compatíveis com ele, pelo menos no início. Situação que deve se reverter rapidamente, caso o Mantle se prove ser mesmo um sucesso e caia no gosto do público.
(Fonte da imagem: Reprodução/BJ)
Entretanto, podemos encarar isso com outra perspectiva. Sabemos que tanto o Xbox One quanto o PlayStation 4 utilizam hardware AMD e são, em teoria, similares por dentro, mesmo que cada um utilize uma API gráfica particular e diferente.
Seguindo essa linha de raciocínio, é possível imaginar que, pelo menos em teoria, todos os games desenvolvidos para o Xbox One e para o PlayStation 4 podem ser compatíveis com o Mantle e podem ser portados para o PC com facilidade, o que pode aumentar rapidamente a biblioteca de jogos compatíveis com o sistema nos computadores.
Jogos de qualidade incomparável sem precisar de uma placa de vídeo dedicada
Há algum tempo, a AMD lançou as APUs. A sigla vem do termo em inglês Accelerated Processing Unit, que significa Unidade de Processamento Acelerada. O que ela tem de diferente em relação aos processadores normais é que traz, no mesmo encapsulamento, CPU e GPU, oferecendo muito mais velocidade de processamento gráfico.
Apesar de as APUs trazerem o vídeo integrado, esse tipo de solução é diferente do modelo anterior de chips gráficos onboard em que o chipset gráfico ficava na placa-mãe e tinha algumas de suas funções controladas pelo processador principal.
A maior vantagem é a velocidade de comunicação entre CPU e GPU, aumentando significativamente o tempo de resposta e, consequentemente, melhorando o sistema como um todo.
(Fonte da imagem: Divulgação/AMD)
O chip gráfico embutido nessas APUs é compatível com o Graphics Core Next, o que significa compatibilidade com o Mantle. Seguindo esse raciocínio, podemos esperar notebooks extremamente simples e baratos rodando jogos de última geração com a mesma (ou mais) qualidade que um desktop dedicado para os jogos.
Já que falamos deles, que tal montar uma máquina gamer poderosa com apenas uma fração do preço que pagamos atualmente? Isso pode se tornar realidade com o Mantle, uma vez que sistemas mais otimizados podem garantir mais desempenho bruto com menos recursos de hardware.
Concorrência com Sony e Microsoft
Mas nem tudo são flores para a AMD. Apesar de ter firmado parceria comercial com a Sony e com a Microsoft, a AMD pode enfrentar um pouco de hostilidade por parte delas. Quem citou essa possibilidade foi John Carmack, desenvolvedor experiente e criador de Doom. Segundo ele, o Mantle pode impulsionar muito o recém-anunciado SteamOS, da Valve, tirando parte das vendas dos consoles.
Outro sistema que pode entrar em xeque é o DirectX: se o Mantle provar que é mesmo muitas vezes mais eficiente que a API da Microsoft, como a AMD afirma, é difícil não ficar do lado da AMD nessa disputa, já que o salto de desempenho seria incrivelmente grande.
Os desenvolvedores Indie também devem se focar cada vez mais no OpenGL, uma vez que essa linguagem permite a facilidade de port dos jogos entre PC, Mac, Linux SteamOS, iOS e Android, algo que o DirectX não permite, já que ele é compatível apenas com o Windows.
Em teoria, o Mantle também pode ser portado para outras plataformas que não o Windows. Isso inclui Mac, Linux e até mesmo o recém-anunciado SteamOS.
O fim do Windows como plataforma dominante de jogos?
Considerando essas hipóteses, não é difícil imaginar que o Windows pode acabar deixando de ser a plataforma dominante para jogos de PC. E isso, certamente, não agradaria muito à empresa de Redmond, o que poderia minar o bom relacionamento entre as companhias.
Você pode argumentar que o OpenGL existe há muito tempo e é multiplataforma, mas nem por isso o DirectX deixou de dominar o mercado. Sim, isso é verdade. A diferença é que o Mantle pode provocar uma mudança estrutural muito maior que o OpenGL no desenvolvimento dos jogos, o que poderia justificar um risco maior por parte dos desenvolvedores.
E se a NVIDIA também decidir lançar a sua própria API de baixo nível?
Se o Mantle for mesmo tão poderoso quanto a AMD promete, o hardware da NVIDIA pode acabar ficando defasado rapidamente, colocando a saúde da companhia em jogo. Em teoria, placas de entrada da AMD que custam US$ 99 podem passar a ameaçar gigantes como a Titan, que custa US$ 999 em termos de desempenho nos jogos.
Isso pode fazer com que a NVIDIA também decida lançar a sua própria API de baixo nível, o que acabaria levando o mercado de games para PC a uma fragmentação extremamente desagradável e deixaria o ecossistema frágil para todos.
(Fonte da imagem: Divulgação/NVIDIA)
Entretanto, é difícil imaginar que a empresa faça isso, uma vez que sua política de desenvolvimento é diferente daquela proposta pela AMD.
Outra hipótese é de que a NVIDIA faça pressão junto aos desenvolvedores, injetando dinheiro nas companhias e obrigando os estúdios a abandonar o desenvolvimento do Mantle. A companhia também pode baixar o preço de suas GPUs para conseguir competir em pé de igualdade.
O Mantle pode ser um fracasso completo?
Assim como existem pessoas a favor do Mantle, outros apostam que a iniciativa da AMD não vai dar certo. O principal argumento é o custo: empresas precisam de mais dinheiro para investir no desenvolvimento de uma API direcionada a uma pequena parcela de mercado. Isso é viável? Segundo os críticos do sistema, não.
Principalmente porque os estúdios buscam lucro com os jogos, apenas isso, e, por mais que a indústria tenha desenvolvedores apaixonados pelo que fazem, sua principal motivação continua sendo o dinheiro: e isso não deixa espaço para riscos não planejados.
Veja a situação do ponto de vista de um estúdio: se você é um desenvolvedor com um orçamento limitado, sabe que a arquitetura dominante é o DirectX, você investiria tempo e dinheiro, se arriscando em um mercado que só existirá para as placas de vídeo da AMD?
O Mantle vai dar certo?
Certamente, isso ainda é muito cedo para dizer, principalmente porque a AMD não liberou maiores detalhes sobre como essa arquitetura vai realmente funcionar. De qualquer modo, pelo que foi dito até agora, a proposta parece ser extremamente promissora, principalmente se levarmos em conta o fato (quase absurdo) de termos computadores incrivelmente poderosos apresentando resultados iguais a consoles produzidos há mais de oito anos.
(Fonte da imagem: Divulgação/AMD)
Se a AMD conseguir mesmo “libertar” o poder das GPUs poderemos entrar em uma nova fase de jogos para computador, em que teremos gráficos dezenas de vezes superiores aos dos consoles, ou seja, poderíamos aproveitar o poder de nossas máquinas sem ter o “freio de mão” puxado.
Estamos entrando em uma nova geração de consoles, com novas propostas, como o SteamOS, e uma nova batalha está prestes a reacender a disputa entre AMD e NVIDIA. Será que o reinado da GeForce está prestes a chegar ao fim? Ainda não sabemos, mas uma coisa é certa: já estava mais que na hora termos uma bela de uma sacudida no modelo de placas de vídeo atual.
Concorrência é sempre saudável para o mercado e, no final, quem ganha somos nós.
Categorias