Домой / Музыка / Что лучше для gtx vulkan или opengl. Vulkan API (glNext) от Khronos Group

Что лучше для gtx vulkan или opengl. Vulkan API (glNext) от Khronos Group

В разработке 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, специально для сайта

Введение

Если вы столкнулись с проблемой низкого 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 за найденную инструкцию!

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

Тестовый стенд № 2 на базе платформы Intel Soket 2011

Тестовый стенд № 3 на базе платформы Intel Soket 1155

Тестовый стенд № 4 на базе платформы AMD Soket AM3 +

Тестовый стенд № 5 на базе платформы Intel Soket 1150

Все видеокарты тестировались на максимальном качестве графики программой MSI Afterburner. Целью теста является определить, как ведут себя видеокарты от различных производителей при одинаковых условиях. Ниже приведено видео тестового отрезка:

Наши видеокарты тестировались при разрешениях 1920х1080, 2560х1600 и 3840х2160 при максимальных настройках качества графики, допустимых Doom. AMD CrossFireX и SLI игрой в полной мере не поддерживаются и в тесте мы их не активировали. CrossFireX мы даже рекомендуем отключить, так как при его активации производительность падает в разы.

Тестирование при максимальных настройках качества 1920х1080 API OpenGL

Тестирование при максимальных настройках качества 1920х1080 API Vulkan

При данных настройках приемлемый показатель FPS показали видеокарты уровня Radeon R7 370 или GeForce GTX 750 Ti.

Тестирование при максимальных настройках качества 2560x1440 API OpenGL

При данных настройках приемлемый показатель FPS показали видеокарты уровня Radeon R7 370 или GeForce GTX 750 Ti. Radeon HD 7950 или GeForce GTX 770 .

Тестирование при максимальных настройках качества 2560x1440 API Vulkan

При данных настройках приемлемый показатель FPS показали видеокарты уровня Radeon R7 370 или GeForce GTX 750 Ti. Оптимальными решениями станут Radeon R7 370 или GeForce GTX TITAN.

Тестирование при максимальных настройках качества 3840х2160 API OpenGL

При данных настройках приемлемый показатель FPS показали видеокарты уровня Radeon R9 290 или GeForce GTX 970. Оптимальными решениями станут видеокарты уровня Radeon R9 290X или GeForce GTX 980.

Тестирование при максимальных настройках качества 3840х2160 API Vulkan

При данных настройках приемлемый показатель FPS показали видеокарты уровня Radeon R9 380X или GeForce GTX 970. Оптимальными решениями станут видеокарты уровня Radeon R9 290 или GeForce GTX 970.

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

Так же стоит отметить, что API Vulkan может рационально использовать лишь память видеокарты, и если игра потребляет больше, то производительность видеокарт падает до неиграбельного уровня...

Тестирование потребляемой игрой видеопамяти проводилось программой MSI Afterburner. За показатель брались результаты на топовых видеокартах от AMD и NVIDIA при разрешениях 1920х1080 и 2560х1440 с различными настройками сглаживания.

Тестирование при максимальных настройках качества memory GPU


Рекомендуемым объёмом использования видеопамяти для разрешения 1920х1080 станет 3076 мб видеопамяти, для разрешения 2560х1440 - 3076 мб видеопамяти и для разрешения 3840х2160 около 4096 мб видеопамяти.

Тестирование процессорозависимости мы провели на 16 моделях базовых конфигураций, которые актуальны на сегодняшний день. Тест проводился в тех местах, где значение видеокарты для игры минимально и её загрузка составляла менее 99%, в этот раз при разрешении 1920х1080.

Тестирование при максимальных настройках качества 1920х1080 API OpenGL

Тестирование при максимальных настройках качества 1920х1080 API Vulkan

Производительность процессоров в игре при использовании API Vulkan не только возрастает, но и позволяет избавиться от проблем, когда производительность падала из-за избытка процессорных ядер.

Doom задействует до 16 вычислительных потоков, но полностью использует лишь 4 ядра.

Тест проводился на базовой конфигурации Core i 7 5960Х@4.6 ГГц c количеством предустановленной памяти 32 GB DDR4 2400 MGz. За показатель бралась вся используемая оперптивная память. Тест оперативной памяти на всей системе проводился на различных тестовых стендах без запуска постороних приложений(браузеров и т.п.).

Тестирование потребления игрой ОЗУ при различных настройках качества

Как мы видим объём потребляемой оперативной памяти в Doom находится в пределах 3000 мегабайт.

Тестирование потребления системой ОЗУ


При наличии системы с 6-мя гигабайтам Doom потребляет все 5.5 гигабайт ОЗУ. При наличии системы с 8-ми гигабайтами потребление ОЗУ всей оперативной памяти составило 6 гигабайта. С системой на 16 гигабайт потребление общей памяти составило почти 7 гигабайт. И при наличии 32 гигабайт оперативной памяти система потребляет 7.2 гигабайта ОЗУ.

На минувшей неделе был представлен API Vulkan, о широкой поддержке которого заявили AMD и NVIDIA. Новый графический интерфейс разрабатывал Khronos Group, консорциум, основанный в 2000 году. Khronos Group отвечает за разработку и поддержку открытых стандартов в сфере мультимедийных приложений на разных платформах и устройствах. Консорциум поддерживают AMD и NVIDIA, а также многие другие компании.

На минувшей неделе была ратифицирована финальная версия 1.0 API Vulkan. AMD и NVIDIA представили соответствующие бета-драйверы. AMD заранее выпустила бета-версию Radeon Software еще 14 февраля. NVIDIA представила драйвер GeForce 356.39, который тоже ориентирован на поддержку API Vulkan.

Подход API Vulkan очень похож на API Mantle. Суть заключается в том, чтобы разработчики получили более глубокий доступ к «железу», чтобы выжать из него максимум. Такой подход позволяет максимально избежать существующих «узких мест». С другой стороны, разработчики должны точно знать, что они делают – например, при работе с памятью. Интерфейс OpenGL не так популярен, как DirectX, но позволяет выжать больше.

Интерфейс API Vulkan в версии 1.0 поддерживается под Windows 7, Windows 8.1, Windows 10, Android и Linux. Разработчики игр пока что не объявили о поддержки в конкретных играх, но здесь стоит дождаться Games Developer Conference, которая будет проводиться с 14 по 18 марта в Сан-Франциско. Из игровых движков пока есть информация о Source 2, который уже поддерживает API Vulkan. Процесс отладки облегчается поддержкой Valve, LunarG и Codeplay.

The Talos Principle

Хорошо, но какая игра или движок поддерживают API Vulkan? Игра The Talos Principle разрабатывалась компанией Croteam, которая и в прошлом была известна поддержкой многих графических API. И в последней итерации игра The Talos Principle не стала исключением – она поддерживает DirectX 9, DirectX 11, OpenGL и теперь Vulkan. Для студии разработчиков Vulkan является пробным шаром, хотя API Vulkan доступен в версии 1.0, поддержка пока находится в бета-стадии. На добавление поддержки разработчики Croteam затратили порядка трех месяцев. Но универсальный характер API позволяет вскоре представить вариант Linux.

API Vulkan теоретически совместим с несколькими платформами – но пока что тесты и сравнения можно провести только под Windows, причем здесь имеются свои ограничения. Реализация пока остается на очень раннем этапе. Путь рендеринга DirectX 11 совершенствовался многие годы, поэтому потенциала для оптимизации здесь уже нет. Здесь ситуация больше зависит от разработчиков драйверов, а именно AMD и NVIDIA. Игра The Talos Principle стала первой с поддержкой Vulkan. Поэтому пока нет возможности сделать сравнительный тест для оценки хорошей или плохой реализации поддержки.

Новые технологии первое время реализуются в примерах, подготовленных производителями. В случае DirectX 12 акцент был выставлен на Draw Calls, тот же тест 3DMark DirectX 12 опирается только на измерение производительности Draw Calls, игры DirectX 12, подобные Star Wars, тоже пытаются задействовать подобную нагрузку. Но The Talos Principle не так сильно зависит от высокой скорости Draw Call, чтобы низкоуровневый API дал большую разницу.

Поддержка API Vulkan версии 1.0 находится на ранней стадии, то же самое касается драйверов AMD и NVIDIA. Оба драйвера, по сути, относятся к бета-версиям, именно так их рассматривают производители GPU. Здесь обычно нет новых улучшений производительности или поддержки новых технологий, так что мы получаем шаг назад. Но как только определенный уровень разработки будет достигнут, драйверы обоих разработчиков GPU получат поддержку Vulkan в финальной версии. Когда это произойдет – не совсем понятно. Но пока ключевые приложения не используют Vulkan и игры с поддержкой API находятся в состоянии бета-версии, так что разработчики GPU могут спокойно дорабатывать свои драйверы.

Для тестов мы взяли нашу тестовую систему для видеокарт. Драйверы видеокарт AMD и NVIDIA мы уже описали выше. В настройках мы выставили максимальный уровень графики, но при этом протестировали и низкие разрешения вплоть до 1.280 x 720 пикселей, чтобы увеличить производительность Draw Call.

Тест The Talos Principle - 1.280 x 720 пикселей

Тест The Talos Principle - 2.560 x 1.440 пикселей

Тест The Talos Principle - 3.840 x 2.160 пикселей

Как можно видеть по результатам, API Vulkan дает существенный прирост по сравнению с OpenGL. Но до производительности DirectX 11 новый API не дотягивает. Тому есть несколько причин. С одной стороны, разработка под Vulkan находится в ранней стадии. Это касается и самого API, и драйвера, и игры The Talos Principle. По сравнению с OpenGL новый интерфейс позволяет освободить часть ресурсов и избежать «узких мест». Но DirectX много лет совершенствовался до текущего уровня. В любом случае, потенциал у API Vulkan очень хороший.

Если погрузиться в детали, то визуальных отличий между API Vulkan и DirectX 11 мы не обнаружили. Так что путь рендеринга очень хорошо адаптирован. У текущей реализации The Talos Principle видеокарты с 2 Гбайт памяти получают падение производительности, вероятно, из-за не самой эффективной работы с памятью. Как и Mantle и DirectX 12, API Vulkan может обращаться к ресурсам памяти на более глубоком уровне – сей факт можно рассматривать как преимущество, но он может стать и недостатком, если разработчики не смогут эффективно использовать память.

Несколько разочаровала ошибка в текущем драйвере NVIDIA, из-за которой после каждого теста приходилось перезагружать систему. Без перезагрузки игра «вылетала». Хотя с драйвером AMD мы не обнаруживали подобной ошибки.

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