AMD amplia l'SDK de Radeon Cauldron 1.0 a la comunitat de programació que utilitza C ++ simplificat

Maquinari / AMD amplia l'SDK de Radeon Cauldron 1.0 a la comunitat de programació que utilitza C ++ simplificat 4 minuts de lectura

Després d’extenses proves internes i una adopció sorprenentment ràpida, AMD ofereix ara el kit de desenvolupament de programari (SDK) Radeon Cauldron 1.0 a la comunitat de programació. La companyia assegura que el marc no només és altament simplificat, sinó que també és molt versàtil. En altres paraules, l’SDK de Radeon Cauldron és fàcil d’entendre per als principiants. A més, el marc és molt flexible per als programadors que vulguin ampliar-lo amb noves funcions.



AMD ofereix un dels seus productes més populars marcs de desenvolupament de programari a les masses. La primera versió completa i estable de l’SDK de Radeon Cauldron ja està disponible per als programadors. Radeon Cauldron és essencialment una biblioteca de marcs per a prototips ràpids. S'utilitza en mostres i efectes de l'SDK AMD. L'SDK funciona perfectament amb les API Vulkan o Direct3D 12. AMD ha creat tot el marc disponible per descarregar a GitHub , el dipòsit més popular de programari de codi obert que Microsoft va adquirir recentment. Curiosament, AMD també ho ha fet ha penjat un GltfSample . L'aplicació amb un nom estrany s'ha dissenyat, desenvolupat i construït mitjançant el marc Cauldron. Per cert, tots els recursos rellevants per a l'SDK de Radeon Cauldron també estan disponibles a GitHub.

Què és l'SDK de Radeon Cauldron i com impactarà el desenvolupament de programes, aplicacions o jocs?

Radeon Cauldron és essencialment un framework complet o un kit complet de desenvolupament de programari per fer prototips ràpids. S'utilitzarà principalment en mostres i efectes AMD SDK. Com es va esmentar anteriorment, pot funcionar de manera òptima amb Vulkan, que és un API de càlcul i gràfics 3D multiplataforma de baixa sobrecàrrega i multiplataforma preferit. A més, l’SDK també funciona amb l’última versió de Direct3D, que és Direct3D 12.



El SDK de Radeon Cauldron es va llançar per primera vegada internament a AMD. Tot i que s’esperava, la versió inicial va ser excepcionalment acceptada i adoptada pels equips de desenvolupament de programari intern d’AMD. Després del primer projecte pilot, AMD va confirmar que fins i tot altres grups tangencials de la companyia van començar a mostrar interès. Finalment, l'SDK es va convertir en un dels marcs preferits per als equips que gestionaven eines, controladors i fins i tot demostracions de programari i funcions.



AMD proporciona Radeon Cauldron 1.0 a GPUOpen sota la llicència de codi obert MIT. L’empresa ha subratllat reiteradament la facilitat d’entendre el codi i la facilitat d’ampliar-lo. En altres paraules, fins i tot si els programadors experimentats no estan disponibles, els nous usuaris poden desxifrar ràpidament els components múltiples i les seves funcions individuals, així com les dependències. Això hauria de simplificar molt el procés de desenvolupament complex i garantir que tots els usuaris estiguin segurs i còmodes mentre utilitzen el mateix. A més, els programadors poden ampliar el codi de forma ràpida i eficient sense preocupar-se de dificultar la feina passada o trencar alguna cosa en el procés.



El marc és sorprenentment flexible i versàtil, assegura AMD. Les afirmacions semblen certes principalment perquè l'SDK utilitza vainilla C ++. AMD ha desenvolupat el mateix amb un clar objectiu de seguir una filosofia de “una característica, una classe, un fitxer”. No cal mencionar que això significa que els programadors no han de navegar per fitxers complexos i múltiples mentre simplement intenten entendre com funciona una aplicació o una plataforma web. AMD s'ha assegurat que l'SDK de Radeon Cauldron s'adherirà a la forma més senzilla de classes. En altres paraules, sempre que sigui possible, la majoria de les classes implementaran els mètodes següents:

classe MyTechnique

{



bool OnCreate (...); // crea les canonades, geometria estàtica i altres inicialitzacions puntuals

buida OnDestroy (...);

void OnDraw (...) // utilitza els recursos creats per dibuixar la tècnica

}

El SDK de Radeon Cauldron permet dues tècniques necessàries per representar els models glTF 2.0. Tot i que es necessita un per al passi PBR (Representació basada en física), l’altre està destinat al passi només de profunditat. Com a extensió, hi ha dues classes anomenades GltfPbrPass i GltfDepthPass. Les dades d’un model glTF es divideixen en tres fitxers:

  1. GltfCommon, una classe API-agnòstica que carrega i s'encarrega de la transformació i animació de l'escena, inclosa la classe skinnin MyTechnique {bool OnCreate (...); // crea les canonades, la geometria estàtica i altres inicialitzacions puntuals que anul·len OnDestroy (...); void OnDraw (...) // utilitza els recursos creats per dibuixar la tècnica} g.
  2. GltfTexturesAndBuffers, una classe que carrega i manté totes les textures, matrius de skinning i memòria intermèdia de geometria.
  3. GltfPbrPass i GltfDepthPass, dues classes que utilitzen les classes anteriors per representar l’escena amb les tècniques esmentades.

El framework Radeon Cauldron conté tant codi agnòstic gràfic com dependent de gràfics. Per tant, el marc es pot dividir en tres projectes de Visual Studio:

  1. Framework_DX12: com es desprèn del nom, aquesta part pertany al DirectX12. En altres paraules, conté tot el codi Direct3D 12.
  2. Framework_VK: aquesta part conté tot el codi Vulkan rellevant.

Per cert, també hi ha un tercer component, que és comú tant per als tipus de projectes de Visual Studio esmentats anteriorment. Aquesta part s’anomena ‘Framework_Common’. El component comú conté els aspectes següents:

Estructures GLTF

  • Codi de transformació i animació
  • Carregant imatges
  • Maneig de finestres
  • Càmera

El marc Radeon Cauldron admet tècniques de postprocessament com la floració, el desenfocament, el mostreig reduït i el mapatge de tons. L'SDK presenta dos nous sub-membres. Són útils per a la creació d'objectius de renderització temporals:

bool OnCreateWindowSizeDependentResources (...) // crea objectius de renderització temporals necessaris per a l'efecte

void OnDestroyWindowSizeDependentResources (...)

Curiosament, l’AMD Radeon Cauldron 1.0 SDK provat internament permet als programadors implementar coses a un nivell inferior també. Sorprenentment, fins i tot en aquests nivells, poden utilitzar diversos gestors de memòria per garantir que les coses funcionin sense problemes. Alguns dels gestors de memòria que encara funcionen fins i tot a un nivell inferior són els següents:

  • StaticBufferPool: aquest component conté les dades estàtiques. A més, també compta amb subassignació.
  • DynamicBufferRing: es tracta d’un sistema de memòria intermèdia circular. Els programadors poden confiar en això per obtenir memòries intermèdies constants.
  • Textura: permet carregar textures i crear objectius de renderització. Curiosament, el sistema de textures també permet crear vistes per als objectius de renderització.
  • ShaderCompilerHelper: és una potent eina que ajuda a compilar el codi font. El ShaderCompilerHelper també emmagatzema a la memòria cau els fitxers binaris. No cal mencionar que això redueix significativament els temps de càrrega.
  • UploadHeap: aquesta eina permet als programadors subassignar-se des d’un grup de memòria del sistema per carregar dades, que inclou essencialment textures i tampons a una memòria intermèdia de memòria de vídeo.

Com que es tracta d’un SDK de codi obert, AMD insta els primers adoptants externs a provar-ho i oferir els seus comentaris. És molt probable que AMD analitzi el mateix i implementi alguns dels suggeriments per millorar l’SDK de Radeon Cauldron.

Etiquetes amd AMD Navi radeon