AMD расширяет SDK Radeon Cauldron 1.0 для сообщества программистов, использующего упрощенный C ++

Оборудование / AMD расширяет SDK Radeon Cauldron 1.0 для сообщества программистов, использующего упрощенный 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 . Приложение со странным названием было спроектировано, разработано и построено с использованием фреймворка Cauldron. Кстати, все ресурсы, относящиеся к Radeon Cauldron SDK, также доступны на GitHub.

Что такое Radeon Cauldron SDK и как он повлияет на разработку программного обеспечения, приложений или игр?

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



SDK Radeon Cauldron впервые был выпущен внутри компании AMD. Хотя это и ожидалось, первоначальный выпуск был в исключительных случаях принят и принят внутренними командами разработчиков программного обеспечения AMD. После первого пилотного проекта AMD подтвердила, что даже другие второстепенные группы внутри компании начали проявлять интерес. В конце концов, SDK стал одной из предпочтительных платформ для команд, которые занимались инструментами, драйверами и даже демонстрацией программного обеспечения и функций.



AMD предоставляет Radeon Cauldron 1.0 для GPUOpen по лицензии MIT с открытым исходным кодом. Компания неоднократно подчеркивала легкость понимания кода и легкость его расширения. Другими словами, даже если опытные программисты недоступны, новые пользователи могут быстро расшифровать несколько компонентов и их отдельные функции, а также зависимости. Это должно значительно упростить процесс сложной разработки и обеспечить уверенность и удобство использования всех пользователей при их использовании. Более того, программисты могут быстро и эффективно расширять код, не беспокоясь о том, чтобы помешать прошлой работе или что-то сломать в процессе.



Фреймворк на удивление гибкий и универсальный, уверяет AMD. Утверждения кажутся верными в первую очередь потому, что SDK использует ванильный C ++. AMD разработала то же самое с четкой целью следовать философии «одна функция, один класс, один файл». Излишне упоминать, что программистам не нужно перемещаться по сложным и множественным файлам, просто пытаясь понять, как работает приложение или веб-платформа. AMD гарантирует, что Radeon Cauldron SDK будет придерживаться простейшей формы классов. Другими словами, там, где это возможно, большинство классов будут реализовывать следующие методы:

класс MyTechnique

{



bool OnCreate (…); // создает конвейеры, статическую геометрию и другие одноразовые инициализации

void OnDestroy (…);

void OnDraw (…) // используем созданные ресурсы для рисования техники

}

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

  1. GltfCommon, API-независимый класс, который загружает и заботится о преобразовании и анимации сцены, включая класс скинов MyTechnique {bool OnCreate (…); // создает конвейеры, статическую геометрию и другие одноразовые инициализации void OnDestroy (…); void OnDraw (…) // использовать созданные ресурсы для рисования техники} g.
  2. GltfTexturesAndBuffers, класс, который загружает и содержит все текстуры, матрицы скинов и буферы геометрии.
  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: это кольцевая буферная система. Программисты могут положиться на это для буферов констант.
  • Текстура: позволяет загружать текстуры и создавать объекты рендеринга. Интересно, что система текстур также позволяет создавать представления для целей рендеринга.
  • ShaderCompilerHelper: это мощный инструмент, помогающий компилировать исходный код. ShaderCompilerHelper также кэширует двоичные файлы. Излишне упоминать, что это значительно сокращает время загрузки.
  • UploadHeap: этот инструмент позволяет программистам выделять ресурсы из пула системной памяти для загрузки данных, которые по сути включают текстуры, а также буферы в буфер видеопамяти.

Поскольку это SDK с открытым исходным кодом, AMD призывает первых сторонних разработчиков протестировать его и поделиться своими отзывами. Вполне вероятно, что AMD проанализирует то же самое и реализует некоторые предложения по улучшению Radeon Cauldron SDK.

Теги и AMD Navi radeon