Az AMD kiterjeszti a Radeon Cauldron 1.0 SDK-t az egyszerűsített C ++ - t használó programozási közösségre

Hardver / Az AMD kiterjeszti a Radeon Cauldron 1.0 SDK-t az egyszerűsített C ++ - t használó programozási közösségre 4 perc olvasás

A kiterjedt belső tesztelés és a meglepően gyors bevezetés után az AMD most felajánlja a Radeon Cauldron 1.0 szoftverfejlesztő készletet (SDK) a programozó közösség számára. A vállalat biztosítja, hogy a keretrendszer nemcsak nagyon leegyszerűsített, de rendkívül sokoldalú is. Más szavakkal, a Radeon Cauldron SDK könnyen megfogható a kezdők számára. Ezenkívül a keretrendszer rendkívül rugalmas a programozók számára, akik új funkciókkal szeretnék kibővíteni.



Az AMD az egyik legnépszerűbb szoftverfejlesztési keretek tömegeknek. A Radeon Cauldron SDK első átfogó és stabil kiadása már elérhető a programozók számára. A Radeon Cauldron lényegében egy gyorskönyvtár a gyors prototípus készítéshez. AMD SDK mintákban és effektusokban használják. Az SDK zökkenőmentesen működik a Vulkan vagy a Direct3D 12 API-kkal. Az AMD elkészítette a teljes keretrendszert letölthető a GitHub-on , a nyílt forráskódú szoftverek legnépszerűbb tárháza, amelyet nemrégiben vásárolt a Microsoft. Érdekes módon az AMD is feltöltött egy GltfSample-t . A furcsa nevű alkalmazást a Cauldron keretrendszer felhasználásával tervezték, fejlesztették és építették. Egyébként a Radeon Cauldron SDK összes releváns forrása elérhető a GitHubon is.

Mi a Radeon Cauldron SDK, és hogyan fogja befolyásolni a szoftver-, alkalmazás- vagy játékfejlesztést?

A Radeon Cauldron lényegében egy teljes keretrendszer vagy teljes szoftverfejlesztő készlet a gyors prototípus-készítéshez. Elsősorban az AMD SDK mintákban és effektusokban fogják használni. Mint fent említettük, optimálisan működhet a Vulkan-nal, amely egy előnyös alacsony rezsijű, platformokon átívelő 3D grafika és számítási API. Sőt, az SDK a Direct3D legújabb verziójával is működik, amely a Direct3D 12.



A Radeon Cauldron SDK először belsőleg az AMD-n jelent meg. Bár várható volt, az eredeti kiadást kivételesen elfogadta és elfogadta az AMD belső szoftverfejlesztő csapatai. Az első kísérleti projekt után az AMD megerősítette, hogy a társaságon belül még más érintőleges csoportok is érdeklődést mutattak. Végül az SDK az egyik legkedveltebb keretrendszer lett azoknak a csapatoknak, amelyek eszközöket, illesztőprogramokat, sőt szoftvereket és funkciókat demonstráltak.



Az AMD a Radeon Cauldron 1.0-t biztosítja a GPUOpen-en az MIT nyílt forráskódú licenc alatt. A vállalat többször is hangsúlyozta a kód megértésének és a kiterjesztésének egyszerűségét. Más szavakkal, még akkor is, ha tapasztalt programozók nem érhetők el, az új felhasználók gyorsan megfejtik a több összetevőt és azok egyedi funkcióit, valamint a függőségeket. Ez nagymértékben leegyszerűsíti a komplex fejlesztés folyamatát, és biztosítja, hogy minden felhasználó magabiztos és kényelmes legyen, miközben ugyanazt használja. Ezenkívül a programozók gyorsan és hatékonyan kibővíthetik a kódot anélkül, hogy aggódnának a múltbeli munka akadályozása vagy a folyamat során bekövetkező valamilyen törés miatt.



A keret meglepően rugalmas és sokoldalú, biztosítja az AMD. Az állítások elsősorban azért tűnnek igaznak, mert az SDK vanília C ++ -ot használ. Az AMD ugyanezt fejlesztette ki azzal a egyértelmű céllal, hogy követje az „egy funkció, egy osztály, egy fájl” filozófiát. Feleslegesen meg kell említeni, hogy a programozóknak nem kell bonyolult és több fájlban navigálniuk, miközben egyszerűen meg kell próbálniuk megérteni egy alkalmazás vagy webplatform működését. Az AMD biztosította, hogy a Radeon Cauldron SDK ragaszkodjon az osztályok legegyszerűbb formájához. Más szóval, ahol csak lehetséges, az osztályok többsége a következő módszereket alkalmazza:

osztályú MyTechnique

{



bool OnCreate (…); // létrehozza a csővezetékeket, a statikus geometriát és más egyszeri inicializálásokat

érvénytelen OnDestroy (…);

void OnDraw (…) // használja a létrehozott erőforrásokat a technika megrajzolásához

}

A Radeon Cauldron SDK két olyan technikát tesz lehetővé, amelyekre szükség van az glTF 2.0 modellek megjelenítéséhez. Míg az egyikre szükség van a PBR (fizikailag alapú renderelés) passzhoz, a másik a csak mélységig érvényes passzhoz szükséges. Bővítésként két osztály van, az úgynevezett GltfPbrPass és GltfDepthPass. Az glTF modell adatai három fájlra vannak felosztva:

  1. GltfCommon, egy API-agnosztikus osztály, amely betölti és gondoskodik a jelenet átalakításáról és animációjáról, beleértve a skinnin MyTechnique {bool OnCreate (…) osztályt is; // létrehozza a csővezetékeket, a statikus geometriát és más egyszeri inicializálásokat érvényteleníti az OnDestroy-t (…); void OnDraw (…) // használja a létrehozott erőforrásokat a technika megrajzolásához} g.
  2. A GltfTexturesAndBuffers osztály, amely betölti és tárolja az összes textúrát, nyúzási mátrixot és geometriai puffert.
  3. A GltfPbrPass és a GltfDepthPass két osztály, amelyek a fenti osztályokat használják a jelenet megjelenítésére az említett technikákkal.

A Radeon Cauldron keretrendszer grafikus-agnosztikus és grafikától függő kódokat egyaránt tartalmaz. Ezért a keretrendszer három Visual Studio projektre bontható:

  1. Framework_DX12: Amint a névből kiderül, ez a rész a DirectX12-re vonatkozik. Más szóval, tartalmazza az összes Direct3D 12 kódot.
  2. Framework_VK: Ez a rész tartalmazza az összes vonatkozó Vulkan-kódot.

Egyébként van egy harmadik komponens is, amely a Visual Studio mindkét fent említett típusánál közös. Ezt a részt „Framework_Common” -nak hívják. A közös elem a következő szempontokat tartalmazza:

GLTF struktúrák

  • Átalakítási és animációs kód
  • Képek betöltése
  • Ablakkezelés
  • Kamera

A Radeon Cauldron keretrendszer támogatja az utófeldolgozási technikákat, például a virágzást, az elmosódást, a mintavételt és a hangtérképezést. Az SDK két új tagot mutat be. Ezek hasznosak ideiglenes megjelenítési célok létrehozásában:

bool OnCreateWindowSizeDependentResources (…) // ideiglenes renderelési célokat hoz létre a hatáshoz

void OnDestroyWindowSizeDependentResources (…)

Érdekes módon a belsőleg tesztelt AMD Radeon Cauldron 1.0 SDK lehetővé teszi a programozók számára, hogy a dolgokat alacsonyabb szinten is megvalósítsák. Meglepő, hogy ezeken a szinteken is több memóriakezelőt használhatnak a dolgok zökkenőmentes lebonyolításához. Néhány még alacsonyabb szinten is működő memóriakezelő a következő:

  • StaticBufferPool: Ez az összetevő tartalmazza a statikus adatokat. Ezenkívül tartalmazza az allokációt is.
  • DynamicBufferRing: Ez egy kör alakú puffer rendszer. A programozók erre támaszkodhatnak állandó pufferek esetén.
  • Textúra: Lehetővé teszi a textúrák betöltését és a renderelési célok létrehozását. Érdekes módon a Texture rendszer lehetővé teszi nézetek létrehozását a renderelési célok számára.
  • ShaderCompilerHelper: Ez egy hatékony eszköz, amely segít a forráskód összeállításában. A ShaderCompilerHelper a bináris fájlokat is tárolja. Felesleges megemlíteni, hogy ez jelentősen csökkenti a betöltési időket.
  • UploadHeap: Ez az eszköz lehetővé teszi a programozók számára, hogy a rendszer memóriakészletéből allokálódjanak az adatok feltöltéséhez, amely lényegében textúrákat és puffereket is tartalmaz egy videomemória-pufferbe.

Mivel ez egy nyílt forráskódú SDK, az AMD sürgeti a korai külső alkalmazókat, hogy teszteljék ugyanezt és adják meg visszajelzésüket. Nagyon valószínű, hogy az AMD ugyanezt elemzi, és végrehajt néhány javaslatot a Radeon Cauldron SDK fejlesztésére.

Címkék amd AMD Navi radeon