AMD utökar Radeon Cauldron 1.0 SDK till att programmera gemenskapen som använder förenklad C ++

Hårdvara / AMD utökar Radeon Cauldron 1.0 SDK till att programmera gemenskapen som använder förenklad C ++ 4 minuter läst

Efter omfattande interntestning och överraskande snabb användning inom, erbjuder AMD nu Radeon Cauldron 1.0 Software Development Kit (SDK) till programmeringsgemenskapen. Företaget försäkrar att ramverket inte bara är mycket förenklat utan också anmärkningsvärt mångsidigt. Med andra ord är Radeon Cauldron SDK lätt att förstå för nybörjare. Dessutom är ramverket mycket flexibelt för programmerare som vill utöka det med nya funktioner.



AMD erbjuder en av sina mest populära ramar för mjukvaruutveckling till massorna. Den första omfattande och stabila utgåvan av Radeon Cauldron SDK är nu tillgänglig för programmerare. Radeon Cauldron är i huvudsak ett rambibliotek för snabb prototypning. Den används i AMD SDK-prover och effekter. SDK fungerar sömlöst med antingen Vulkan eller Direct3D 12 API: er. AMD har gjort hela ramverket tillgänglig för nedladdning på GitHub , det mest populära förvaret för programvara med öppen källkod som nyligen förvärvades av Microsoft. Intressant har AMD också laddade upp ett GltfSample . Den konstigt namngivna appen har designats, utvecklats och byggts med Cauldron-ramverket. För övrigt finns alla relevanta resurser till Radeon Cauldron SDK också tillgängliga på GitHub.

Vad är Radeon Cauldron SDK och hur kommer det att påverka program-, app- eller spelutveckling?

Radeon Cauldron är i grunden ett helt ramverk eller ett komplett programvaruutvecklingssats för snabb prototyping. Den kommer främst att användas i AMD SDK-prover och effekter. Som nämnts ovan kan det fungera optimalt med Vulkan, som är ett föredraget låg-overhead-plattforms-3D-grafik och dator-API. Dessutom fungerar SDK också med Direct3Ds senaste version, som är Direct3D 12.



Radeon Cauldron SDK släpptes först internt på AMD. Även om det förväntades accepterades den ursprungliga utgåvan exceptionellt och antogs av AMDs interna team för mjukvaruutveckling. Efter det första pilotprojektet bekräftade AMD att även andra tangentiella grupper inom företaget började visa intresse. Så småningom blev SDK en av de föredragna ramarna för team som hanterade verktyg, drivrutiner och till och med programvara och har demonstrationer.



AMD tillhandahåller Radeon Cauldron 1.0 på GPUOpen under MIT open source-licensen. Företaget har upprepade gånger betonat att det är lätt att förstå koden och att det är lätt att utvidga koden. Med andra ord, även om erfarna programmerare inte är tillgängliga, kan nya användare snabbt dechiffrera flera komponenter och deras individuella funktioner samt beroenden. Detta skulle i hög grad förenkla processen för komplex utveckling och säkerställa att alla användare är självsäkra och bekväma när de använder samma. Dessutom kan programmerare snabbt och effektivt förlänga koden utan att oroa sig för att hämma tidigare arbete eller bryta något i processen.



Ramverket är förvånansvärt flexibelt och mångsidigt, försäkrar AMD. Påståendena verkar främst för att SDK använder vanilj C ++. AMD har utvecklat detsamma med ett tydligt mål att följa en filosofi om en funktion, en klass, en fil. Naturligtvis betyder det att programmerare inte behöver navigera i komplexa och flera filer medan de bara försöker förstå hur en applikation eller webbplattform fungerar. AMD har säkerställt att Radeon Cauldron SDK kommer att hålla sig till den enklaste formen av klasser. Med andra ord, när så är möjligt, kommer de flesta klasserna att implementera följande metoder:

klass MyTechnique

{



bool OnCreate (…); // skapar rörledningar, statisk geometri och andra engångsinitialiseringar

ogiltigt OnDestroy (...);

ogiltigt OnDraw (...) // använd de skapade resurserna för att rita tekniken

}

Radeon Cauldron SDK tillåter två tekniker som behövs för att göra glTF 2.0-modeller. Medan en behövs för PBR-passet (Physically Based Rendering), är det andra avsedd för passet för endast djup. Som en förlängning finns det två klasser som heter GltfPbrPass och GltfDepthPass. Data för en glTF-modell är uppdelad i tre filer:

  1. GltfCommon, en API-agnostisk klass som laddar och tar hand om omvandlingen och animeringen av scenen, inklusive skinnin-klass MyTechnique {bool OnCreate (...); // skapar rörledningar, statisk geometri och andra engångsinitialiseringar ogiltiga OnDestroy (...); ogiltigt OnDraw (...) // använd de skapade resurserna för att rita tekniken} g.
  2. GltfTexturesAndBuffers, en klass som laddar och rymmer alla texturer, skinningmatriser och geometriska buffertar.
  3. GltfPbrPass och GltfDepthPass, två klasser som använder ovanstående klasser för att återge scenen med de nämnda teknikerna.

Radeon Cauldron-ramverket innehåller både grafik-agnostisk och grafikberoende kod. Därför kan ramverket delas in i tre Visual Studio-projekt:

  1. Framework_DX12: Som framgår av namnet gäller denna del DirectX12. Med andra ord innehåller den all Direct3D 12-kod.
  2. Framework_VK: Denna del innehåller all relevant Vulkan-kod.

För övrigt finns det också en tredje komponent, vilket är vanligt för båda de typer av Visual Studio-projekt som nämns ovan. Denna del kallas 'Framework_Common'. Den gemensamma komponenten innehåller följande aspekter:

GLTF-strukturer

  • Transformation och animationskod
  • Laddar bilder
  • Fönsterhantering
  • Kamera

Radeon Cauldron-ramverket stöder efterbehandlingstekniker som blomning, oskärpa, downsampling och tonmappning. SDK introducerar två nya delmedlemmar. Dessa är användbara för att skapa temporära renderingsmål:

bool OnCreateWindowSizeDependentResources (…) // skapar tillfälliga renderingsmål som behövs för effekten

ogiltigt OnDestroyWindowSizeDependentResources (...)

Intressant är att den interntestade AMD Radeon Cauldron 1.0 SDK tillåter programmerare att implementera saker på en lägre nivå också. Överraskande nog, även på dessa nivåer kan de använda flera minneshanterare för att se till att saker och ting fungerar smidigt. Några av minneshanterarna som fortfarande fungerar även på en lägre nivå är följande:

  • StaticBufferPool: Denna komponent innehåller statisk data. Dessutom har den också delallokering.
  • DynamicBufferRing: Detta är ett cirkulärt buffersystem. Programmerare kan lita på detta för konstanta buffertar.
  • Texture: Tillåter laddning av texturer och skapande av renderingsmål. Intressant kan Texture-systemet också skapa vyer för renderingsmålen.
  • ShaderCompilerHelper: Detta är ett kraftfullt verktyg som hjälper till att sammanställa källkoden. ShaderCompilerHelper cachar också binärfilerna. Naturligtvis minskar detta laddningstiderna avsevärt.
  • UploadHeap: Detta verktyg tillåter programmerare att underallokera från en systemminnespool för att ladda upp data, som i huvudsak innehåller såväl strukturer som buffertar till en videominnesbuffert.

Eftersom detta är en SDK med öppen källkod, uppmanar AMD tidigt externa användare att testa detsamma och erbjuda sin feedback. Det är mycket troligt att AMD kommer att analysera detsamma och implementera några av förslagen för att förbättra Radeon Cauldron SDK.

Taggar amd AMD Navi radeon