Logo ro.nowadaytechnol.com

AMD Extinde Radeon Cauldron 1.0 SDK Către Comunitatea De Programare Care Folosește C ++ Simplificat

Cuprins:

AMD Extinde Radeon Cauldron 1.0 SDK Către Comunitatea De Programare Care Folosește C ++ Simplificat
AMD Extinde Radeon Cauldron 1.0 SDK Către Comunitatea De Programare Care Folosește C ++ Simplificat

Video: AMD Extinde Radeon Cauldron 1.0 SDK Către Comunitatea De Programare Care Folosește C ++ Simplificat

Video: AMD Extinde Radeon Cauldron 1.0 SDK Către Comunitatea De Programare Care Folosește C ++ Simplificat
Video: CE URMEAZĂ IN RELAȚIA NOASTRĂ? #shorts 2024, Martie
Anonim

După testarea internă extinsă și adoptarea surprinzător de rapidă în cadrul acestuia, 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ă maselor unul dintre cele mai populare cadre de dezvoltare software. 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 pus la dispoziție întregul cadru 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 încărcat și 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 kit 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 de preferat grafică 3D cu platformă redusă, cross-platform și API de calcul. 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 acceptată și adoptată în mod excepțional 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 cu experiență 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ă să se îngrijoreze de îngreunarea muncii anterioare sau de a sparge ceva în acest proces.

Cadrul este surprinzător de flexibil și versatil, asigură AMD. Revendicările par adevărate în primul rând deoarece SDK folosește vanillC ++. AMD a dezvoltat același lucru cu scopul clar de a urma filozofia „o caracteristică, o clasă, un singur fișier”. Inutil să menționăm acest lucru înseamnă că programatorii nu trebuie să navigheze în fișiere complexe și multiple, încercând în același timp 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. Modelul datof glTF este împărțit î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, 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 coduri grafice. 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 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 utiliza 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 din stocul de memorie de sistem pentru a încărca date, care includ în esență texturi, precum și tampoane în memoria tampon 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 SDK-ului Radeon Cauldron.