AMD udvider Radeon Cauldron 1.0 SDK til programmeringsfællesskab, der bruger forenklet C ++

Hardware / AMD udvider Radeon Cauldron 1.0 SDK til programmeringsfællesskab, der bruger forenklet C ++ 4 minutter læst

Efter omfattende intern test og overraskende hurtig vedtagelse inden for tilbyder AMD nu Radeon Cauldron 1.0 Software Development Kit (SDK) til programmeringssamfundet. Virksomheden forsikrer, at rammen ikke kun er meget forenklet, men den er også bemærkelsesværdig alsidig. Med andre ord er Radeon Cauldron SDK let forståelig for begyndere. Desuden er rammen meget fleksibel for programmører, der ønsker at udvide den med nye funktioner.



AMD tilbyder en af ​​sine mest populære rammer for softwareudvikling til masserne. Den første omfattende og stabile udgivelse af Radeon Cauldron SDK er nu tilgængelig for programmører. Radeon Cauldron er i det væsentlige et rammebibliotek til hurtig prototyping. Det bruges i AMD SDK-prøver og effekter. SDK fungerer problemfrit med enten Vulkan eller Direct3D 12 API'erne. AMD har lavet hele rammen tilgængelig til download på GitHub , det mest populære lager til open source-software, der for nylig blev erhvervet af Microsoft. Interessant nok har AMD også uploadet en GltfSample . Den underligt navngivne app er designet, udviklet og bygget ved hjælp af Cauldron-rammen. I øvrigt er alle relevante ressourcer til Radeon Cauldron SDK også tilgængelige på GitHub.

Hvad er Radeon Cauldron SDK, og hvordan påvirker det software-, app- eller spiludvikling?

Radeon Cauldron er i det væsentlige en hel ramme eller et komplet softwareudviklingssæt til hurtig prototyping. Det vil primært blive brugt i AMD SDK-prøver og effekter. Som nævnt ovenfor kan det fungere optimalt med Vulkan, som er en foretrukken 3D-grafik- og computing-API med lav overhead, platforme. Desuden fungerer SDK også med Direct3Ds nyeste version, som er Direct3D 12.



Radeon Cauldron SDK blev først frigivet internt hos AMD. Selvom det var forventet, blev den oprindelige udgivelse undtagelsesvis accepteret og vedtaget af AMDs interne softwareudviklingsteam. Efter det første pilotprojekt bekræftede AMD, at selv andre tangentielle grupper inden for virksomheden begyndte at vise interesse. Til sidst blev SDK en af ​​de foretrukne rammer for hold, der håndterede værktøjer, drivere og endda software og har demonstrationer.



AMD leverer Radeon Cauldron 1.0 på GPUOpen under MIT open source-licensen. Virksomheden har gentagne gange understreget, hvor let det er at forstå koden, og hvor let det er at udvide den. Med andre ord, selvom erfarne programmører ikke er tilgængelige, kan nye brugere hurtigt dechiffrere de mange komponenter og deres individuelle funktioner samt afhængigheder. Dette skulle i høj grad forenkle processen med kompleks udvikling og sikre, at alle brugere er trygge og komfortable, mens de bruger det samme. Desuden kan programmører hurtigt og effektivt udvide koden uden at bekymre sig om at hæmme tidligere arbejde eller bryde noget i processen.



Rammen er overraskende fleksibel og alsidig, forsikrer AMD. Påstandene synes primært at være sande, fordi SDK bruger vanille C ++. AMD har udviklet det samme med et klart mål at følge en filosofi om 'en funktion, en klasse, en fil'. Naturligvis betyder det, at programmører ikke behøver at navigere i komplekse og flere filer, mens de blot prøver at forstå, hvordan en applikation eller en webplatform fungerer. AMD har sørget for, at Radeon Cauldron SDK holder fast ved den enkleste form for klasser. Med andre ord, hvor det er muligt, vil de fleste klasser implementere følgende metoder:

klasse MyTechnique

{



bool OnCreate (…); // opretter rørledninger, statisk geometri og andre engangsinitialiseringer

void OnDestroy(…);

ugyldigt OnDraw (...) // brug de oprettede ressourcer til at tegne teknikken

}

Radeon Cauldron SDK tillader to teknikker, der er nødvendige for at gengive glTF 2.0-modeller. Mens den ene er nødvendig til PBR-passet (Physically Based Rendering), er den anden beregnet til Pass-Only-dybden. Som en udvidelse er der to klasser kaldet GltfPbrPass og GltfDepthPass. Dataene for en glTF-model er opdelt i tre filer:

  1. GltfCommon, en API-agnostisk klasse, der indlæser og tager sig af transformation og animation af scenen, inklusive skinnin klasse MyTechnique {bool OnCreate (...); // opretter rørledninger, statisk geometri og andre engangsinitialiseringer ugyldige OnDestroy (…); ugyldigt OnDraw (…) // brug de oprettede ressourcer til at tegne teknikken} g.
  2. GltfTexturesAndBuffers, en klasse, der indlæser og opbevarer alle teksturer, skinningmatricer og geometri-buffere.
  3. GltfPbrPass og GltfDepthPass, to klasser, der bruger ovenstående klasser til at gengive scenen med de nævnte teknikker.

Radeon Cauldron-rammen indeholder både grafik-agnostisk og grafikafhængig kode. Derfor kan rammen opdeles i tre Visual Studio-projekter:

  1. Framework_DX12: Som det fremgår af navnet, vedrører denne del DirectX12. Med andre ord indeholder den al Direct3D 12-koden.
  2. Framework_VK: Denne del indeholder al den relevante Vulkan-kode.

I øvrigt er der også en tredje komponent, som er almindelig for begge de typer Visual Studio-projekter, der er nævnt ovenfor. Denne del kaldes 'Framework_Common'. Den fælles komponent indeholder følgende aspekter:

GLTF strukturer

  • Transformation og animationskode
  • Indlæser billeder
  • Vindueshåndtering
  • Kamera

Radeon Cauldron-rammen understøtter efterbehandlingsteknikker som blomstring, sløring, downsampling og tonekortlægning. SDK introducerer to nye undermedlemmer. Disse er nyttige ved oprettelsen af ​​midlertidige gengivelsesmål:

bool OnCreateWindowSizeDependentResources (…) // skaber midlertidige gengivelsesmål, der er nødvendige for effekten

void OnDestroyWindowSizeDependentResources(…)

Interessant er det, at den internt testede AMD Radeon Cauldron 1.0 SDK tillader, at programmører også implementerer ting på et lavere niveau. Overraskende nok, selv på disse niveauer, kan de bruge flere hukommelsesadministratorer til at sikre, at tingene kører problemfrit. Nogle af hukommelsesadministratorerne, der stadig fungerer selv på et lavere niveau, er som følger:

  • StaticBufferPool: Denne komponent indeholder de statiske data. Desuden har den også underallokering.
  • DynamicBufferRing: Dette er et cirkulært buffersystem. Programmører kan stole på dette for konstante buffere.
  • Tekstur: Tillader indlæsning af teksturer og oprettelse af gengivelsesmål. Interessant er det, at Texture-systemet også tillader oprettelse af visninger til renderingsmålene.
  • ShaderCompilerHelper: Dette er et kraftfuldt værktøj, der hjælper med at kompilere kildekoden. ShaderCompilerHelper cachelagrer også binærfiler. Det er overflødigt at nævne, at dette reducerer indlæsningstiderne betydeligt.
  • UploadHeap: Dette værktøj giver programmører mulighed for at underallokere fra en systemhukommelsespulje til at uploade data, som i det væsentlige inkluderer teksturer såvel som buffere til en videohukommelsesbuffer.

Da dette er en open source SDK, opfordrer AMD tidligt uden for adoptere til at teste det samme og tilbyde deres feedback. Det er meget sandsynligt, at AMD vil analysere det samme og implementere nogle af forslagene til forbedring af Radeon Cauldron SDK.

Mærker amd AMD Navi radeon