DirectX 12 e suas principais novidades

coisasdeti.com.br

Enquanto a indústria de gráficos para PC continua seguindo o caminho das API com pouco overhead, hoje nós iremos trazer novos detalhes em dois recursos significantes do DirectX 12. Esses itens são o Multi-Threaded Command Buffer Recording e os Async Shaders, destinados a fazer uma diferença significante para todos os gamers. Confira abaixo mais informações sobre cada um destes recursos:

Async Shaders

Esse recurso permite que uma engine de jogo execute computações de GPU ou atividades de memória entre os “espaços” na pipeline apresentadas por um jogo.

Embora pareça sensata a decisão de permitir as funções de gráficos, computação e memória de uma GPU funcionarem sincronizadas, as versões anteriores do DirectX não permitiam este recurso, estando limitadas a uma linha de processos para todos os tipos de trabalho. Com isso, as operações de vídeo, processamento e memória precisavam esperar por outras partes das pipelines gráficas ser processada por completo antes de entrarem em operação. O resultado era hardware inativo em alguns momentos, com performance reduzida.

Em contraste, os Async Shaders do DirectX 12 aceleram a conclusão dos trabalhos em uma placa de vídeo AMD Radeon ao intercalar estas tarefas entre múltiplos núcleos para encurtar o tempo total de renderização. Os Async Shaders são muito importantes para os PC Gamers, pois um tempo mais curto na renderização reduz a latência na pipeline, aumentando a performance. Dessa forma, os ambientes de realidade virtual se tornam mais responsivos e os games ganham maior taxa deframes. Ajustes mais finos na organização das tarefas podem aumentar ainda mais o aproveitamento da placa.

Por fim, deve ser entendido que a arquitetura Graphics Core Next da AMD é equipada especificamente para permitir a granularidade dos Async Shaders no DirectX 12, graças ao hardware dedicado conhecido por Asynchronous Compute Engine (ACE). Muitos ACEs serviram como base fundamental para os equipamentos gráficos da AMD, configurados especificamente para acomodar a paralelização de trabalhos complexos com alta performance.

Diagrama da arquitetura da AMD Radeon R9 290X, exibindo oito ACEs prontos para realizar tarefas em Async Shader. Cada produto AMD baseado em GCN tem uma quantidade específica desses ACEs

Multi-Threaded Command Buffer Recording

O buffer de comando é uma espécie de “lista de tarefas” de um jogo, elencando coisas que a CPU precisa reorganizar e apresentar para uma placa AMD Radeon para que o trabalho gráfico seja realizado. Coisas nesta lista podem incluir iluminação, posicionamento de personagens, texturas, reflexos e outros itens.

Os PCs de hoje normalmente vem com CPUs multi-núcleo, tais como processadores AMD da linhaFX ou APUs da série A. Uma das características notáveis das aplicações baseadas em DirectX 11 é que muitos desses cores em qualquer CPU multi-núcleo são parcialmente ou completamente inutilizadas. Essa falta de utilização se deve à relativa inabilidade do DirectX 11 em dividir os comandos de um jogo em pequenas tarefas paralelas.

Além de um multi-threading modesto no DirectX 11, uma quantidade desproporcional de tempo da CPU é desperdiçada no overhead – a interpretação do driver e da API – sob o modelo de programação, deixando menos tempo livre para executar processos do jogo responsáveis pela qualidade e taxa de frames.

No DirectX 12, entretanto, as mudanças se apresentam em cinco aspectos chave:

1. O overhead é constantemente reduzido ao remover códigos de driver e API para qualquer threadde CPU disponível;
2. O tempo absoluto necessário para completar tarefas complexas de CPU é reduzido notavelmente;
3. Cargas de tarefas de jogo podem ser redistribuídas entre CPUs com mais de 4 núcleos;
4. Nova “banda” na CPU permite solicitação de processos mais altos, permitindo jogos mais detalhados e mundos mais imersivos em games;
5. Todos os núcleos da CPU agora podem “se comunicar” simultaneamente à placa gráfica.

A mudança para o DirectX 12 permite mais tráfego em um processador AMD FX, alcançando a placa gráfica em um período de tempo menor. O resultado final é uma performance maior, latência reduzida, imagem de maior qualidade – ou uma junção dos três.

O benefício desse recurso já pode ser visto em jogos de verdade. A Oxide Games e a Stardockcolaboraram com a AMD na criação de Ashes of the Singularity, um jogo de estratégia que utiliza todos os oito núcleos de um processador AMD FX-8370. O objetivo é entregar maior performance, qualidade de imagem e resolução de uma forma que – nas palavras do próprio CEO da desenvolvedora, Brad Wardell – não são “sequer possíveis” no DirectX 11.

Em outras palavras, plataformas com GPUs AMD Radeon e CPUs multi-núcleo da AMD utilizando DirectX 12 estão literalmente permitindo aos desenvolvedores explorarem conceitos de jogos até então impossíveis.

Em resumo

O Multi-Threaded Command Buffer Recording e os Async Shaders são dois grandes recursos de base da especificação do DirectX 12, cada um apresentando grande potencial para extrair significantemente mais desempenho e qualidade de imagem do hardware existente.

Os hardwares da AMD que apresentarão suporte ao DirectX 12 até o momento estão listados abaixo:

– GPUs AMD Radeon R9 Series
– GPUs AMD Radeon R7 Series
– GPUs AMD Radeon R5 240
– 
GPUs AMD Radeon HD 8000 para sistemas OEM (HD 8570 e superiores)
– GPUs AMD Radeon HD 8000 para notebooks
– GPUs AMD Radeon HD 7000 (HD 7730 e superiores)
– GPUs AMD Radeon HD 7000 para notebooks (HD 7730M e superiores)
– APUs AMD da série A4/A6/A8/A10-7000 (codinome “Kaveri“)
– APUs AMD da série A6/A8/A10 PRO-7000 (codinome “Kaveri“)
APUs AMD da série E1/A4/A10 Micro-6000 (codinome “Mullins“)
APUs AMD da série E1/E2/A4/A6/A8-6000 (codinome “Beema“)

via Adrenaline

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *