Khronos приносит Vulkan в macOS, iOS, после того, как Apple отказывается от

Khronos приносит Vulkan в macOS, iOS, после того, как Apple отказывается от

Apple любит позиционировать себя как находящуюся на переднем крае исследований и разработок ОС, но ее долгосрочная поддержка графических интерфейсов, которые она не разрабатывала на дому, была в целом ужасной. MacOS по-прежнему ограничивается OpenGL 4.1, который был выпущен в июле 2010 года. Чтобы представить это примерно в приблизительных выражениях, представьте, что Microsoft отказалась от разработки своих графических API с помощью DirectX 11.0 и все еще ожидала, что все будут полагаться на нее для игр и профессиональных приложений. Apple запустила свой собственный API для iOS и macOS, Metal, но отказалась поддерживать Vulkan, API с открытым исходным кодом с низким уровнем обслуживания, предназначенный для соответствия DirectX 12 на ПК. Подвергаясь этому подходу, группа Khronos, которая поддерживает Vulkan, объявила о своих собственных усилиях по поддержке Vulkan для MacOS и iOS, одобряет ли Apple это или нет, через тонкий слой перевода.

Khronos сотрудничает с Valve, LunarG и Brenwill Workshop для создания SDK и библиотек, которые позволяют разрабатывать Vulkan на macOS и iOS. Valve также расширил DOTA 2, чтобы создать версию, которая работает значительно быстрее при Vulkan на macOS, чем с использованием собственного OpenGL от Apple, как показано ниже:

Khronos приносит Vulkan в macOS, iOS, после того, как Apple отказывается от

Это изображение сравнивает Vulkan и собственный OGL-код на трех разных платформах: AMD FirePro D500 и Mac Pro (2013), Nvidia GT 650M (2012 MacBook Pro) и Intel Iris Pro MacBook Pro (2014). Не удивительно, что дискретное решение принесло бы наименьший эффект, так как Vulkan не может магически исправить ограниченную пропускную способность EDRAM или памяти, но ускорение 1.13x на Intel интегрировано, все еще достаточно, чтобы заметить.

Khronos приносит Vulkan в macOS, iOS, после того, как Apple отказывается от

Вот краткий обзор того, как код отображается и переводится с Vulkan на Metal API. Конечным результатом является игра, которая работает лучше, чем собственный вариант OGL, по крайней мере теоретически.

Хронос отмечает, что из инициативы Vulkan Portability Initiative необходимо было удалить только несколько функций для достижения этой цели, в том числе:

Долгосрочная цель - улучшить совместимость функций и расширить поддержку как на уровне перевода, так и охватить другие конкурирующие API, такие как DirectX 12. Самый яркий взгляд на это усилие совместимости заключается в том, что уровень перевода Vulkan может упростить поддержку DirectX 12 игр в среде, отличной от Windows, хотя такая поддержка исторически была достаточно сложной, чтобы позволить мне немного поддаться рисованию этого вывода. Однако в любом случае эти изменения предполагают, что Mac-игры могут стать стимулом, если другие разработчики предпочтут поддерживать усилия Khronos в этом пространстве.