Многие пользователи ПК находят в списке программ VulkanRT и нередко пугаются, так как самостоятельно это ПО они не устанавливали, а название сходно с вирусом, который последнее время доставил массу неудобств владельцам компьютеров. Но не стоит паниковать раньше времени, для начала разберёмся VulkanRT, что за программа , какие преимущества даёт пользователю и как она попадает на ПК.
Как программа попадает на ПК
Это один из основных вопросов, которые интересуют владельцев. Связано это с тем, что, как правило, установка происходит в фоновом режиме без подтверждения от пользователя. Получается, что в некоторой степени «Вулкан» распространяется вирусным способом, то есть владелец может и не заметить в какой именно момент была инсталлирована программа.
Как такое происходит? Обычно, неожиданное появление новой утилиты наблюдается на ПК, которые настроены на автоматическое обновление драйверов имеющихся компонентов. В этом случае система находит доступный драйвер и скачивает его на устройство. При этом от владельца не требуется никаких действий.
Api Vulkan || Что это и с чем его едят ? || Сравнение с DirectX
Как определить, что на вашем компьютере располагается именно правильный VulkanRT, а не вирусный софт?
- Программа находится через меню «Пуск» в разделе с приложениями, папка Vulkan 1.0.3.0.
- Также можно найти соответствующую папку по адресу C:Program FilesVulkanRT1.0.3.0.
- Содержимое состоит из нескольких файлов, обычно их 6, среди них программа инсталлятор и файл с информацией.
Если вышеперечисленные условия выполняются, значит, на вашем ПК установлен софт от компании NVidia, и можно не переживать за устройство. Утилиты NVidia и являются причиной появления нашей программы.
VulkanRT, что за программа
Разберёмся подробнее, что собой представляет программа, вокруг которой столько вопросов. На самом деле VulkanRT — это API, разработанная для разных платформ, то есть появиться она может как на Windows, так и на Андроиде. Предназначен софт для оптимизации графики.
Благодаря «Вулкану» становится возможным запускать видеоигры, использующие 3D-графику, с большей производительностью, при этом нагрузка на центральный процессор возрастает в небольшой степени. По факту софт — альтернатива OpenGL. Основное преимущество программы — она не требует оплаты лицензионных отчислений, то есть полностью бесплатна.
Рассмотрим преимущества, которые предоставляет VulkanRT владельцам видеокарт GeForce, увлекающимся играми.
- Высокая эффективность и незначительные задержки позволяют комфортно запускать и играть в игры, отличающиеся высокой детализацией и большим числом спецэффектов не теряя в показателях производительности. Плавная динамичная работа приложений обеспечивается за счёт того, что сам драйвер довольно легковесный и отличается меньшими расходами на CPU.
- Компания NVidia предоставляет драйверы «Вулкан» для всех графических процессоров GeForce, базирующихся на архитектурах Kepler и Maxwell. Подходящая ОС Windows 7 и выше, Linux, Android и т.д.
Для чего нужна программа VulkanRT и стоит ли её удалять
К небольшому недостатку можно отнести то, что пока не все игры поддерживают API VulkanRT. Стоит отметить, что драйвер можно встретить также в игровых приставках и прочих устройствах, поддерживающих современные 3D-игры.
Так, всё-таки VulkanRT, что за программа и насколько она необходима на ПК? Ответ на этот вопрос однозначный, если вы любите играть в игрушки с тяжёлой графикой полной спецэффектов и деталей, то утилита будет как нельзя кстати. В первую очередь она необходима для качественного улучшения графики и увеличения скорости обработки 3D-моделей. После установки и использования данной утилиты значительно увеличивается производительность игровых приложений, но при этом нагрузка на центральный и графический процессоры не повышается.
Многие задают вопрос, а продолжится ли техническая поддержка OpenGL после создания и распространения «Вулкана». Компания NVidia планирует продолжить поддержку обеих технологий, так сообщают её официальные представители. Поэтому разработчики могут самостоятельно решить, на какую из них им ориентироваться.
Как удалить программу 
Разбираясь в вопросе, что за программа VulkanRT, мы выяснили много интересного. Несмотря на то что утилита появляется на ПК чаще всего без ведома пользователя, опасаться её не следует.
- Во-первых, это низкоуровневый графический API, который успешно сменит Mantle и станет уверенным основателем нового поколения драйверов для оптимизации работы графического процессора.
- Во-вторых, его основная задача — контроль графического процессора или видеокарты и увеличение производительности и эффективности. Все это оказывает минимальное влияние на центральный процессор и не перегружает его.
- Утилита имеет лёгкие и простые драйвера, но при этом превосходит аналогичные продукты по своим возможностям.
Таким образом, использование утилиты позволяет играть игры с высокой детализацией, но при этом не повышать системные характеристики устройства. То есть игры с качественной графикой становятся доступными даже на ПК, не отличающихся высокой производительностью.
Исходя из всего вышеописанного следует вывод, что не стоит торопиться удалять VulkanRT со своего компьютера, после того как вы обнаружили её присутствие. Стоит отметить, что удаление программы может привести к снижению мощности видеокарты из-за отсутствия необходимых драйверов. А если же вы всё-таки считаете, что данная утилита вам не пригодится, то стоит провести деинсталляцию в соответствии с рекомендациями.
Есть несколько вариантов.
- Первый способ — воспользоваться деинсталлятором, находящимся в самой папке с драйверами. В этом случае процесс полностью автоматизирован, достаточно запустить UnistallVulkanRT и дождаться завершения.
- Второй вариант удаления — использования возможностей стандартного сервиса установки и удаления программ. Например, для Windows, через меню «Пуск» откройте раздел «Программы и компоненты», найдите нужную утилиту. Щелчком мыши выделите VulkanRT нажмите «Удалить». После этого удаляться все файлы и само приложение.
- Можно использовать дополнительное ПО для организации процесса удаления. Например, CCleaner. В левом блоке меню выберите раздел «Сервис» затем найдите VulkanRT и нажмите «Удалить» в правом меню действий.
Прежде чем приступить к процессу деинсталляции следует ещё раз оценить ситуацию, чтобы убедиться в правильности выбора.
Для тех, кто, прочитав статью, открыл для себя VulkanRT, что за программа , но не нашёл API у себя на ПК и желает заполучить драйвера предлагаем следующую ссылку https://developer.nvidia.com/vulkan-driver . На странице поддержки драйверов Vulkan можно найти ссылку на скачивание продукта для разных версий операционной системы. А также можно прочитать дополнительную информацию по обновлениям и исправлению ошибок.
Vulkan Run Time Libraries – что это за программа и для чего она нужна
Доверив установку Windows друзьям или спецам из сервисного центра, в списке установленных десктопных приложений нередко можно будет обнаружить нежданчик – странную программу под названием Vulkan Run Time Libraries. При этом она почти нигде не фигурирует, ни в меню Пуск, ни на Рабочем столе нет ее ярлыков. Что же это такое Vulkan Run Time Libraries, откуда берется и зачем вообще нужно?
Назначение приложения
Надо сказать, что обнаружить данную программу на компьютере можно не только после установки системы, но также и после инсталляции/обновления графических драйверов NVIDIA. Отсюда сразу возникает мысль, что странная софтина каким-то образом связана с графическим пакетом. Так оно и есть. Vulkan Run Time Libraries – это интерфейс прикладного программирования или иначе API низкого уровня, предоставляющего разработчикам широкие возможности в управлении графическим процессором. Говоря простым языком, Vulkan Run Time позволяет оптимизировать работу видеокарты, а также улучшать качество двухмерной и трехмерной графики в играх и других приложениях.
Инструмент этот относительно новый, создан он был в 2015 году компанией Khronos Group при содействии производителя AMD и изначально именовался glNext.
По замыслу разработчиков, программное обеспечение должно стать более современной альтернативой DirectX, а в будущем, возможно, вытеснить последний, причем шансы на успех у Vulkan Run Time Libraries довольно высоки. В отличие от совместимого только с Windows пакета DirectX, данный API может быть использован на разных операционных системах, есть также у него и другие преимущества и особенности. Среди них:
- относительно невысокие требования к ресурсам;
- полная поддержка многоядерных процессоров;
- поддержка разными производителями графических процессоров;
- повышение детализации изображения;
- увеличение FPS, что особенно заметно в играх;
- эффективное взаимодействие с драйверами разных типов.
Как установить или удалить
Программа Vulkan Run Time Libraries, как правило, устанавливается на ПК вместе с драйверами NVIDIA. Если вы вдруг встретите ее как отдельный компонент на сторонних сайтах, не скачивайте и не устанавливайте оттуда. Если же API вам так нужен, качайте соответствующие драйвера с официального ресурса developer.nvidia.com/vulkan-driver. Файлы Vulkan Run Time хранятся обычно в расположении C:/Program Files (x86)/VulkanRT/№версии.
Графического интерфейса приложение не имеет, при запуске исполняемого файла vulkaninfo.exe открывается консольное окно с указанием версии API и служебной информации.
И последнее. Можно ли удалить Vulkan Run Time Libraries и если да, как это скажется на работе системы и драйвера NVIDIA? Да, удалить компонент можно как обычное приложение, запустив апплет «Установка и удаление программ».
На работе Windows и драйверов NVIDIA это никак не отразится, но мы бы не стали рекомендовать вам избавляться от Vulkan Run Time без особой нужды, особенно если вы причисляете себя к любителям компьютерных игр.
- ТЕГИ
- Vulkan Run Time Libraries
Источник: viarum.ru
Vulkan. Руководство разработчика. Краткий обзор
Я работаю техническим переводчиком ижевской IT-компании CG Tribe, которая предложила мне внести свой вклад в сообщество и начать публиковать переводы интересных статей и руководств.
Здесь я буду публиковать перевод руководства к Vulkan API. Ссылка на источник — vulkan-tutorial.com. Поскольку переводом этого же руководства занимается еще один пользователь Хабра — kiwhy, мы договорились разделить уроки между собой. В своих публикациях я буду давать ссылки на главы, переведенные kiwhy.
Содержание
- Подготовка к работе
- Базовый код
- Экземпляр (instance)
- Слои валидации
- Физические устройства и семейства очередей
- Логическое устройство и очереди
- Отображение на экране
- Window surface
- Swap chain
- Image views
- Графический конвейер (pipeline)
- Вступление
- Шейдерные модули
- Непрограммируемые стадии конвейера
- Проходы рендера (Render passes)
- Заключение
- Отрисовка
- Фреймбуферы
- Буферы команд
- Рендеринг и отображение на экране
- Пересоздание swap chain
- Описание входных данных вершин
- Создание вершинного буфера
- Промежуточный буфер
- Индексный буфер
- Layout дескрипторов и буфер
- Пул дескрипторов и сеты дескрипторов
- Изображения
- Image view и image sampler
- Комбинированный image sampler
9. Загрузка моделей
10. Создание мип-карт
FAQ
Политика конфиденциальности
1. Вступление
2. Краткий обзор
- Шаг 1 — Экземпляр (instance) и физические устройства
- Шаг 2 — Логическое устройство и семейства очередей
- Шаг 3 — Window surface и цепочки показа (swap chain)
- Шаг 4 — Image views и фреймбуферы
- Шаг 5 — Проходы рендера
- Шаг 6 — Графический конвейер (pipeline)
- Шаг 7 — Пул команд и буферы команд
- Шаг 8 — Основной цикл
- Выводы
- Стандарт оформления кода
- Слои валидации
Предпосылки возникновения Vulkan
Как и предыдущие графические API, Vulkan задуман как кроссплатформенная абстракция над GPU. Основная проблема большинства таких API заключается в том, что в период их разработки использовалось графическое оборудование, ограниченное фиксированным функционалом. Разработчики должны были предоставить данные о вершинах в стандартном формате и в плане освещения и теней полностью зависели от производителей графических процессоров.
По мере развития архитектуры видеокарт в ней стало появляться все больше программируемых функций. Все новые функции необходимо было каким-то образом объединить с существующими API. Это привело к неидеальным абстракциям и множеству гипотез со стороны графического драйвера о том, как воплотить замысел программиста в современных графических архитектурах.
Поэтому для повышения производительности в играх выпускается большое количество обновлений драйверов. Из-за сложности таких драйверов среди поставщиков часто возникают расхождения, например, в синтаксисе, принятом для шейдеров. Помимо этого, в последнее десятилетие также наблюдался приток мобильных устройств с мощным графическим оборудованием.
Архитектуры этих мобильных GPU могут сильно отличаться в зависимости от требований по размерам и энергопотреблению. Одним из таких примеров является тайловый рендеринг, который может дать большую производительность за счет лучшего контроля над функционалом. Еще одним ограничением, связанным с возрастом API, является ограниченная поддержка многопоточности, что может привести к появлению узкого места со стороны ЦП.
Vulkan помогает решить эти проблемы, поскольку изначально создан для современных графических архитектур. Это снижает потери на стороне драйвера за счет того, что разработчики могут четко описать свои цели с помощью подробного API. Vulkan позволяет параллельно создавать и отсылать команды в нескольких потоках. Также снижаются расхождения компиляции шейдеров за счет перехода на стандартизованный формат байтового кода и использования одного компилятора. И наконец, Vulkan реализует главную возможность современных видеокарт, объединяя графические и вычислительные возможности в едином API.
Как нарисовать треугольник?
Мы кратко рассмотрим шаги, необходимые для отрисовки треугольника. Это позволит вам получить общее представление о процессе. Подробное описание каждой концепции будет дано в следующих главах.
Шаг 1 — Экземпляр (instance) и физические устройства
Работа с Vulkan начинается с настройки Vulkan API через VkInstance (экземпляр). Экземпляр создается с помощью описания вашей программы и всех расширений, которые вы хотите использовать. После создания экземпляра вы можете запросить, какое оборудование поддерживает Vulkan, и выбрать один или несколько VkPhysicalDevices для выполнения операций. Вы можете сделать запрос по таким параметрам, как размер VRAM и возможности устройств, чтобы выбрать желаемые устройства, если вы предпочитаете использовать специализированные видеокарты.
Шаг 2 — Логическое устройство и семейства очередей
После того, как вы выберете подходящее hardware устройство для использования, вам необходимо создать VkDevice (логическое устройство), где вы более подробно опишете, какие возможности (VkPhysicalDeviceFeatures) будете использовать, например, рендеринг в несколько viewport-ов (multi viewport rendering) и 64-битные числа с плавающей точкой. Вам также необходимо установить, какие семейства очередей вы бы хотели использовать.
Многие операции, совершаемые с помощью Vulkan, например, команды рисования и операции в памяти, выполняются асинхронно после отправки в VkQueue. Очереди выделяются из семейства очередей, где каждое семейство поддерживает определенный набор операций. Например, для операций с графикой, вычислительных операций и передачи данных памяти могут существовать отдельные семейства очередей. Кроме того их доступность может использоваться в качестве ключевого параметра при выборе физического устройства. Некоторые устройства с поддержкой Vulkan не предлагают никаких графических возможностей, однако, все современные видеокарты с поддержкой Vulkan, как правило, поддерживают все необходимые нам операции с очередями.
Шаг 3 — Window surface и цепочки показа (swap chain)
Если вас интересует не только внеэкранный рендеринг, вам необходимо создать окно для отображения отрендеренных изображений. Окна можно создать с помощью API исходной платформы или библиотек, таких как GLFW и SDL. В руководстве мы будем использовать GLFW, подробнее о которой мы расскажем в следующей главе.
Нам необходимо еще два компонента, чтобы рендерить в окно приложения: window surface ( VkSurfaceKHR ) и цепочка показа ( VkSwapchainKHR ). Обратите внимание на постфикс KHR , который обозначает, что эти объекты являются частью расширения Vulkan. Vulkan API полностью независим от платформы, поэтому нам необходимо использовать стандартизованное расширение WSI (Window System Integration) для взаимодействия с менеджером окон. Surface – это кроссплатформенная абстракция окон для визуализации, которая, как правило, создается с помощью ссылки на собственный дескриптор окна, например HWND в Windows. К счастью, библиотека GLFW имеет встроенную функцию для работы со специфичными деталями платформы.
Цепочка показа — это набор целей рендеринга. Ее задача — обеспечивать, чтобы изображение, которое рендерится в текущий момент, отличалось от отображаемого на экране. Это позволяет отслеживать, чтобы отображались только готовые изображения. Каждый раз, когда нам нужно создать кадр, мы должны сделать запрос, чтобы цепочка показа предоставила нам изображение для рендеринга.
После того, как кадр создан, изображение возвращается в цепочку показа, чтобы в какой-то момент отобразиться на экране. Количество целей рендеринга и условий для отображения готовых изображений на экране зависит от текущего режима. Среди таких режимов можно выделить двойную буферизацию (vsync) и тройную буферизацию. Мы рассмотрим их в главе, посвященной созданию цепочки показа.
Некоторые платформы позволяют рендерить непосредственно на экран через расширения VK_KHR_display и VK_KHR_display_swapchain без взаимодействия с каким-либо менеджером окон. Это позволяет создать surface, которая представляет собой весь экран и может использоваться, например, для реализации вашего собственного менеджера окон.
Шаг 4 — Image views и фреймбуферы
Чтобы рисовать в изображение (image), полученное из цепочки показа, мы должны обернуть его в VkImageView и VkFramebuffer. Image view ссылается на определенную часть используемого изображения, а фреймбуфер ссылается на image views, которые используются как буферы цвета, глубины и шаблонов (stencil). Поскольку в цепочке показа может быть множество разных изображений, мы заранее создадим image view и фреймбуфер для каждого из них и выберем необходимое изображение во время рисования.
Шаг 5 — Проходы рендера
Проходы рендера в Vulkan описывают тип изображений, используемых во время операций рендеринга, то, как они используются, и то, как необходимо обрабатывать их содержимое. Перед отрисовкой треугольника мы сообщим Vulkan, что мы хотим использовать одиночное изображение в качестве буфера цвета и что нам нужно очистить его перед рисованием. Если проход рендера описывает только тип изображений, используемых в качестве буферов, то VkFramebuffer фактически связывает определенные изображения с этими слотами.
Шаг 6 — Графический конвейер (pipeline)
Графический конвейер в Vulkan настраивается с помощью создания объекта VkPipeline. Он описывает конфигурируемое состояние видеокарты, например, размер viewport или операцию буфера глубины, а также программируемое состояние, используя объекты VkShaderModule. Объекты VkShaderModule создаются из байтового кода шейдера. Драйверу также необходимо указать, какие цели рендеринга будут использоваться в конвейере. Мы задаем их, ссылаясь на проход рендера.
Одна из наиболее отличительных особенностей Vulkan по сравнению с существующими API-интерфейсами заключается в том, что почти все системные настройки графического конвейера должны задаваться заранее. Это значит, что если вы хотите переключиться на другой шейдер или немного изменить vertex layout, вам необходимо полностью пересоздать графический конвейер.
Поэтому вам придется заранее создать множество объектов VkPipeline для всех комбинаций, необходимых для операций рендеринга. Только некоторые базовые настройки, такие как размер viewport и цвет очистки, могут быть изменены динамически. Все состояния должны быть описаны явно. Так, например, не существует смешивания цветов (color blend state) по умолчанию.
К счастью, поскольку процесс больше напоминает опережающую компиляцию, вместо компиляции «на лету», у драйвера появляется больше возможностей для оптимизации, а производительность оказывается более предсказуемой, так как значительные изменения состояния, например, переключение на другой графический конвейер, указываются явно.
Шаг 7 — Пул команд и буферы команд
Как уже было сказано, многие операции в Vulkan, например операции рисования, должны быть отправлены в очередь. Прежде чем отправить операции, их необходимо записать в VkCommandBuffer. Буферы команд берутся из VkCommandPool, который связан с определенным семейством очередей. Чтобы нарисовать простой треугольник, нам нужно записать буфер команд со следующими операциями:
- Начать проход рендера
- Привязать графический конвейер
- Нарисовать 3 вершины
- Закончить проход рендера
Шаг 8 — Основной цикл
После того, как мы отправили команды рисования в буфер команд, основной цикл кажется достаточно простым. Сначала мы получаем изображение из цепочки показа с помощью vkAcquireNextImageKHR . Затем мы можем выбрать соответствующий буфер команд для этого изображения и запустить его с помощью vkQueueSubmit. В конце, мы возвращаем изображение в цепочку показа для вывода на экран с помощью vkQueuePresentKHR .
Операции, отправляемые в очереди, выполняются асинхронно. Поэтому мы должны использовать объекты синхронизации — семафоры —, чтобы обеспечить правильный порядок запуска. Необходимо настроить запуск буфера команд рисования таким образом, чтобы он осуществлялся только после того, как изображение будет извлечено из цепочки показа, в противном случае может возникнуть ситуация, когда мы начнем рендерить изображение, которое все еще считывается для отображения на экране. Вызов vkQueuePresentKHR , в свою очередь, должен дождаться завершения рендеринга, для которого мы будем использовать второй семафор. Он будет уведомлять об окончании отрисовки.
Этот краткий обзор позволяет получить общее представление о предстоящей работе по рисованию вашего первого треугольника. В реальности же шагов гораздо больше. Среди них выделение буферов вершин, создание uniform-буферов и загрузка изображений текстур — все это мы рассмотрим в следующих главах, а пока начнем с простого. Чем дальше мы будем двигаться, тем сложнее будет материал.
Обратите внимание, что мы решили пойти хитрым путем, изначально встраивая координаты вершины в вершинный шейдер вместо использования буфера вершин. Такое решение связано с тем, что для управления буферами вершин сначала требуется знакомство с буферами команд.
Подведем краткий итог. Для отрисовки первого треугольника нам необходимо:
- Создать VkInstance
- Выбрать поддерживаемую видеокарту (VkPhysicalDevice)
- Создать VkDevice и VkQueue для рисования и отображения
- Создать окно, window surface и цепочку показа
- Обернуть изображения цепочки показа в VkImageView
- Создать проход рендера, который определяет цели рендеринга и их использование
- Создать фреймбуфер для прохода рендера
- Настроить графический конвейер
- Распределить и записать команды рисования в буфер для каждого изображения цепочки показа
- Отрисовать кадры в полученные изображения, отправляя правильный буфер команд и возвращая изображения обратно в цепочку показа
Концепты API
В заключение к текущей главе будет приведен краткий обзор того, как структурируются Vulkan API на более низком уровне.
Стандарт оформления кода
Все функции, перечисления и структуры Vulkan обозначены под заголовком vulkan.h , который включен в Vulkan SDK, разработанный LunarG. Установка SDK будет рассмотрена в следующей главе.
Функции имеют префикс vk в нижнем регистре, перечисляемые типы (enum) и структуры имеют префикс Vk , а перечисляемые значения имеют префикс VK_ . API активно использует структуры, чтобы предоставить параметры функциям. Например, создание объектов обычно происходит по следующей схеме:
Многие структуры в Vulkan требуют прямого указания типа структуры в члене sType . Член pNext может указывать на структуру расширения и в нашем руководстве всегда будет иметь тип nullptr . Функции, создающие или уничтожающие объект, будут иметь параметр VkAllocationCallbacks, который позволяет вам использовать собственный аллокатор памяти и который в руководстве также будет иметь тип nullptr .
Почти все функции возвращают VkResult, который является либо VK_SUCCESS , либо кодом ошибки. В спецификации указано, какие коды ошибок может возвратить каждая функция и что они обозначают.
Слои валидации
Как уже было сказано, Vulkan был разработан для обеспечения высокой производительности при низких нагрузках на драйвер. Поэтому он включает в себя очень ограниченные возможности автоматического обнаружения и исправления ошибок. Если вы сделаете ошибку, драйвер даст сбой или еще хуже, продолжит работать на вашей видеокарте, но выйдет из строя на других видеокартах.
Поэтому Vulkan позволяет запускать расширенные проверки с помощью функции, известной как слои валидации. Слои валидации — это фрагменты кода, которые могут быть вставлены между API и графическим драйвером для выполнения дополнительных проверок параметров функций и отслеживания проблем по управлению памятью. Это удобно тем, что вы можете запустить их во время разработки, а затем полностью отключить при запуске программы без дополнительных затрат. Любой пользователь может написать свои собственные слои валидации, но Vulkan SDK от LunarG предоставляет стандартный набор, который мы будем использовать в руководстве. Вам также необходимо зарегистрировать функцию обратного вызова для получения сообщений отладки от слоев.
Поскольку операции в Vulkan расписываются очень подробно, и слои валидации достаточно обширные, вам будет намного проще установить причину черного экрана по сравнению с OpenGL и Direct3D.
Остался всего один шаг, прежде чем мы начнем писать код, и это — настройка рабочей среды.
- перевод с английского
- tutorial
- Программирование
- C++
- Работа с 3D-графикой
- Разработка игр
- CGI (графика)
Источник: habr.com