AMD breidt Radeon Cauldron 1.0 SDK uit naar programmeergemeenschap die vereenvoudigd C ++ gebruikt

Hardware / AMD breidt Radeon Cauldron 1.0 SDK uit naar programmeergemeenschap die vereenvoudigd C ++ gebruikt 4 minuten gelezen

Na uitgebreide interne tests en verrassend snelle acceptatie binnen, biedt AMD nu Radeon Cauldron 1.0 Software Development Kit (SDK) aan de programmeergemeenschap. Het bedrijf verzekert dat het framework niet alleen sterk vereenvoudigd is, maar ook opmerkelijk veelzijdig is. Met andere woorden, de Radeon Cauldron SDK is gemakkelijk te begrijpen voor beginners. Bovendien is het raamwerk enorm flexibel voor programmeurs die het willen uitbreiden met nieuwe functies.



AMD biedt een van de meest populaire frameworks voor softwareontwikkeling aan de massa. De eerste uitgebreide en stabiele release van de Radeon Cauldron SDK is nu beschikbaar voor programmeurs. Radeon Cauldron is in wezen een raamwerkbibliotheek voor snelle prototyping. Het wordt gebruikt in AMD SDK-samples en effecten. De SDK werkt naadloos samen met de Vulkan- of Direct3D 12-API's. AMD heeft het volledige framework gemaakt beschikbaar om te downloaden op GitHub , de meest populaire opslagplaats voor open-source software die onlangs is overgenomen door Microsoft. Interessant genoeg heeft AMD ook heeft een GltfSample . De vreemd genoemde app is ontworpen, ontwikkeld en gebouwd met behulp van het Cauldron-framework. Overigens zijn alle relevante bronnen voor de Radeon Cauldron SDK ook beschikbaar op GitHub.

Wat is Radeon Cauldron SDK en hoe zal het de ontwikkeling van software, apps of games beïnvloeden?

Radeon Cauldron is in wezen een volledig raamwerk of een complete softwareontwikkelingskit voor snelle prototyping. Het zal voornamelijk worden gebruikt in AMD SDK-samples en effecten. Zoals hierboven vermeld, kan het optimaal werken met Vulkan, een geprefereerde low-overhead, cross-platform 3D-graphics en computer-API. Bovendien werkt de SDK ook met de nieuwste versie van Direct3D, Direct3D 12.



De Radeon Cauldron SDK werd voor het eerst intern uitgebracht bij AMD. Hoewel verwacht, werd de eerste release uitzonderlijk geaccepteerd en aangenomen door de interne softwareontwikkelingsteams van AMD. Na het eerste proefproject bevestigde AMD dat zelfs andere tangentiële groepen binnen het bedrijf interesse begonnen te tonen. Uiteindelijk werd de SDK een van de geprefereerde frameworks voor teams die tools, stuurprogramma's en zelfs software en demonstraties van functies behandelden.



AMD levert Radeon Cauldron 1.0 op GPUOpen onder de MIT open source-licentie. Het bedrijf heeft herhaaldelijk gewezen op het gemak van het begrijpen van de code en het gemak van uitbreiding ervan. Met andere woorden, zelfs als ervaren programmeurs niet beschikbaar zijn, kunnen nieuwe gebruikers snel de meerdere componenten en hun individuele functies en de afhankelijkheden ontcijferen. Dit zou het proces van complexe ontwikkeling aanzienlijk moeten vereenvoudigen en ervoor zorgen dat alle gebruikers vertrouwd en comfortabel zijn tijdens het gebruik ervan. Bovendien kunnen programmeurs de code snel en efficiënt uitbreiden zonder dat ze zich zorgen hoeven te maken over het belemmeren van eerder werk of iets in het proces kapot maken.



Het framework is verrassend flexibel en veelzijdig, verzekert AMD. De beweringen lijken vooral waar te zijn omdat de SDK vanilla C ++ gebruikt. AMD heeft hetzelfde ontwikkeld met een duidelijk doel om de filosofie van ‘één functie, één klasse, één bestand’ te volgen. Onnodig te vermelden dat programmeurs niet door complexe en meerdere bestanden hoeven te navigeren, terwijl ze gewoon proberen te begrijpen hoe een applicatie of webplatform werkt. AMD heeft ervoor gezorgd dat de Radeon Cauldron SDK zich houdt aan de eenvoudigste lesvorm. Met andere woorden, waar mogelijk zullen de meeste klassen de volgende methoden implementeren:

klasse MyTechnique

{



bool OnCreate (…); // maakt de pijplijnen, statische geometrie en andere eenmalige initialisaties

ongeldig OnDestroy (…);

void OnDraw (…) // gebruik de gecreëerde bronnen om de techniek te tekenen

}

De Radeon Cauldron SDK biedt twee technieken die nodig zijn om glTF 2.0-modellen weer te geven. De ene is nodig voor de PBR-pas (Physically Based Rendering), de andere is bedoeld voor de Depth-Only-pas. Als uitbreiding zijn er twee klassen genaamd GltfPbrPass en GltfDepthPass. De gegevens van een glTF-model worden opgesplitst in drie bestanden:

  1. GltfCommon, een API-agnostische klasse die de transformatie en animatie van de scène laadt en verzorgt, inclusief skinnin class MyTechnique {bool OnCreate (…); // creëert de pijplijnen, statische geometrie en andere eenmalige initialisaties void OnDestroy (…); void OnDraw (…) // gebruik de gecreëerde bronnen om de techniek te tekenen} g.
  2. GltfTexturesAndBuffers, een klasse die alle texturen, skinning-matrices en geometriebuffers laadt en vasthoudt.
  3. GltfPbrPass en GltfDepthPass, twee klassen die de bovenstaande klassen gebruiken om de scène met de genoemde technieken weer te geven.

Het Radeon Cauldron-framework bevat zowel grafisch-agnostische als grafisch-afhankelijke code. Daarom kan het framework worden opgesplitst in drie Visual Studio-projecten:

  1. Framework_DX12: Zoals blijkt uit de naam, heeft dit deel betrekking op de DirectX12. Met andere woorden, het bevat alle Direct3D 12-code.
  2. Framework_VK: Dit deel bevat alle relevante Vulkan-code.

Overigens is er nog een derde component, die gebruikelijk is voor beide typen Visual Studio-projecten die hierboven zijn genoemd. Dit deel heet ‘Framework_Common’. De gemeenschappelijke component bevat de volgende aspecten:

GLTF-structuren

  • Transformatie- en animatiecode
  • Afbeeldingen laden
  • Vensterbehandeling
  • Camera

Het Radeon Cauldron-framework ondersteunt nabewerkingstechnieken zoals bloom, blur, downsampling en tone-mapping. De SDK introduceert twee nieuwe subleden. Deze zijn handig bij het maken van tijdelijke renderdoelen:

bool OnCreateWindowSizeDependentResources (…) // maakt tijdelijke rendertargets die nodig zijn voor het effect

leegte OnDestroyWindowSizeDependentResources (…)

Interessant genoeg stelt de intern geteste AMD Radeon Cauldron 1.0 SDK programmeurs in staat om dingen ook op een lager niveau te implementeren. Verrassend genoeg kunnen ze zelfs op deze niveaus verschillende geheugenbeheerders gebruiken om ervoor te zorgen dat alles soepel verloopt. Enkele van de geheugenmanagers die nog steeds werken, zelfs op een lager niveau, zijn als volgt:

  • StaticBufferPool: dit onderdeel bevat de statische gegevens. Bovendien biedt het ook subtoewijzing.
  • DynamicBufferRing: Dit is een circulair buffersysteem. Programmeurs kunnen hierop vertrouwen voor constante buffers.
  • Textuur: maakt het laden van texturen en het maken van renderdoelen mogelijk. Interessant is dat het Texture-systeem ook het creëren van weergaven voor de renderdoelen mogelijk maakt.
  • ShaderCompilerHelper: Dit is een krachtig hulpmiddel dat helpt bij het compileren van de broncode. De ShaderCompilerHelper slaat ook de binaire bestanden op. Onnodig te vermelden dat dit de laadtijden aanzienlijk verkort.
  • UploadHeap: deze tool stelt programmeurs in staat om subtoewijzingen uit een systeemgeheugenpool te doen om gegevens te uploaden, die in wezen zowel texturen als buffers naar een videogeheugenbuffer bevatten.

Omdat dit een open-source SDK is, dringt AMD er bij vroege externe gebruikers op aan hetzelfde te testen en hun feedback te geven. Het is vrij waarschijnlijk dat AMD hetzelfde zal analyseren en enkele suggesties zal implementeren om de Radeon Cauldron SDK te verbeteren.

Tags amd AMD Navi Radeon