Учебники

▷ Directx 12 против вулкана: борьба за лучший графический движок?

Оглавление:

Anonim

В настоящее время для мира ПК существует два первоклассных графических API, которые авторитетно управляют рынком. По этой причине мы предлагаем вам сравнение DirectX 12 Vs Vulkan.

Оба имеют долгую историю и целую толпу защитников и хулителей. Сегодня мы увидим различия, ключи каждого и попытаемся пролить свет на них.

Указатель содержания

Низкоуровневый графический API и «накладные расходы на драйвер»

API означает «интерфейс прикладного программирования» и представляет собой набор подпрограмм, которые могут использоваться разработчиком, которые также включают протоколы связи и утилиты, которые облегчают разработку программного обеспечения. Мы можем найти их практически для всего, и у каждого поставщика услуг есть такая помощь, чтобы реализовать свои системы простым и доступным способом.

Низкоуровневые API-интерфейсы более эффективно используют ресурсы графического процессора, освобождая процессор, но также могут лучше использовать преимущества многоядерных процессоров, которые есть у нас сегодня.

И DirectX 12, и Vulkan 1.1 - это API-интерфейсы, ориентированные на разработку игр и приложений, которые требуют помощи современных графических движков. В то же время они являются API-интерфейсами, поддерживаемыми драйверами наиболее важных разработчиков графических чипсетов, и, следовательно, быстрым и экономичным способом доступа к их функциям без необходимости знать их дизайн на очень низком уровне.

Низкоуровневый API, такой как этот, позволяет работать с аппаратным обеспечением с очень легким уровнем интерпретации, который позволяет разработчику лучше использовать аппаратное обеспечение, достигая лучших результатов с точки зрения производительности и эффективности, а также позволяет другим подсистемам освобождаться от дополнительной нагрузки. В мире ПК или мобильных телефонов он меньше зависит от общего процессора системы.

Два API, о которых мы поговорим сегодня, можно считать низкоуровневыми API, и обе разработки привели к все меньшей и меньшей зависимости от ЦП системы при достижении лучших результатов на уровне производительности и доступа к большему количеству графических функций. застав. Это два действующих API, которые ежегодно получают обновления, чтобы поддерживать их в соответствии с ожиданиями широкой общественности и разработчиков.

Низкоуровневые API напрямую влияют на другую вычислительную концепцию, которую мы называем «издержками драйвера», иными словами, это вторичные ресурсы, которые нам необходимы для выполнения определенных типов операций на компьютере. В случае графики это относится к дополнительным ресурсам, которые требуются графической карте для своей работы, и в этом случае это в основном центральное время обработки ЦП. Низкоуровневые API, которые мы здесь опишем, уменьшают эту зависимость, и фактически она стремится к 0.

Microsoft DirectX

DirectX возникает как необходимость стандартизации различных мультимедийных подсистем Windows и заменяет WinG для Windows 3.1. Он принят в Windows 95 как дополнительный пакет, и его вторая версия, DirectX 2.0, становится фундаментальным компонентом Windows 95 OSR2.

В DirectX мы находим несколько независимых API, таких как Direct3D, который действительно является рассматриваемым, DirectDraw, DirectMusic, DirectPlay и DirectSound. DirectX был способом назвать общие достижения во всех этих суб-API. Это API для Windows, но он также используется для разработки игр на консолях Xbox, поэтому мы можем считать его многоплатформенным API, но не бесплатным, как в случае с Vulkan.

DirectX 12, его последняя версия, работает с нами с 2014 года и не стоит на месте, а несколько месяцев назад она получила важные улучшения, такие как подпрограмма Direct RayTracing (DXR), которая была включена в обновленную версию Windows 10, выпущенную в октябре 1809 года.

Низкоуровневые API, такие как DirectX 12, имеют фундаментальное преимущество, которое заключается в уменьшении накладных расходов драйвера. Программисты теперь имеют возможность разрабатывать поведение графического процессора в своих программах и лучше управлять ресурсами графического процессора, особенно используя преимущества распараллеливания процессов. Это включает в себя лучшую поддержку нескольких графических процессоров в одной системе, даже если они не от одного производителя.

Они могут выполнять различные типы операций, обычно «целочисленные» или «с плавающей запятой», используя возможности совместимой графики, а также разделяя сложные операции на более простые, обрабатывая их параллельно на этих больших шинах. Хорошим примером является то, как AMD или Nvidia теперь могут обрабатывать 16-битные операции на своих 32-битных шинах, что значительно повышает эффективность их графики.

Этот API приблизил эффективность использования консольного графического процессора, где разработчики прекрасно знают доступное оборудование, вплоть до гетерогенной экосистемы, которая формирует ПК с бесконечно различными аппаратными возможностями.

В настоящее время DirectX 12 неожиданно доступен для Windows 7 и Windows 10, и хотя он не является напрямую совместимым с Xbox One, правда состоит в том, что практически 90% его функциональных возможностей используется для ПК, различия минимальны и это позволило Разработчики быстро адаптируют свои компьютерные игры для Xbox One и наоборот.

Вулкан из Хроноса

Vulkan является развитием низкоуровневого API OpenGL и поддерживается корпорацией Khronos. В мире ПК они играют второстепенную роль по сравнению с DirectX 12, но его различные адаптации к различным платформам, таким как Android, сделали его эталоном графики для мобильности. Он также совместим с Linux, являющимся отличной альтернативой игре в бесплатных системах.

Его большим достоинством является его высокая производительность параллельной обработки, который чрезвычайно эффективен в современных процессорах и графических процессорах, обеспечивает низкое использование первых и большое использование аппаратных средств последних. Он специально разработан для того, чтобы использовать преимущества многоядерных процессоров, обеспечивающих превосходное распределение нагрузки в процессорах этого типа, на самом деле он намного эффективнее для большего количества ядер, которые мы можем предоставить.

История Vulkan восходит к году после DirectX 12, и Khronos, которая является некоммерческой компанией, поддерживает ее так же часто или чаще, как Microsoft со своим собственным API. Он основан на API Mantle, который AMD разработала для своей архитектуры GCN, и это был еще один низкоуровневый API для сокращенного «драйвера служебных данных». AMD пожертвовала свои разработки Khronos, и это является основой одного из лучших графических API на рынке.

В дополнение к превосходному распараллеливанию эта конструкция также позволяет исключить предварительную компиляцию операций затенения на графическом процессоре, позволяя получить больше эффектов и отображать на экране более высокую скорость загрузки, в дополнение к более детальной настройке того, как оборудование обрабатывает операции или как мы получаем доступ к кадровый буфер доступен. Это, безусловно, API для ПК, который ближе всего к самому оборудованию, даже лучше, чем DirectX 12.

Vulkan также представляет низкоуровневые улучшения API для Android и других платформ.

Его последняя версия, Vulkan 1.1, представленная в конце 2018 года, добавляет важные улучшения, такие как поддержка HLSL, которая является альтернативой DirectX 12 для управления шейдерными операциями без предварительной компиляции, лучшей совместимостью с DirectX 12 (для многих подпрограмм). кроме графики), явная поддержка систем с несколькими GPU независимо от производителя и, конечно же, поддержка RayTracing.

Сильные и слабые стороны DirectX 12 против Vulkan

В дополнение к уже описанным общим функциям, таким как лучшее использование аппаратного обеспечения, больший контроль над ним и лучшее использование распараллеливания как GPU, так и CPU, эти два API также добавляют возможность выполнения общих вычислительных операций с графическими чипами с которые совместимы. Это позволяет совместимым графическим движкам, уже несколько поколений, иметь возможность выполнять сложные математические операции, которые могут использоваться программами всех видов, в том числе без графических компонентов.

В играх их также можно использовать для выполнения все более важных второстепенных операций, таких как вычисление реалистичной физики, искусственный интеллект, позиционные звуковые эффекты и т. Д.

Оба API имеют отличную поддержку от великих графических разработчиков, и AMD, и Nvidia стремятся предложить этим API соответствующие драйверы для достижения обоих, предлагая своим пользователям последние улучшения и повышая производительность и стабильность игр, использующих один. или другой API.

«Затраты на драйверы» у обоих очень низкие, на самом деле, как вы увидите в наших тестах, между ними почти нет различий, что также является признаком важной оптимизации драйверов обоих производителей.

Мы ограничили частоту кадров до 120 кадров в секунду для демонстрации Driver Overhead. В Dota 2 потребление CPU существенно снижается при том же FPS.

Единственное более очевидное отличие состоит в том, что Vulkan несколько меньше зависит от процессора, с более низким средним потреблением, и что он также гораздо более открыт для различных платформ, включая Windows и Linux и его гомогенизацию с OpenGL ES, которая является его мобильной версией, он продвигается дальше, объединяя платформы, на которых он движется.

DirectX 12 поддерживает разработчиков, которые, похоже, находят в этом API идеальную экосистему для сокращения своих затрат, поскольку он даже имеет отличную интеграцию в такие же фреймворки, как.NET Framework, где он объединяет тысячи чудес. с небольшой потерей производительности.

Разница в производительности в играх с двойным API

Поскольку движение демонстрируется при ходьбе, мы провели несколько тестов производительности в различных играх и тестах производительности, которые могут использовать эти два API для выполнения.

Тест драйвера 3DMark. Результатов в миллионах запросов, чем больше, тем лучше.

Пепел одиночества. Результаты в FPS, чем больше, тем лучше.

Странная бригада. Результаты в FPS, чем больше, тем лучше.

Мы суммируем лучшие аппаратные руководства, которые должны вас заинтересовать:

  • Лучшие процессоры на рынке Лучшие материнские платы на рынке Лучшие оперативные памяти на рынке Лучшие графические карты на рынке Лучшие SSD на рынке Лучшие корпуса или корпуса для ПК Лучшие источники питания Лучшие радиаторы и жидкостные кулеры

Как видите, результаты ровные, и мы видим различия между программами за и против одной и другой. Это оставляет нас с вопросом о том, что лучше, и ответ ясен, это зависит от программы и от того, как ее разработчик знает или хочет воспользоваться ее преимуществами. Осталось подумать, что в каждой игре разработчики будут использовать именно тот API, который наилучшим образом использует преимущества нашей графики, хотя очевидно, что оба варианта кажутся более чем компетентными. Что вы думаете о нашей статье о Directx 12 против Vulkan ? Мы хотим знать ваше мнение!

Учебники

Выбор редактора

Back to top button