AMD rozszerza pakiet SDK Radeon Cauldron 1.0 do społeczności programistów korzystających z uproszczonego języka C ++

Sprzęt komputerowy / AMD rozszerza pakiet SDK Radeon Cauldron 1.0 do społeczności programistów korzystających z uproszczonego języka C ++ 4 minuty czytania

Po szeroko zakrojonych wewnętrznych testach i zaskakująco szybkim wdrożeniu, AMD oferuje teraz społeczności programistów Radeon Cauldron 1.0 Software Development Kit (SDK). Firma zapewnia, że ​​ramy są nie tylko bardzo uproszczone, ale także niezwykle wszechstronne. Innymi słowy, pakiet Radeon Cauldron SDK jest łatwo dostępny dla początkujących. Ponadto framework jest bardzo elastyczny dla programistów chcących rozszerzyć go o nowe funkcje.



AMD oferuje jeden z najpopularniejszych ramy do tworzenia oprogramowania do mas. Pierwsza kompleksowa i stabilna wersja Radeon Cauldron SDK jest już dostępna dla programistów. Radeon Cauldron to zasadniczo biblioteka ramowa do szybkiego prototypowania. Jest używany w próbkach i efektach AMD SDK. SDK działa bezproblemowo z interfejsami API Vulkan lub Direct3D 12. AMD wykonało cały framework dostępne do pobrania na GitHub , najpopularniejsze repozytorium oprogramowania open source, które zostało niedawno przejęte przez Microsoft. Co ciekawe, AMD też przesłał plik GltfSample . Ta dziwnie nazwana aplikacja została zaprojektowana, opracowana i zbudowana przy użyciu frameworka Cauldron. Nawiasem mówiąc, wszystkie odpowiednie zasoby do Radeon Cauldron SDK są również dostępne na GitHub.

Co to jest Radeon Cauldron SDK i jak wpłynie na rozwój oprogramowania, aplikacji lub gier?

Radeon Cauldron to w zasadzie cały framework lub kompletny zestaw programistyczny do szybkiego prototypowania. Będzie używany głównie w próbkach i efektach AMD SDK. Jak wspomniano powyżej, może działać optymalnie z Vulkanem, który jest preferowaną, niskobudżetową, wieloplatformową grafiką 3D i obliczeniowym API. Co więcej, SDK współpracuje również z najnowszą wersją Direct3D, czyli Direct3D 12.



Radeon Cauldron SDK został po raz pierwszy wydany wewnętrznie w AMD. Chociaż oczekiwano, pierwsza wersja została wyjątkowo zaakceptowana i przyjęta przez wewnętrzne zespoły programistyczne AMD. Po pierwszym projekcie pilotażowym AMD potwierdziło, że nawet inne styczne grupy w firmie zaczęły wykazywać zainteresowanie. Ostatecznie SDK stał się jedną z preferowanych platform dla zespołów zajmujących się obsługą narzędzi, sterowników, a nawet demonstracji oprogramowania i funkcji.



AMD dostarcza Radeon Cauldron 1.0 na GPUOpen na licencji open source MIT. Firma wielokrotnie podkreślała łatwość zrozumienia kodu i łatwość jego rozszerzenia. Innymi słowy, nawet jeśli doświadczeni programiści są niedostępni, nowi użytkownicy mogą szybko rozszyfrować wiele komponentów i ich indywidualne funkcje, a także zależności. Powinno to znacznie uprościć proces złożonego programowania i zapewnić wszystkim użytkownikom pewność i wygodę podczas korzystania z tego samego. Co więcej, programiści mogą szybko i skutecznie rozszerzyć kod bez obawy o utrudnianie wcześniejszej pracy lub zepsucie czegoś w procesie.



Platforma jest zaskakująco elastyczna i wszechstronna, zapewnia AMD. Twierdzenia wydają się prawdziwe głównie dlatego, że zestaw SDK używa klasycznego C ++. AMD opracowało to samo, mając jasny cel, aby kierować się filozofią „jedna funkcja, jedna klasa, jeden plik”. Nie trzeba wspominać, że oznacza to, że programiści nie muszą nawigować po złożonych i wielu plikach, próbując po prostu zrozumieć, jak działa aplikacja lub platforma internetowa. AMD zapewniło, że Radeon Cauldron SDK będzie trzymać się najprostszej formy zajęć. Innymi słowy, gdy tylko będzie to możliwe, większość klas będzie implementować następujące metody:

klasa MyTechnique

{



bool OnCreate (…); // tworzy potoki, statyczną geometrię i inne jednorazowe inicjalizacje

void OnDestroy (…);

void OnDraw (…) // użyj utworzonych zasobów do narysowania techniki

}

Radeon Cauldron SDK umożliwia dwie techniki potrzebne do renderowania modeli glTF 2.0. Chociaż jeden jest potrzebny do przejścia PBR (Physically Based Rendering), drugi jest przeznaczony do przejścia tylko do głębokości. Jako rozszerzenie istnieją dwie klasy o nazwie GltfPbrPass i GltfDepthPass. Dane modelu glTF są podzielone na trzy pliki:

  1. GltfCommon, klasa agnostyczna API, która ładuje i zajmuje się transformacją i animacją sceny, w tym klasą skinnin MyTechnique {bool OnCreate (…); // tworzy potoki, statyczną geometrię i inne jednorazowe inicjalizacje void OnDestroy (…); void OnDraw (…) // użyj utworzonych zasobów do narysowania techniki} g.
  2. GltfTexturesAndBuffers, klasa, która ładuje i przechowuje wszystkie tekstury, macierze skórowania i bufory geometrii.
  3. GltfPbrPass i GltfDepthPass, dwie klasy, które używają powyższych klas do renderowania sceny przy użyciu wspomnianych technik.

Radeon Cauldron zawiera zarówno kod niezależny od grafiki, jak i kod zależny od grafiki. Dlatego framework można podzielić na trzy projekty Visual Studio:

  1. Framework_DX12: Jak wynika z nazwy, ta część dotyczy DirectX12. Innymi słowy, zawiera cały kod Direct3D 12.
  2. Framework_VK: Ta część zawiera cały odpowiedni kod Vulkan.

Nawiasem mówiąc, istnieje również trzeci składnik, który jest wspólny dla obu typów projektów Visual Studio wymienionych powyżej. Ta część nosi nazwę „Framework_Common”. Wspólny komponent obejmuje następujące aspekty:

Struktury GLTF

  • Kod transformacji i animacji
  • Ładowanie obrazów
  • Obsługa okien
  • Aparat fotograficzny

Radeon Cauldron obsługuje techniki przetwarzania końcowego, takie jak bloom, blur, downsampling i tone-mapping. SDK wprowadza dwóch nowych sub-członków. Są one przydatne przy tworzeniu tymczasowych celów renderowania:

bool OnCreateWindowSizeDependentResources (…) // tworzy tymczasowe cele renderowania potrzebne do efektu

void OnDestroyWindowSizeDependentResources (…)

Co ciekawe, wewnętrznie przetestowany AMD Radeon Cauldron 1.0 SDK umożliwia programistom implementację rzeczy również na niższym poziomie. Co zaskakujące, nawet na tych poziomach mogą używać kilku menedżerów pamięci, aby zapewnić płynne działanie. Oto niektóre z menedżerów pamięci, które nadal działają nawet na niższym poziomie:

  • StaticBufferPool: ten składnik przechowuje dane statyczne. Ponadto zawiera również alokację podrzędną.
  • DynamicBufferRing: jest to cykliczny system buforów. Programiści mogą na tym polegać w przypadku stałych buforów.
  • Tekstura: umożliwia ładowanie tekstur i tworzenie celów renderowania. Co ciekawe, system tekstur umożliwia również tworzenie widoków dla celów renderowania.
  • ShaderCompilerHelper: To potężne narzędzie, które pomaga w kompilacji kodu źródłowego. ShaderCompilerHelper również buforuje pliki binarne. Nie trzeba wspominać, że znacznie skraca to czas ładowania.
  • UploadHeap: To narzędzie umożliwia programistom przydzielanie części z puli pamięci systemowej w celu przesyłania danych, które zasadniczo obejmują tekstury, a także bufory do bufora pamięci wideo.

Ponieważ jest to SDK typu open source, AMD zachęca pierwszych użytkowników zewnętrznych do przetestowania tego samego i podzielenia się swoimi opiniami. Jest całkiem prawdopodobne, że AMD przeanalizuje to samo i zaimplementuje niektóre sugestie dotyczące ulepszenia Radeon Cauldron SDK.

Tagi amd AMD Navi radeon