Чем отличается doom opengl от vulkan api. Проект Vulkan: OpenGL будет дополнять новый API. Будет ли Vulkan на Mac OS X

Чем отличается doom opengl от vulkan api. Проект Vulkan: OpenGL будет дополнять новый API. Будет ли Vulkan на Mac OS X

Vulkan - это новое API для создания 3D приложений. Его разработало Khronos Group, которая занимается и развитием OpenGL. Большой вклад в создание API вложила компания AMD. Хотя и многие другие компании работали над ним, например Microsoft, Apple, Google, Sony. Это API поддерживают такие создатели "железа" как: NVidia, AMD, Intel, Qualcomm, Imagination Technologies, ARM.

Чем отличается Vulkan от OpenGL

Статья на Википедии выделяет 4 основных отличия:

  1. Никаких глобальных состояний, все состояния привязаны к объектам.
  2. Состояния привязываются к буферу команд, а не к контексту, как в OpenGL.
  3. В OpenGL работа с памятью и синхронизация происходит не явно, в Vulkan разработчик будет иметь возможность контролировать это.
  4. Отсутствие проверки на ошибки в драйвере, для ускорения работы.

Исходя из того, что новое API появилось в наши дни и на протяжении 18 месяцев Khronos Group его разрабатывала в тесном контакте с ведущими IT компаниями мира, можно делать вывод, что это API должно лучше подойти для современных 3D приложений.

Ниже вы можете увидеть схему работы Vulkan:

Будет ли Vulkan на Mac OS X?

После того как спецификация Vulkan была опубликована, найти драйвера для современных видеокарт не составляет труда. Но это только для Windows и Linux. Так как вулкан это только кроссплатформенный API, который не требует особой поддержки со стороны видеокарт, обновив драйвер, вы можете его начать использовать (если конечно ваша видеокарта в списке поддерживаемых).

Для Mac OS X всё намного сложнее. В El Capitan поддержки Vulkan нет, хотелось бы ждать в следующих версиях, однако есть одно "но". Apple в El Capitan добавила поддержку своего API - Metal. Раньше он использовался только для устройств на iOS. Исходя из этого, а также учитывая тот факт, что Apple привыкло контролировать всё, что касается их устройств, можно сделать вывод, что Vulkan может и не появиться на Mac OS X.

Что дальше?

По моему мнению, что ждёт Vulkan во многом зависит от того, насколько активно его начнут использовать разработчики и поддерживать производители видеокарт. Если развитие OpenGL на этом остановится, то для новых приложений выбора не будет и их придётся разрабатывать на Vulkan. Но существуют тысячи приложений на OpenGL, которые никто так сразу не ринется переписывать на Vulkan. Ещё и вопрос с Mac OS X не ясен, так как это очень распространённая система в США. Если для Mac OS X будет Metal, под Windows - DirectX, а под Linux Vulkan, то Vulkan никак не облегчит разработку кроссплатформенных приложений.

Введение

Если вы столкнулись с проблемой низкого FPS в DOOM и вам хочется ее исправить, то вы пришли как раз по адресу.
Магическая штука Vulkan API поднимает FPS в среднем на 15-25 кадров (зависит от конфигурации вашего компа), превращая некомфортные 20-30 FPS в совершенно играбельные 50-60.

ВНИМАНИЕ! ПРЕЖДЕ ЧЕМ ВЫПОЛНЯТЬ ДЕЙСТВИЯ, ОПИСАННЫЕ В РУКОВОДСТВЕ, НЕОБХОДИМО УБЕДИТЬСЯ, ЧТО ВАШ КОМПЬЮТЕР СООТВЕТСТВУЕТ ХОТЯ БЫ МИНИМАЛЬНЫМ СИСТЕМНЫМ ТРЕБОВАНИЯМ!

Что такое Vulkan API?

Что это вообще за зверь и как ему удается так ощутимо повысить производительность?

Vulkan API - графический интерфес программирования, созданный для отображения 3D и 2D графики на ваших мониторчиках. Проще говоря, эта шняга использует ресурсы вашего компа для построения графики в играх. OpenGL и DirectX из той же оперы.

Почему он дает такой прирост к FPS? Я, конечно, могу начать вам рассказывать о супер-пупер технологиях, использующихся в нем, но для простоты просто скажу, что он использует компьютерное железно намного эффективнее, чем его предшественник OpenGL.

Как мне его включить?

Все очень просто, начнем с первого шага:

Шаг первый:

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

Шаг второй:

Запускаем сам DOOM. Заходим в Параметры>Расширенные и в пункте "Графический API" выбираем "Vulkan API" вместо "OpenGL". Перезапускаем игру.

Шаг третий:

Заходим в игру и радуемся повышению производительности!

ВАЖНО:

Повышение производительности очень сильно зависит от характеристик вашего компа. На моей конфигурации прирост составил аж 30 FPS, у кого-то может оказаться намного меньше, а кто-то вообще не почувствует разницы. Да и вообще, глупо ожидать от тостера хотя бы 30 FPS с Vulkan"ом, если он на минималках едва 10 выдает.

Игра не запускается после включения Vulcan API, что делать?

Причина один:

Вы не обновили драйвера, либо скачали не ту их версию. Перекачиваем более новую/стабильную версию.

Причина два:

Ваша видеокарта не может в Vulkan API. Такое тоже может случиться, но вероятность довольно мала. Если видеокарта подходит под минимальные требования - она точно может работать с Vulkan API. Если нет - откатываем игру к настройкам по умолчанию и мучаемся с OpenGL"ом

Как откатить игру обратно до OpenGL, если ничего не работает?

Если игра после перехода на Vulkan отказывается запускаться - вот способ перехода обратно на OpenGL:
Первым делом нужно зайти в папку сохранений, она находится по этому пути:
C:\Users\<имя_пользователя>\Saved Games\id Software\DOOM\base
Далее находим в ней файл DOOMConfig.local и открываем его блокнотом.
Ищем параметр r_renderapi и меняем в его значении 1 на 0 (1 - VulkanAPI, 0 - OpenGL)
Сохраняем файл и закрываем его. Теперь игра должна запуститься.

Огромное спасибо пользователю arikuto за найденную инструкцию!

Не забудьте оценить руководство или оставить свою критику/пожелания!

В разработке 3D-приложений, видеоигр и систем виртуальной реальности наступает новый этап. Совместными усилиями разработчики сделали важный шаг на пути к унификации кода и более эффективному использованию аппаратных ресурсов. Консорциум Khronos Group, насчитывающий более ста компаний, официально представил первую версию открытого кроссплатформенного API под названием Vulkan (ранее – GLNext). Он обеспечивает непосредственный контроль над ГП и ЦП, устраняя «узкие места» и повышая общую производительность.

На форумах часто можно увидеть однотипные вопросы о том, раскроет ли процессор X видеокарту Y и какая конфигурация при одинаковом бюджете будет производительнее в конкретных приложениях. Он возникает из-за того, что современные ГП обладают большей производительностью, чем ЦП того же уровня и поколения. В играх и других 3D-приложениях временами возникают ситуации, когда на ЦП приходится большая нагрузка, а ГП простаивает. Например, процессор обсчитывает взаимодействие игроков и объектов, а видеокарта ждёт от него данные, чтобы отрисовать следующий кадр. Из-за несбалансированности нагрузки возникают задержки, а динамичная игра может превратиться в покадровое слайд-шоу даже с мощной видеокартой.

Указанные проблемы характерны для платформы PC и практически незнакомы владельцами игровых консолей. Разработчики консольных игр всегда знают детальные спецификации приставок и могут выполнять глубокую оптимизацию кода с учётом их особенностей. Компьютеры, ноутбуки, планшеты – это зоопарк не только из разных конфигураций, но и принципиально отличных архитектур. При создании игр для столь разношёрстной платформы приоритетом становится универсальность кода, что негативно сказывается на скорости его исполнения.


Разработчики операционных систем по-разному пытаются решить проблему низкой эффективности кода сторонних приложений. Microsoft начала искать пути оптимизации графических вычислений давно, однако реальная поддержка низкоуровневых операций появилась только в DirectX 12. Этот API доступен лишь в одной ОС – Windows 10. В свою очередь, положение Apple оказалось ближе к таковому у производителей игровых консолей. Когда одна и та же компания выпускает мобильные процессоры и софт, его согласованной работы добиться куда легче. Тем не менее, пути оптимизации самой разработки игр и приложений у Apple далеко не исчерпаны. В iOS 8 появился Metal API, также ориентированный на использование низкоуровневых операций.

Остальные крупные компании предпочитают действовать совместно и в рамках открытых стандартов. Появившийся 16 лет назад консорциум Khronos Group объединил более ста производителей, включая таких кровных друзей, как AMD, Nvidia и Intel. В своё время консорциум явил на свет открытые стандарты OpenGL, OpenCL, OpenCV и многие другие.


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

Подобно DirectX 12, Vulkan поддерживает прямой доступ к памяти GPU. Дополнительно Vulkan снижает зависимость скорости отрисовки от качества драйверов. За счёт трансляции кода шейдерных программ в промежуточный двоичный формат, их компиляцию можно выполнять уже на этапе разработки, а не во время запуска 3D-приложения.

Vulkan разрабатывается с середины 2014 года. В его основу легли графические библиотеки другого низкоуровневого API – AMD Mantle. Компания AMD также выступала в роли редактора официальных спецификаций. Помимо них Khronos group опубликовала ряд тестов, демонстрирующих преимущество нового API. Все они доступны на портале GitHub.

«У Vulkan есть огромный потенциал, – говорит Дин Секулик (Dean Sekulic), программист Croteam. – Если сказать о нём в одном предложении, то с появлением Vulkan завершилось давнее противостояние между борцами за производительность и переносимость кода. Сейчас мы портируем на него The Talos Principle в подтверждение новой концепции разработки».

Компания Valve спонсирует создание открытого SDK LunarG с поддержкой API Vulkan. Однако несмотря на открытые спецификации, доступные инструменты разработки, возможность глубокой оптимизации кода и другие преимущества, Vulkan ещё какое-то время будет редко используемым API. Большинство игроделов останутся верны DirectX 11/12 и OpenGL. Куда проще повысить системные требования или снизить качество графики, чем осваивать новые способы разработки. Понимая это, консорциум Khronos Group стремиться обеспечить поддержку Vulkan не только в новых ОС и графических решениях, но и на морально устаревших системах.

Сейчас Vulkan поддерживается в среде Windows (начиная с седьмой версии), Linux, SteamOS и Android. В ближайшее время ожидается добавление поддержки ОС Tizen от Samsung. Бета-версии драйверов с поддержкой API Vulkan уже выпустили AMD и Nvidia . На очереди Intel, Qualcomm, ARM и другие производители, входящие в консорциум Khronos Group. Демонстрацию Vulkan на графическом чипе ARM Mali можно увидеть в ролике ниже.

В настоящее время Vulkan можно протестировать на видеокартах с графическими чипами Nvidia GeForce GT 630 и выше, AMD Radeon HD 7700 и новее. Также API Vulkan поддерживает гибридные процессоры AMD с графическим ядром Radeon HD 8500 – 8900 и R2 – R9. Встроенная графика десктопных и мобильных процессоров Intel поддерживается Vulkan начиная с семейства Core пятого поколения.

В полной мере возможности нового API раскроются перспективными графическими процессорами Nvidia серии Pascal и AMD с архитектурой GCN четвёртого поколения. Соответствующие видеокарты предположительно войдут в серию GTX 1xxx и Radeon Rx 400. По неофициальным данным начало их продаж планируется на второй квартал 2016 года.

Прежде чем говорить о деталях и тонкостях Vulkan API, думаю нужно сказать несколько слов о том, что же это такое и с чем его едят. Если сравнивать Linux с Windows, то Vulkan(который, все еще находится в разработке) это Directx, набор библиотек, для улучшения быстродействия в основном в компьютерных играх. Как известно, на платформе Linux, можно запускать игры с помощью , PlayOnLinux или коммерческой версии . Но не все игрушки запустятся и будут работать как следует, а все из-за проклятого API Directx.

Забыл сказать, что для производительности в играх для.nix платформ используется OpenGL, аналогичное программное обеспечение, как Directx для Windows. Так вот, Vulkan API, как сообщают разработчики из компании Nvidia (которые, в свою очередь, так же заинтересованы в реализации этого проекта) Vulkan API, будет дополняться устаревшим OpenGL. В свою очередь, это означает, что менее ресурсозатратные объекты, будут обрабатываться именно с помощью OpenGL, а когда приходит время , то тут в дело будет вступать новый проект.

Преимущество Vulkan API

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

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

Перспективы развития Vulkan API

К сожалению, точная дата выхода, пока неизвестна, также держатся в секрете какие, игры, получат поддержку нового API. В свою очередь, компания AMD (которая сейчас очень активно сотрудничает с разработчиками) намекнула, что они работают над новой игрой, которая будет использовать Vulkan API, либо какая-то игра будет портирована.

Забыл упомянуть, что новый проект будет кроссплатформенным и даже Android, будет работать с ним.

Дальнейшие новости о проекте Vulkan API, будут известны с 14 по 18 марта, во время конференции The Game Developers Conference (GDC).

Все мысли по поводу Вулкана, оставляем в комментариях. Очень интересно узнать, станет ли Linux, игровой платформой или же Windows, снова придумает, что-нибудь сверхъестественное.

Перевод, комментарии: alfabuster, специально для сайта



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows