AMD Mantle SDK (инструменты разработчика)

Не так давно задумался о создании SDK для графического интерфейса AMD Mantle API.

Хоть AMD и обещала выложить полноценный SDK (в твитах разработчики неоднократно писали, что как только SDK пройдёт тестирование и выйдет из статуса beta его обязательно выложат для общего пользования), но на деле до этого так и не дошло. Мало того Mantle как таковой больше не существует. Но AMD не спешит забрасывать свои разработки, и, помимо передачи части технологии Khronos Group (для реинкарнации Mantle в Vulkan), периодически обновляет драйвер и Loader функций. Так за всю историю Mantle было выпущено 11 версий (естественно тех, которые дошли до общественности в составе разных пакетов Catalyst): 9.1.10.8, 9.1.10.9, 9.1.10.13, 9.1.10.20, 9.1.10.34, 9.1.10.45, 9.1.10.77, 9.1.10.83, 9.1.10.95, 9.1.10.99, 9.1.10.109. У всех них есть специфические отличия (я проанализировал дизассемблерный код), под которые нужно подстраивать свой код программы (к примеру версия API, разная работа GR_RESULT), но сейчас не об этом.

И вот на сцене появляется Vulkan (по большей части переименованный Mantle, но с поддержкой разных видеокарт). Руководство по Mantle, AMD выложила уже давно (в марте 2015 года, под версией 1.0) и к сожалению не обновляет его. Это сказалось при разработке хейдера mantleExt.h - часть функций, которые добавлены в 109 версии, просто не описаны в этом руководстве, их прототипы мне неизвестны. Говоря о заголовочных файлах, их название и количество описаны в руководстве, вот они:

mantleExtDbg.h и mantleWsiWinExtDbg.h я не знаю что должны содержать эти файлы, никаких отладочных функций я не нашёл (в SDK они присутствуют, так сказать чтоб были).

В общем прототипом моего SDK стал Vulkan - там я "подсмотрел" ключевые определения, константы и механизм работы. Всё остальное взято из руководства.

Итак, Mantle SDK

Mantle SDK.zip

Репозиторий на GitHub

https://github.com/tesla707/Mantle

И видео как начать работать и подключить библиотеки и хейдеры

Кликните здесь для просмотра всего текста

И самое главное, у меня нет AMD видеокарты, и тестировать на Intel HD5500 я не могу. Поэтому следующим шагом планирую начать разрабатывать драйвер для своей видеокарты (хотя бы чтобы просто проинициализировать API).

В свзяи с этим возможны ошибки в работе SDK, так что не стесняемся и отписываемся о своих результатах