Что такое Vulkan и как он отличается от OpenGL?

Группа Khronos (орган по стандартам OpenGL) только что объявил Vulkan :

  

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

Их страница довольно marketese / жаргон - тяжелый, как в пресс-релизе . Проще говоря, что делает Vulkan для разработчиков игр? (Гейб Ньюэлл цитируется как сильно в пользу, без дальнейших объяснений.)

В чем именно отношение Вулкана к OpenGL? Его предыдущее имя «glNext» (сокращение от «Инициатива OpenGL нового поколения») заставляет его звучать как замена.


Обновление: Vulkan 1.0 spec был выпущен 16-02-2016.

133 голоса | спросил Anko 3 MarpmTue, 03 Mar 2015 23:54:07 +03002015-03-03T23:54:07+03:0011 2015, 23:54:07

3 ответа


105

Vulkan - это новый API для аппаратно-ускоренной графики (и общего вычисления) с использованием традиционных графических процессоров. OpenGL будет продолжать развиваться, поскольку он является API более высокого уровня, чем предполагается Vulkan. Первоначально упоминалось «glNext», можно сделать вывод, что Vulkan, скорее всего, станет «OpenGL 5», но что орган по стандартизации в конечном итоге решил, что новое имя будет лучше совпадать с относительно чистым разрывом, которое API намерен сделать из существующих OpenGL-парадигмы.

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

  • API ориентирован на асинхронную генерацию командных буферов по нескольким потокам и последовательную обработку этих буферов в конвейере команд. Это отражает реалии современного оборудования. Большинство высокопроизводительных и /или высокопроизводительных программ, основанных на OpenGL, сегодня реализуют такое поведение самостоятельно; с поддержкой API это само по себе означает, что разработчикам не нужно реализовывать и поддерживать эту структуру самостоятельно, или что они могут сделать это с меньшими усилиями.
  • Задачи управления резьбой и памятью остаются в приложении, а не водителю, что позволяет разработчикам игр более контролировать эти поведения и, следовательно, потенциально более точный подход к этим поведенческим потребностям для удовлетворения их индивидуальной игры.
  • Уровни проверки и диагностики могут быть независимо включены, что позволяет теоретически лучше интегрировать инструменты с API (что само портило сам OpenGL) и отключить чрезмерную проверку, теоретически позволяя « графика на третьем уровне ", чтобы быть намного более результативным.
  • Не существует жесткого разграничения API между версиями для мобильных и настольных компьютеров, что теоретически облегчит перенос кросс-платформенных игр, и если ничто иное не уменьшит головные боли для проверки версий, которые все ненавидят.

Vulkan очень похож на C-like /OpenGL-подобный в поверхностной структуре (внешний вид API-вызовов и т. д., однако он лучше набирается (в том, что не все является открытым int, есть соответствующие typedefs и т. д.).

Он намного ниже уровня OpenGL. Можно ожидать скачок в оперативной настройке и сложности между OpenGL и Vulkan, как это было замечено в переходе D3D9 на D3D10, который выявил намного больше деталей, связанных с закрытием устройства GPU, для клиента API. Переход на самом деле более сродни D3D11-12, так как D3D12 сам по себе очень похож на API для Vulkan, способный.

ответил Josh Petrie 4 MaramWed, 04 Mar 2015 00:17:24 +03002015-03-04T00:17:24+03:0012 2015, 00:17:24
13

Чтобы уточнить будущее OpenGL:

OpenGL может достичь сопоставимой производительности для Vulkan, в призывах рисования в секунду, а также в отношении общих служебных накладных расходов:

  • Самые последние расширения OpenGL фактически удаляют много накладных расходов драйверов, делая все без привязки (например, ARB_direct_state_access (4.5 ядро), ARB_bindless_texture , ...).
  • С постоянным отображением ( ARB_buffer_storage , ядро ​​в 4.4) к буферной памяти можно получить доступ непосредственно CPU, поэтому синхронизация с графическим процессором также явная, как и Vulkan.
  • Будущие расширения, такие как NV_command_list (см. презентация Siggraph Asia 2014 Тристана Лораха ), вероятно, предоставят OpenGL ту же «парадигму питания GPU», что и Vulkan.
ответил Alex 5 MarpmThu, 05 Mar 2015 12:09:00 +03002015-03-05T12:09:00+03:0012 2015, 12:09:00
1

Недавно Khronos объявила о выпуске полностью нового API Vulkan, который будет дополнять (и в некоторых случаях заменять) OpenGL и OpenGL ES. Vulkan - это низкоуровневый API, призванный привнести код «клейсер в металл», повышая производительность и эффективность. Он основан на API мантры AMD, и окончательная спецификация ожидается в конце этого года.

В этом посте Краткий обзор API Vulkan - Технический редактор Toptal Нермин Хайдарбегович объясняет, почему Vulkan может быть большой сделкой в ​​долгосрочной перспективе. Это может занять некоторое время, но этот кросс-платформенный API может значительно улучшить производительность 3D на некоторых устройствах, особенно многоядерные процессоры приложений, которые используются в миллиардах смартфонов и планшетов.

ответил Dmitry Pavlov 18 PM00000080000002131 2015, 20:53:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132