AMD extinde Radeon Cauldron 1.0 SDK către comunitatea de programare care folosește C ++ simplificat

Hardware / AMD extinde Radeon Cauldron 1.0 SDK către comunitatea de programare care folosește C ++ simplificat 4 minute citite

După testarea internă extinsă și adoptarea surprinzător de rapidă în cadrul acesteia, AMD oferă acum Radeon Cauldron 1.0 Software Development Kit (SDK) comunității de programare. Compania se asigură că cadrul nu este doar foarte simplificat, ci este, de asemenea, remarcabil de versatil. Cu alte cuvinte, Radeon Cauldron SDK este ușor de înțeles pentru începători. Mai mult, cadrul este extrem de flexibil pentru programatorii care doresc să-l extindă cu noi caracteristici.



AMD oferă unul dintre cele mai populare cadre de dezvoltare software la mase. Prima versiune completă și stabilă a Radeon Cauldron SDK este acum disponibilă pentru programatori. Radeon Cauldron este în esență o bibliotecă cadru pentru prototipare rapidă. Este utilizat în eșantioane și efecte AMD SDK. SDK funcționează perfect fie cu API-urile Vulkan, fie cu Direct3D 12. AMD a realizat întregul cadru disponibil pentru descărcare pe GitHub , cel mai popular depozit pentru software open-source care a fost achiziționat recent de Microsoft. Interesant este că AMD a și avut a încărcat un GltfSample . Aplicația numită ciudat a fost proiectată, dezvoltată și construită folosind cadrul Cauldron. De altfel, toate resursele relevante pentru Radeon Cauldron SDK sunt disponibile și pe GitHub.

Ce este Radeon Cauldron SDK și cum va avea impact asupra dezvoltării de software, aplicații sau jocuri?

Radeon Cauldron este în esență un întreg cadru sau un set complet de dezvoltare software pentru prototipare rapidă. Acesta va fi utilizat în principal în eșantioane și efecte AMD SDK. Așa cum s-a menționat mai sus, poate funcționa optim cu Vulkan, care este o grafică 3D și API de calcul cu multiplată platformă redusă preferată. Mai mult, SDK funcționează și cu cea mai recentă versiune a Direct3D, care este Direct3D 12.



Radeon Cauldron SDK a fost lansat pentru prima dată pe plan intern la AMD. Deși era de așteptat, lansarea inițială a fost excepțional acceptată și adoptată de echipele interne de dezvoltare software AMD. După primul proiect pilot, AMD a confirmat că și alte grupuri tangențiale din cadrul companiei au început să arate interes. În cele din urmă, SDK a devenit unul dintre cadrele preferate pentru echipele care se ocupau de instrumente, drivere și chiar demonstrații de software și caracteristici.



AMD furnizează Radeon Cauldron 1.0 pe GPUOpen sub licența open source MIT. Compania a subliniat în repetate rânduri ușurința înțelegerii codului și ușurința extinderii acestuia. Cu alte cuvinte, chiar dacă programatorii experimentați nu sunt disponibili, utilizatorii noi pot descifra rapid componentele multiple și funcțiile lor individuale, precum și dependențele. Acest lucru ar trebui să simplifice foarte mult procesul de dezvoltare complexă și să asigure că toți utilizatorii sunt încrezători și confortabili în timp ce utilizează același lucru. Mai mult, programatorii pot extinde rapid și eficient codul, fără a se îngrijora că vor împiedica munca anterioară sau că vor rupe ceva în acest proces.



Cadrul este surprinzător de flexibil și de versatil, asigură AMD. Afirmațiile par adevărate în primul rând deoarece SDK folosește vanilie C ++. AMD a dezvoltat același lucru cu scopul clar de a urma o filozofie „o caracteristică, o clasă, un fișier”. Inutil să menționăm acest lucru înseamnă că programatorii nu trebuie să navigheze în fișiere complexe și multiple, încercând pur și simplu să înțeleagă cum funcționează o aplicație sau o platformă web. AMD s-a asigurat că Radeon Cauldron SDK va rămâne la cea mai simplă formă de clase. Cu alte cuvinte, ori de câte ori este posibil, majoritatea claselor vor implementa următoarele metode:

clasa Tehnica mea

{



bool OnCreate (...); // creează conductele, geometria statică și alte inițializări unice

void OnDestroy (...);

void OnDraw (...) // folosiți resursele create pentru a desena tehnica

}

Radeon Cauldron SDK permite două tehnici necesare pentru redarea modelelor glTF 2.0. În timp ce unul este necesar pentru trecerea PBR (Redare bazată fizic), cealaltă este destinată permisului pentru adâncime. Ca extensie, există două clase numite GltfPbrPass și GltfDepthPass. Datele unui model glTF sunt împărțite în trei fișiere:

  1. GltfCommon, o clasă API-agnostică care încarcă și se ocupă de transformarea și animația scenei, incluzând clasa skinnin MyTechnique {bool OnCreate (...); // creează conductele, geometria statică și alte inițializări unice, anulează OnDestroy (...); void OnDraw (...) // folosiți resursele create pentru a desena tehnica} g.
  2. GltfTexturesAndBuffers, o clasă care încarcă și deține toate texturile, matricile de jupuire și tampoanele de geometrie.
  3. GltfPbrPass și GltfDepthPass, două clase care utilizează clasele de mai sus pentru a reda scena cu tehnicile menționate.

Cadrul Radeon Cauldron conține atât coduri grafice-agnostice, cât și grafice dependente. Prin urmare, cadrul poate fi împărțit în trei proiecte Visual Studio:

  1. Framework_DX12: După cum reiese din nume, această parte se referă la DirectX12. Cu alte cuvinte, conține tot codul Direct3D 12.
  2. Framework_VK: Această parte conține tot codul Vulkan relevant.

De altfel, există și o a treia componentă, care este comună atât pentru tipurile de proiecte Visual Studio menționate mai sus. Această parte se numește „Framework_Common”. Componenta comună conține următoarele aspecte:

Structuri GLTF

  • Cod de transformare și animație
  • Se încarcă imagini
  • Manevrarea ferestrelor
  • aparat foto

Cadrul Radeon Cauldron acceptă tehnici de post-procesare, cum ar fi inflorirea, estomparea, eșantionarea și maparea tonurilor. SDK introduce doi noi sub-membri. Acestea sunt utile în crearea țintelor de redare temporare:

bool OnCreateWindowSizeDependentResources (...) // creează ținte de redare temporare necesare pentru efect

void OnDestroyWindowSizeDependentResources (...)

Interesant este că testul intern AMD Radeon Cauldron 1.0 SDK permite programatorilor să implementeze lucruri și la un nivel inferior. În mod surprinzător, chiar și la aceste niveluri, aceștia pot folosi mai mulți manageri de memorie pentru a se asigura că lucrurile rulează fără probleme. Unii dintre administratorii de memorie care încă funcționează chiar și la un nivel inferior sunt după cum urmează:

  • StaticBufferPool: Această componentă deține datele statice. Mai mult, are și subalocare.
  • DynamicBufferRing: Acesta este un sistem tampon circular. Programatorii se pot baza pe aceasta pentru tampoane constante.
  • Textură: permite încărcarea texturilor și crearea țintelor de redare. Interesant este că sistemul Texture permite și crearea de vizualizări pentru țintele de redare.
  • ShaderCompilerHelper: Acesta este un instrument puternic care ajută la compilarea codului sursă. De asemenea, ShaderCompilerHelper memorează în cache binarele. Inutil să menționăm, acest lucru reduce semnificativ timpul de încărcare.
  • UploadHeap: Acest instrument permite programatorilor să subaloce dintr-un pool de memorie de sistem pentru a încărca date, care includ în esență texturi, precum și tampoane într-un buffer de memorie video.

Deoarece acesta este un SDK open-source, AMD solicită adoptatorilor din străinătate să testeze același lucru și să ofere feedback-ul lor. Este destul de probabil ca AMD să analizeze același lucru și să implementeze unele dintre sugestiile pentru îmbunătățirea Radeon Cauldron SDK.

Etichete amd AMD Navi radeon