Valve: DirectX 12 не имеет смысла для разработчиков игр, выбирайте Vulkan.
Интерфейс прикладного программирования (application programming interface, API) DirectX 12 обещает существенно увеличить производительность видеоигр в операционной системы Windows 10 благодаря более эффективному использованию современного оборудования по сравнению с предшественниками. Тем не менее, Valve Software считает, что нет смысла использовать DirectX 12, когда на подходе кросс-платформенный API Vulkan.
Все современные интерфейсы программирования приложений, используемые при создании видео игр — Apple Metal, Microsoft DirectX 12 и Vulkan, разрабатываемый Khronos Group — считаются низкоуровневыми API и обладают в целом аналогичными возможностями. Все три API эффективно используют современные многоядерные процессоры (в частности, обрабатывают больше количество запросов на отрисовку, чем интерфейсы предыдущих поколений), позволяют использовать графические процессоры для вычислений общего назначения, позволяют получить низкоуровневый доступ к ресурсам GPU (в том числе прямой доступ к памяти GPU), снижают значение драйвера графической карты для производительности в играх и т. д. Все три API совместимы с широким спектром аппаратного обеспечения, разработанного разными производителями.
Есть не так много причин, чтобы вообще использовать DX12 для вашей игры.
Поскольку все три интерфейса программирования приложений созданы с разными целями, они имеют ряд отличий. Apple Metal совместим исключительно с Apple OS X и Apple iOS, а также рассчитан на работу с аппаратным обеспечением, применяемым Apple. Microsoft DirectX 12 совместим c огромным количеством графических процессоров разных разработчиков, но при этом исключительно с операционной системой Windows 10. В то же время Vulkan, который имеет много общего с AMD Mantle, но разрабатывается усилиями Khronos Group, совместим со всем спектром программного и аппаратного обеспечения, включая операционные системы Google (будущие версии Android) и Microsoft (Windows 7/8/10). Таким образом, Vulkan предпочтительнее для тех разработчиков программного обеспечения, которые хотят, чтобы их приложения работали на самых разных типах устройств.
«Если только вы не столь агрессивны, что планируете начать поставки игры на DirectX 12 в этом году, я бы сказал, что на самом деле есть не так много причин, чтобы вообще использовать DX12 для вашей игры», — сказал Дэн Гинзбург (Dan Ginsburg), разработчик программного обеспечения из Valve, на индустриальной конференции. «Причина этого в том, что Vulkan охватит и Windows 10, и другие платформы, а также аппаратное обеспечение. […] Мы планируем поддержать Vulkan не только на Windows 10, но и на Windows 7, Windows 8 и Linux».
Для Valve, которая занимается разработкой своей собственной Steam OS для игровых ПК для гостиных (которые компания называет Steam Machines), использование DirectX 12 действительно имеет малый смысл. Учитывая, что Steam OS базируется на Linux, концентрация на Vulkan крайне логична для компании.
Хотя для многих разработчиков кроссплатформенных приложений больше подходит Vulkan, DirectX 12 всё еще имеет ряд преимуществ.
Так, DirectX 12 поддерживается коммерческой ОС, игровой консолью Xbox One, разработчиками нескольких GPU (AMD, Intel, NVIDIA, Qualcomm) c готовыми драйверами, а также имеет ряд преимуществ в области поддержки многочиповых (multi-GPU) графических подсистем. Кроме того, DirectX 12 готов.
Интерфейс прикладного программирования Vulkan может стать настоящей революцией на рынке ПО, но его разработка до сих пор не завершена. Кроме того, для него нет даже бета-драйверов под Windows, а версия Google Android с его поддержкой до сих пор недоступна разработчикам.
Как результат, многим создателями программного обеспечения, которые планируют выпускать свои продукты в ближайшие 9–12 месяцев, просто придётся использовать Microsoft DirectX 12, если они хотят запускать свои приложения на Windows.