AMD разширява Radeon Cauldron 1.0 SDK към общност за програмиране, която използва опростен C ++

Хардуер / AMD разширява Radeon Cauldron 1.0 SDK към общност за програмиране, която използва опростен C ++ 4 минути четене

След обширни вътрешни тестове и изненадващо бързо внедряване, AMD сега предлага Radeon Cauldron 1.0 Software Development Kit (SDK) на програмистката общност. Компанията гарантира, че рамката е не само силно опростена, но е и изключително гъвкава. С други думи, Radeon Cauldron SDK е лесно достъпен за начинаещи. Освен това рамката е изключително гъвкава за програмисти, които искат да я разширят с нови функции.



AMD предлага един от най-популярните си рамки за разработка на софтуер за масите. Първата изчерпателна и стабилна версия на Radeon Cauldron SDK вече е достъпна за програмисти. Radeon Cauldron по същество е рамкова библиотека за бързо прототипиране. Използва се в AMD SDK проби и ефекти. SDK работи безпроблемно или с API на Vulkan или Direct3D 12. AMD направи цялата рамка на разположение за изтегляне от GitHub , най-популярното хранилище за софтуер с отворен код, наскоро придобито от Microsoft. Интересното е, че AMD също го има качи GltfSample . Странно нареченото приложение е проектирано, разработено и изградено с помощта на рамката на котела. Между другото, всички съответни ресурси за Radeon Cauldron SDK са достъпни и на GitHub.

Какво представлява Radeon Cauldron SDK и как ще се отрази на разработката на софтуер, приложения или игри?

Radeon Cauldron е по същество цяла рамка или пълен комплект за разработка на софтуер за бързо прототипиране. Той ще се използва предимно в AMD SDK проби и ефекти. Както бе споменато по-горе, той може да работи оптимално с Vulkan, който е предпочитан 3D графичен и изчислителен API с ниски разходи. Освен това SDK работи и с последната версия на Direct3D, която е Direct3D 12.



Radeon Cauldron SDK беше пуснат за първи път вътре в AMD. Въпреки че се очакваше, първоначалната версия беше изключително приета и приета от вътрешните екипи за разработка на софтуер на AMD. След първия пилотен проект AMD потвърди, че дори други тангенциални групи в компанията започнаха да проявяват интерес. В крайна сметка SDK се превърна в една от предпочитаните рамки за екипи, обработващи инструменти, драйвери и дори демонстрации на софтуер и функции.



AMD предоставя Radeon Cauldron 1.0 на GPUOpen под лиценза на MIT с отворен код. Компанията многократно е подчертавала лекотата на разбиране на кода и лекотата на разширяването му. С други думи, дори ако опитните програмисти са недостъпни, новите потребители могат бързо да дешифрират множеството компоненти и техните индивидуални функции, както и зависимостите. Това би трябвало значително да опрости процеса на сложна разработка и гарантира, че всички потребители са уверени и удобни, докато използват едно и също. Освен това програмистите могат бързо и ефективно да разширят кода, без да се притесняват дали няма да попречат на миналата работа или да нарушат нещо в процеса.



Рамката е изненадващо гъвкава и гъвкава, уверява AMD. Твърденията изглеждат верни най-вече защото SDK използва ванилия C ++. AMD разработи същото с ясна цел да следва философията „една функция, един клас, един файл“. Излишно е да споменавам това означава, че програмистите не трябва да навигират в сложни и множество файлове, докато просто се опитват да разберат как работи приложение или уеб платформа. AMD гарантира, че Radeon Cauldron SDK ще се придържа към най-простата форма на класове. С други думи, където е възможно, повечето класове ще прилагат следните методи:

клас MyTechnique

{



bool OnCreate (...); // създава тръбопроводи, статична геометрия и други еднократни инициализации

невалиден OnDestroy (...);

void OnDraw (...) // използвайте създадените ресурси, за да нарисувате техниката

}

SDK на Radeon Cauldron позволява две техники, необходими за изобразяване на glTF 2.0 модели. Докато единият е необходим за прохода PBR (Physically Based Rendering), другият е предназначен за преминаване само за дълбочина. Като разширение има два класа, наречени GltfPbrPass и GltfDepthPass. Данните от glTF модел са разделени на три файла:

  1. GltfCommon, API-агностичен клас, който зарежда и се грижи за трансформацията и анимацията на сцената, включително скинин клас MyTechnique {bool OnCreate (...); // създава тръбопроводи, статична геометрия и други еднократни инициализации void OnDestroy (...); void OnDraw (…) // използвайте създадените ресурси за рисуване на техниката} g.
  2. GltfTextureAndBuffers, клас, който зарежда и съхранява всички текстури, матрици за обличане и буфери за геометрия.
  3. GltfPbrPass и GltfDepthPass, два класа, които използват горните класове, за да изобразят сцената със споменатите техники.

Рамката на Radeon Cauldron съдържа както графично-агностичен, така и графично зависим код. Следователно рамката може да бъде разделена на три проекта на Visual Studio:

  1. Framework_DX12: Както е видно от името, тази част се отнася до DirectX12. С други думи, той съдържа целия код Direct3D 12.
  2. Framework_VK: Тази част съдържа всички съответни кодове на Vulkan.

Между другото има и трети компонент, който е общ за двата вида проекти на Visual Studio, споменати по-горе. Тази част се нарича „Framework_Common“. Общият компонент съдържа следните аспекти:

GLTF структури

  • Код за трансформация и анимация
  • Зареждане на изображения
  • Работа с прозорци
  • Камера

Рамката на Radeon Cauldron поддържа техники за последваща обработка като разцвет, размазване, намаляване на пробите и картографиране на тонове. SDK представя двама нови подчленове. Те са полезни при създаването на временни цели за изобразяване:

bool OnCreateWindowSizeDependentResources (...) // създава временни цели за изобразяване, необходими за ефекта

void OnDestroyWindowSizeDependentResources (...)

Интересното е, че вътрешно тестваният AMD Radeon Cauldron 1.0 SDK позволява на програмистите да внедрят нещата и на по-ниско ниво. Изненадващо, дори на тези нива, те могат да използват няколко мениджъра на паметта, за да гарантират, че нещата протичат гладко. Някои от мениджърите на паметта, които все още работят дори на по-ниско ниво, са както следва:

  • StaticBufferPool: Този компонент съдържа статичните данни. Нещо повече, той разполага и с подразпределение.
  • DynamicBufferRing: Това е кръгла буферна система. Програмистите могат да разчитат на това за постоянни буфери.
  • Текстура: Позволява зареждане на текстури и създаване на цели за изобразяване. Интересното е, че системата Texture също позволява създаването на изгледи за целите на рендирането.
  • ShaderCompilerHelper: Това е мощен инструмент, който помага при компилирането на изходния код. ShaderCompilerHelper също кешира двоичните файлове. Излишно е да споменавам, че това значително намалява времето за зареждане.
  • UploadHeap: Този инструмент позволява на програмистите да разпределят от системния пул памет за качване на данни, които по същество включват текстури, както и буфери в буфер за видео памет.

Тъй като това е SDK с отворен код, AMD призовава ранните външни осиновители да тестват същото и да предоставят своите отзиви. Съвсем вероятно е AMD да анализира същото и да приложи някои от предложенията за подобряване на Radeon Cauldron SDK.

Етикети AMD AMD Navi radeon