Na GDC 2024, a AMD anunciou que está adicionando desenhar chamadas e nós de malha como parte de gráficos de trabalho — movendo esses recursos da CPU para a GPU, com o objetivo de melhorar o desempenho dos jogos. A AMD exibiu números de benchmark de Work Graphs com mesh shaders rodando em um RX 7900 XTX, revelando uma melhoria de desempenho de 64% em comparação com Work Graphs normais sem mesh shaders aplicados.
Antes de mergulharmos nesses recursos, o que exatamente são gráficos de trabalho? Eles são um novo Design de renderização baseado em GPU integrado à API Direct3D 12 que permite que a GPU aplique trabalho a si mesma. Em aplicativos habilitados para Work Graph, isso significa que certas partes do pipeline de renderização 3D podem ser controladas e renderizadas na GPU, independentemente da CPU, reduzindo possíveis gargalos e melhorando a eficiência e o desempenho.
Os gráficos de trabalho (ainda) não podem executar tudo na GPU, mas o recurso já pode executar chamadas de despacho, shaders e execuções de nós, todos tradicionalmente controlados pela CPU.
De acordo com Blog aberto de GPU da AMD, Mesh Nodes são uma nova extensão de Work Graphs que introduz um novo tipo de nó folha, que aciona um shader de malha e permite que um PSO gráfico normal seja referenciado a partir do gráfico de trabalho. Mesh Nodes permitem que um gráfico de trabalho seja alimentado diretamente em um Mesh Shader, “transformando o próprio gráfico de trabalho em um shader de amplificação com esteróides”.
Em termos gerais, a integração de mesh shaders com Work Graphs permitiu à AMD tornar os mesh shaders substancialmente mais eficientes pelos motivos discutidos acima. Quanto mais “recursos” de renderização 3D forem portados para Work Graphs, mais eficiente se tornará o pipeline de renderização 3D.
“Os ‘nós de malha’ realmente fecham o ciclo em termos de fornecer uma substituição ponta a ponta para o Execute Indirect e levar adiante o modelo de programação da GPU”, escreve o arquiteto da AMD, Matthäus Chajdas. “Tudo pode ser movido para um único gráfico e executado em um único despacho, tornando muito fácil compor grandes aplicativos a partir de pequenos pedaços. Além disso, problemas como comutação PSO, despachos vazios e gerenciamento de memória buffer simplesmente desaparecem, tornando a GPU completa pipelines controlados por tecnologia acessíveis a muito mais aplicativos e casos de uso do que antes.”
A AMD também introduziu chamadas de desenho como uma função que pode ser usada com Work Graphs. Chamadas de desenho em gráficos de trabalho podem ser processadas de forma assíncrona para aumentar a eficiência da renderização.
Além do benchmark fornecido pela AMD, a AMD também exibiu uma demonstração de um mecanismo 3D rodando ao vivo com Work Graphs combinado com o novo sombreamento de malha e funcionalidade de chamada de desenho anunciada pela AMD.
Esses novos recursos continuam a expandir a funcionalidade dos Work Graphs, permitindo que a GPU execute mais tarefas de renderização sozinha (independentemente da CPU). No futuro, poderemos ver um videogame inteiro sendo renderizado inteiramente na GPU, além da lógica do jogo.