AMD estende Radeon Cauldron 1.0 SDK para comunidade de programação que usa C ++ simplificado

Hardware / AMD estende Radeon Cauldron 1.0 SDK para comunidade de programação que usa C ++ simplificado 4 minutos lidos

Após extensos testes internos e uma adoção surpreendentemente rápida, a AMD agora oferece o Kit de Desenvolvimento de Software (SDK) Radeon Cauldron 1.0 para a comunidade de programação. A empresa garante que a estrutura não é apenas altamente simplificada, mas também extremamente versátil. Em outras palavras, o Radeon Cauldron SDK é facilmente compreensível para iniciantes. Além disso, a estrutura é amplamente flexível para programadores que procuram estendê-la com novos recursos.



AMD está oferecendo um de seus mais populares frameworks de desenvolvimento de software para as massas. A primeira versão abrangente e estável do Radeon Cauldron SDK já está disponível para programadores. Radeon Cauldron é essencialmente uma biblioteca de framework para prototipagem rápida. É usado em amostras e efeitos do AMD SDK. O SDK funciona perfeitamente com as APIs Vulkan ou Direct3D 12. A AMD fez toda a estrutura disponível para download no GitHub , o repositório mais popular de software de código aberto recentemente adquirido pela Microsoft. Curiosamente, a AMD também carregou um GltfSample . O aplicativo com um nome estranho foi projetado, desenvolvido e construído usando a estrutura do Cauldron. Aliás, todos os recursos relevantes para o Radeon Cauldron SDK também estão disponíveis no GitHub.

O que é Radeon Cauldron SDK e como isso afetará o desenvolvimento de software, aplicativo ou jogo?

O Radeon Cauldron é essencialmente uma estrutura inteira ou um Kit de Desenvolvimento de Software completo para prototipagem rápida. Ele será usado principalmente em amostras e efeitos do AMD SDK. Como mencionado acima, ele pode funcionar perfeitamente com Vulkan, que é uma API de computação e gráficos 3D de plataforma cruzada de baixa sobrecarga preferencial. Além disso, o SDK também funciona com a versão mais recente do Direct3D, que é Direct3D 12.



O Radeon Cauldron SDK foi lançado internamente pela AMD. Embora esperado, o lançamento inicial foi excepcionalmente aceito e adotado pelas equipes internas de desenvolvimento de software da AMD. Após o primeiro projeto piloto, a AMD confirmou que até mesmo outros grupos tangenciais dentro da empresa começaram a mostrar interesse. Eventualmente, o SDK se tornou uma das estruturas preferidas para equipes que lidavam com ferramentas, drivers e até mesmo software e demonstrações de recursos.



A AMD está fornecendo o Radeon Cauldron 1.0 no GPUOpen sob a licença de código aberto do MIT. A empresa enfatizou repetidamente a facilidade de compreensão do código e a facilidade de estendê-lo. Em outras palavras, mesmo que programadores experientes não estejam disponíveis, novos usuários podem decifrar rapidamente os vários componentes e suas funções individuais, bem como as dependências. Isso deve simplificar muito o processo de desenvolvimento complexo e garantir que todos os usuários estejam confiantes e confortáveis ​​ao usar o mesmo. Além disso, os programadores podem estender o código de forma rápida e eficiente sem se preocupar em atrapalhar o trabalho anterior ou quebrar algo no processo.



A estrutura é surpreendentemente flexível e versátil, garante a AMD. As afirmações parecem verdadeiras principalmente porque o SDK usa o vanilla C ++. A AMD desenvolveu o mesmo com o objetivo claro de seguir a filosofia de 'um recurso, uma classe, um arquivo'. Desnecessário mencionar que isso significa que os programadores não precisam navegar em arquivos complexos e múltiplos enquanto simplesmente tentam entender como um aplicativo ou plataforma web funciona. A AMD garantiu que o Radeon Cauldron SDK manterá a forma mais simples de classes. Em outras palavras, sempre que possível, a maioria das classes implementará os seguintes métodos:

classe MyTechnique

{



bool OnCreate (…); // cria os pipelines, a geometria estática e outras inicializações únicas

void OnDestroy (…);

void OnDraw (…) // use os recursos criados para desenhar a técnica

}

O Radeon Cauldron SDK permite duas técnicas que são necessárias para renderizar modelos glTF 2.0. Enquanto um é necessário para o passe PBR (Physically Based Rendering), o outro é destinado ao passe somente profundidade. Como extensão, existem duas classes chamadas GltfPbrPass e GltfDepthPass. Os dados de um modelo glTF são divididos em três arquivos:

  1. GltfCommon, uma classe agnóstica de API que carrega e cuida da transformação e animação da cena, incluindo skinnin class MyTechnique {bool OnCreate (…); // cria os pipelines, geometria estática e outras inicializações únicas void OnDestroy (…); void OnDraw (…) // use os recursos criados para desenhar a técnica} g.
  2. GltfTexturesAndBuffers, uma classe que carrega e mantém todas as texturas, matrizes de skinning e buffers de geometria.
  3. GltfPbrPass e GltfDepthPass, duas classes que usam as classes acima para renderizar a cena com as técnicas mencionadas.

A estrutura do Radeon Cauldron contém código agnóstico e dependente de gráficos. Portanto, a estrutura pode ser dividida em três projetos do Visual Studio:

  1. Framework_DX12: Como fica evidente pelo nome, esta parte pertence ao DirectX12. Em outras palavras, ele contém todo o código Direct3D 12.
  2. Framework_VK: esta parte contém todo o código Vulkan relevante.

Aliás, há um terceiro componente também, que é comum para os dois tipos de projetos do Visual Studio mencionados acima. Esta parte é chamada de ‘Framework_Common’. O componente comum contém os seguintes aspectos:

Estruturas GLTF

  • Código de transformação e animação
  • Carregando imagens
  • Manuseio de janela
  • Câmera

A estrutura Radeon Cauldron oferece suporte a técnicas de pós-processamento, como bloom, blur, downsampling e mapeamento de tons. O SDK apresenta dois novos sub-membros. Eles são úteis na criação de destinos de renderização temporários:

bool OnCreateWindowSizeDependentResources (…) // cria destinos de renderização temporários necessários para o efeito

void OnDestroyWindowSizeDependentResources (…)

Curiosamente, o AMD Radeon Cauldron 1.0 SDK testado internamente permite que os programadores implementem coisas em um nível inferior também. Surpreendentemente, mesmo nesses níveis, eles podem usar vários gerenciadores de memória para garantir que as coisas funcionem perfeitamente. Alguns dos gerenciadores de memória que ainda funcionam mesmo em um nível inferior são os seguintes:

  • StaticBufferPool: este componente contém os dados estáticos. Além disso, também apresenta subalocação.
  • DynamicBufferRing: Este é um sistema de buffer circular. Os programadores podem contar com isso para buffers constantes.
  • Textura: Permite o carregamento de texturas e a criação de alvos de renderização. Curiosamente, o sistema de textura também permite a criação de visualizações para os destinos de renderização.
  • ShaderCompilerHelper: Esta é uma ferramenta poderosa que auxilia na compilação do código-fonte. O ShaderCompilerHelper também armazena em cache os binários. Nem é preciso mencionar que isso diminui significativamente os tempos de carregamento.
  • UploadHeap: Esta ferramenta permite que os programadores subalocem de um pool de memória do sistema para fazer upload de dados, o que essencialmente inclui texturas e buffers para um buffer de memória de vídeo.

Como este é um SDK de código aberto, a AMD está pedindo que os primeiros usuários externos o testem e ofereçam feedback. É bem provável que a AMD analise o mesmo e implemente algumas das sugestões para melhorar o Radeon Cauldron SDK.

Tag amd AMD Navi Radeon