Anvil — открытая (под лицензией MIT) кроссплатформенная библиотека-обёртка над графическим API Vulkan, созданная инженерами AMD с целью сокращения времени разработки Vulkan-приложений с нуля.
Anvil имеет поддержку специфических для AMD расширений, но работает на любой реализации Vulkan.
Библиотека предоставляет C++-врапперы, а также следующие дополнительные возможности:
- Распределитель памяти, который выделяет минимально необходимое количество памяти для указанных областей памяти, объектов и подресурсов из одной или нескольких куч памяти, в зависимости от возможностей платформы.
- Автоматическое управление жизненным циклом объектов, благодаря использованию автоматических указателей в библиотеке.
- Наборы дескрипторов автоматически создаются из созданных пользователем групп дескрипторов.
- Процедуры для преобразований чисел половинных и одинарных точностей (FP16 ↔ FP32).
- Встроенная поддержка валидации, которая может быть активирована путём изменения значения одного аргумента в момент создания экземпляра Vulkan.
- Интеграция с
glslang
для преобразования GLSL → SPIR-V во время выполнения. - Отслеживатель объектов, который может использоваться для обнаружения утечек объектов враппера.
- Интеграция оконных систем, поддержка на данный момент ограничивается платформами XCB и Windows.
>>> GitHub
>>> Подробности