LINUX.ORG.RU

Khronos Group анонсирует Vulkan, наследника OpenGL

 , , , ,


1

6

Третьего марта на конференции GDC Khronos Group анонсировали новый стандарт графических API, кодовое название Vulkan. Данный шаг являлся весьма предсказуемым, поскольку практически все конкурирующие API уже начали идти навстречу многопоточной и более близкой к железу архитектуре - здесь можно упомянуть и Apple Metal, и DirectX 12, и AMD Mantle.

Vulkan представляет из себя написанный с нуля дизайн современного графического API для высокоэффективной отрисовки и вычислений на GPU. Планируется, что Vulkan будет работать на широком спектре устройств, начиная от рабочих станций и ноутбуков и заканчивая мобильными телефонами, игровыми консолями и встраиваемыми системами. Несмотря на то, что анонс уже произошёл и Vulkan разрабатывается Khronos Group и заинтересованными компаниями ещё с июня прошлого года, спецификация ещё не окончательна и стабилизируется предположительно к концу года. Обещано, что Vulkan будет работать на любом железе, поддерживающем OpenGL ES 3.1 и выше (Nvidia начиная с GeForce 400 series, AMD начиная с Radeon HD 5000 Series, Android начиная с Lollipop - примеч. перев.) Ожидать свершений на ниве графических драйверов и библиотек пока не стоит, но некоторые демо-сценарии могут появиться на GDC уже сейчас.

Хотя поддержка Vulkan ляжет тяжёлой ношей на плечи разработчиков Mesa, учитывая, что этой открытой библиотекой ещё не достигнута даже совместимость с OpenGL 4.0, поддержка API Vulkan обещает быть проще по архитектурным особенностям, нежели OpenGL. Упрощённая архитектура будет означать также облегчение портируемости между поставщиками различных GPU, уменьшение лишней нагрузки, а переход на SPIR-V (новое промежуточное представление и язык скомпилированных шейдеров, замена LLVM-IR) будет означать большой выигрыш в производительности. Также должен отметить, что упразднится деление на десктопный и урезанный мобильный (ES) API. EGL, а именно слой, который отвечает за абстракцию над оконной системой, будет интегрирован в Vulkan, но в спецификации этого пока ещё нет.

К вящей радости разработчиков игр, Vulkan также предоставляет многослойную архитектуру, в которой, к примеру, слои отладки и валидации могут быть загружены только при необходимости, появляется возможность контролировать GPU практически напрямую, отсутствуют архитектурные преграды к многопоточному исполнению и обеспечивается полная кросс-платформенность. NVIDIA, Epic Games, Oculus, Sony и ARM уже являются вендорами Vulkan и принимают участие в разработке и продвижении новой спецификации. Среди других сюрпризов можно отметить Valve и LunarG, которые уже сейчас работают над инструментами для загрузки слоёв нового API по требованию и ожидают от сообщества реакции на анонс.

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

>>> Фороникс

★★★

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 2)

Ответ на: комментарий от anonymous

Старые ещё долго никуда не денутся. Огромное количество софта и старых устройств. Требования к железу слишком высоки(как я понял, они такие ради compute shaders). Ещё лет десять будет зоопарк, а потом новых апи нарожают

anonymous
()
Ответ на: комментарий от Dron

Обёрток, объединяющих opengl и directx уже полно, дописать новый апи не будет проблемой. Правда, это несколько нивелирует сильные стороны каждого

anonymous
()
Ответ на: комментарий от FreeLiver

Не нашел я там никакого даже драфта спецификации, нечего пока читать. Он упроститься если выкинуть поддержку OpenGL, но тогда такой драйвер не нужен.

Там для ленивых на главной есть pdf с картинками как в букваре.

andreyu ★★★★★
()
Ответ на: комментарий от FreeLiver

если выкинуть поддержку OpenGL, но тогда такой драйвер не нужен

/0. вот если добавить d3d — это совсем другой разговор(к сожалению)

anonymous
()
Ответ на: комментарий от azazello

VK_XXX и vkXxx

незаконное использование Русского бренда

anonymous
()
Ответ на: комментарий от anonymous

В смысле, вулканодрова запилить раньше, чем огл, а то от Александера никакого толку, с мая на всё забил.

anonymous
()
Ответ на: комментарий от andreyu

Там для ленивых на главной есть pdf с картинками как в букваре.

Я это нашел и прочитал еще до того как писать комментарии. Обычный рекламный буклет. Я не против Vulkan, просто информации мало пока. И я не верю что вендоры тут же начнут выкидывать поддержку OpenGL из драйверов и появление универсального GL->Vulkan враппера. Когда-нибудь потом спустя годы.

FreeLiver ★★★
()
Ответ на: комментарий от FreeLiver

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

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()

новость, вроде как, хорошая. Но почему не назвать его OpenGL 5 и не сделать совместимым со старым OpenGL?

OpenMind ★★★★
()
Ответ на: комментарий от OpenMind

Там в соседней теме тоже легаси-гауно не выбросили.

arcanis ★★★★
()
Ответ на: комментарий от Freyr69

Выкинуть OpenGL с драйвера? А куда вы его транслировать собрались, если вулкан не поддерживает железо? Это все равно, что транслировать DirectX 9 через DirectX 12 на железе времен Windows 7.

xake
()
Ответ на: комментарий от anonymous

Что я слышу. Линуксоиды уже догнали по потребительскому задротству игрунов на форточках? А как же холодильники, микроволновки, Raspberry Pi?

xake
()
Ответ на: комментарий от xake

холодильники, микроволновки и Raspberry Pi — не legacy, и если нужно железо будет соответствовать современным требованиям. никто в здравом уме не использует в embedded мамкин p4

anonymous
()
Ответ на: комментарий от anonymous

А что по поводу HTPC, моноблоков, ноутбуков? Чип перепаяешь? Или за новым побежишь? Как новый «революционный» DirectX выходит, так сразу поливают помоями, а как OGL сменили - готовы очередь занимать. Двойные стандарты.

xake
()
Ответ на: комментарий от FreeLiver

Обычный рекламный буклет.

В котором достаточно информации для ответа на ваш вопрос.

Я не против Vulkan, просто информации мало пока.

Угу, пока мало.

И я не верю что вендоры тут же начнут выкидывать поддержку OpenGL из драйверов и появление универсального GL->Vulkan враппера.

Вероятно так.

Когда-нибудь потом спустя годы.

Поживем, увидим.

andreyu ★★★★★
()
Ответ на: комментарий от anonymous

По последней статистике стима, количество несовместимых с этим API чипов - минимум 18%. И это только интеловские. Просто вдумайся в эти цифры.

xake
()
Ответ на: комментарий от OpenMind

новость, вроде как, хорошая. Но почему не назвать его OpenGL 5

Потому, что это не opengl.

и не сделать совместимым со старым OpenGL?

Нет смысла тянуть все это говно мамонта в наше время.

andreyu ★★★★★
()
Ответ на: комментарий от OpenMind

Потому что опенгл родом из 90х и на момент версий начинающихся с единицы был адекватен 90м годам без многоядерных процессоров и программируемых видеокарт. С их появлением на него начали накручивать слоями говна костыли для поддержки прогресса. Вершиной данной наркомании лично я считаю glVertexAttribPointer с Undefined Behaviour прямо в официальной спецификации. К версии 3.0 кронос начало отпускать и они спешно начали пытаться от костылей избавляться с помощью core profile, но толком не получилось, Опенгл с каждой версией становился все более упоротым и упоротым.

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

anonymous
()
Ответ на: комментарий от andreyu

Потому, что это не opengl.

Офигенный ответ. DirectX в 10 версии ж по сути капитально изменился, но название не поменял. При этом умел слой совместимости с 9.0с. Те видухи что не поддерживали бы новый стандарт, шли бы со старым OpenGL, а те что тянут новый работали бы с ним. Какая религия так сделать с OpenGL запретила?

Нет смысла тянуть все это говно мамонта в наше время.

Ну так не нужно тянуть, но и обрезать тупо на новом железе поддержку тоже нельзя.

OpenMind ★★★★
()
Ответ на: комментарий от anonymous

С одной стороны, согласен. Но с другой - нельзя заниматься такими адскими закапываниями. Как минимум переход должен длится 3 года и была бы возможность в современном дистре загрузить старый OpenGL для совместимости или по необходимости.

OpenMind ★★★★
()
Ответ на: комментарий от OpenMind

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

Винда же поддерживает и огл(хоть и древний) и д3д.

Freyr69 ★★★
()
Ответ на: комментарий от anonymous

Плевать на compute, главное - программируемый pipeline, не всякое железо так умеет.

anonymous
()
Ответ на: комментарий от xake

На VC4, скорее всего, Vulkan заведется.

anonymous
()
Ответ на: комментарий от Freyr69

Винда из коробки поддерживает 1.1 (затычка), но с драйвером от производителя версия самая последняя, причём поддержка в драйверах линукса время от времени отставала от виндовой.

EvilFox ★★
()
Последнее исправление: EvilFox (всего исправлений: 1)
Ответ на: комментарий от OpenMind

У меня друг недавно учил OpenGL и просил меня статей/советов, потому что в сети новичку невозможно понять, это уже устаревшее легаси или новый туториал, почему надо использовать vbo, когда у NeHe glBegin, почему в одних туториалах нормали задаются glVertexAttribPointer а в других glNormalPointer. В dx такой проблемы нет, потому что в названии функции версия апи, а в OpenGL порог вхождения необоснованно высок из-за необходимости разбираться сразу во всех версиях сразу. Я очень рад, что появился новый апи, который выбросит всё легаси на помойку теперь по-настоящему, а не как с OpenGL 3

anonymous
()
Ответ на: комментарий от anonymous

В dx такой проблемы нет, потому что в названии функции версия апи, а в OpenGL порог вхождения необоснованно высок из-за необходимости
разбираться сразу во всех версиях сразу. Я очень рад, что появился новый апи, который выбросит всё легаси на помойку теперь по-
настоящему, а не как с OpenGL 3

Что тогда ты другу не посоветовал изучать SDL ? Да ,надстройка ,но хорошая,разработчики SDL хорошо оптимизировали вызовы OpenGL,вря дли неопытный программист сделает лучше .

maximnik0 ★★
()
Ответ на: комментарий от OpenMind

Офигенный ответ. DirectX в 10 версии ж по сути капитально изменился, но название не поменял.

Смена названия директа - это смена версии.

При этом умел слой совместимости с 9.0с.

Нет между версиями никакой совместимости. И никогда не было. Просто каждая следующая версия деректа тянет за собой и весь старый хлам.

Те видухи что не поддерживали бы новый стандарт, шли бы со старым OpenGL,

Вы запутались в понятиях.

а те что тянут новый работали бы с ним. Какая религия так сделать с OpenGL запретила?

Просто разберитесь в понятиях, тогда и таких вопросов у вас не будет.

andreyu ★★★★★
()
Ответ на: комментарий от maximnik0

Что тогда ты другу не посоветовал изучать SDL ? Да ,надстройка ,но хорошая,разработчики SDL хорошо оптимизировали вызовы OpenGL,вря дли неопытный программист сделает лучше .

Пипец, вы сравнили теплое с мягким.

andreyu ★★★★★
()
Последнее исправление: andreyu (всего исправлений: 1)
Ответ на: комментарий от maximnik0

разработчики SDL хорошо оптимизировали вызовы OpenGL

Штоу.

Deleted
()
Ответ на: комментарий от ee1337a

ну понятное дело, но холливар о графических апи станет ср*чём.

OpenMind ★★★★
()
Ответ на: комментарий от anonymous

что в этом посте не так.

glVertexAttribPointer

glNormalPointer

э... оно ж вроде это разные вещи. Вроде glVertexAttribPointer и glVertexPointer действуют одинаково. Хотя там какие-то свои особености, так далеко я не заползал.

OpenMind ★★★★
()
Ответ на: комментарий от andreyu

Нет между версиями никакой совместимости. И никогда не было. Просто каждая следующая версия деректа тянет за собой и весь старый хлам.

Он что жрать просит? Если это удобно и позволяет API стать более универсальным, то я не против. Лишние ххх мб для старого хлама найдётся.

OpenMind ★★★★
()
Ответ на: комментарий от OpenMind

glVertexAttribPointer задаёт произвольный аттрибут вершины, а glNormalPointer задаёт нормали, которые теперь легаси и вместо них задаётся пользовательский аттрибут через glVertexAttribPointer. glVertexPointer тоже легаси, раньше им задавали позиции вершин. Ещё у новичков бывает путаница с VAO и VA, когда прочитав про VA как устаревший, начинают избегать туториалов про няшный VAO. Я обожаю OpenGL уже лет 15, но мне реально жалко людей, которые начинают учить его сейчас.

anonymous
()
Ответ на: комментарий от anonymous

Я обожаю OpenGL уже лет 15, но мне реально жалко людей, которые начинают учить его сейчас.

О_О Не нужно жалеть) Не думаю что их путь хуже чем ваш. И хотя я так глубоко не копал OpenGL, но мне он нравился. По моему даже софт написаный на легаси будет годно пахать.

OpenMind ★★★★
()
Ответ на: комментарий от Adonai

В Verilog (язык, на котором программируют ПЛИС) ключевых слов пара десятков и их можно запомнить за пять минут. В Python есть куча стандартных библиотек, всякого сахара типа исключений и ООП, на изучение всех могут уйти многие месяцы. Однако порог вхождения в Python гораздо ниже.

KivApple ★★★★★
()
Ответ на: комментарий от OpenMind

совместимость — рак. там, где урон от игнорирования её не больше, чем профит, её можно игнорировать

anonymous
()

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

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

Тут только я вижу противоречие?

router ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.