Windows вулкан что это



Vulkan RT – что это за приложение и нужно ли его удалять?

ВОПРОС! Всем привет! В «Программах и компонентах» висит «Vulkan Run Time Libraries – что это и можно ли эту штуку удалить? Заранее спасибо за ответ.

БЫСТРЫЙ ОТВЕТ! Vulkan RT – это API библиотека, которая используется в некоторых играх и приложениях, работающих с 3D или 2D моделями и анимацией. Позволяет грамотно работать между игрой и видеокартой, оптимизируя процессы обмена данными (между железом и ПО), что ускоряет некоторые процессы. Главные конкуренты у «Вулкана» – это всем известные DirectX от Microsoft. По сути Vulkan RT – это более продвинутая версия старого OpenGL. Стоит ли его удалять? – НЕТ, удалять его не нужно, так как он используется для работы большинства игрушек (например, Dota 2 или CS:GO).

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

Функция библиотеки

Vulkan Runtime Libraries – это API, которое позволяет совместно работать несколькими программам и играм для работы с двумерной и трехмерной графикой. Впервые была разработана компанией Khronos Group в далеком 2015 году.

Если говорить более понятным образом, то VulkanRT позволяет быстро и правильно взаимодействовать между вашей видеокартой и конечным приложением. Чаще всего в качестве приложения выступают игры, так как именно там в большей мере используется 2D и 3D графика.

Библиотека временного исполнения «Вулкан» хранит в себе определенные объекты и функции взаимодействия – именно их и использует видеокарта. Таким образом все популярные производители видеожелеза (AMD, Nvidia и Intel Graphic), начиная с 2015 года, поддерживают библиотеки API – Vulkan Runtime Libraries. Это нужно для улучшения работы с 3D объектами и анимацией в играх.

ПРИМЕЧАНИЕ! Подобные библиотеки есть даже на неигровых компьютерах или ноутбуках – это вполне нормально, так как это программное обеспечение используется не только для игр, но также и в других приложениях.

Поддерживаемые игрушки и сравнение с DirectX и OpenGL

Сразу скажу, что не все игры работают с Vulkan Runtime Libraries, так как подобных библиотек достаточно много. Одна из самых известных – это майкрософтовская DirectX, которая до 2015 года использовалась повсеместно, вместе с OpenGL. Вот ряд игр, которые работают с «Вулканом»:

  • Warhammer 40 000
  • Mad Max
  • Формула 1
  • Dota 2
  • Wolfenstein II: The New Colossus
  • Serious Sam
  • Counter-Strike: Global Offensive
  • Doom
  • Doom3 BFG

Вы могли заметить, что очень большое количество игр, работающих с Vulkan, можно найти в Steam. Есть даже несколько консольных игр. Помимо DirectX есть также и OpenGL – обе API существуют достаточно давно и поддерживают разные игры и игровые платформы. Но если DirectX и OpenGL существовали в тесном сотрудничестве, то с выходом «Vulkan Run Time Libraries» они начали прямую конкуренцию с Microsoft.

И на данный момент времени для тех же киберспортивных дисциплинах (Dota 2, CS: GO) используется Вулкан, и он лучше предшественников. Вот ряд плюсов:

  • Разработчики изначально создавали библиотеку как улучшенную версию DirectX и OpenGL, и старались сконцентрировать свое внимание на меньшее энергопотребление и оптимизацию работы с 3D моделями. Оптимизация позволяет ускорить использование некоторых функций, что уменьшает локальный отклик между видеокартой и игрой (программой).
  • Кроссплатформенность – API работает не только на компьютерах, но также на смартфонах и планшетах.
  • В первом пункте я указал один из плюсов – это оптимизация работы. Дополнительно к этому API позволяет работать сразу с несколькими потоками между программной частью ПО и обработкой графики в видеокарте. Таким образом можно добиться максимального результата.

Но есть и ряд небольших минусов:

  • Из-за большого количества оптимизационных веток кода – усложняется задача по эволюции самой библиотеки. То есть для разработчиков, которые хотят улучшить систему, есть несколько сложностей.
  • Из-за быстрого развития видео-железа в последнее время, разработчикам нужно чаще выпускать обновления.
  • Есть проблема с совместимостью некоторых консольных игр. Но над этим уже работают.

В интернатах до сих пор идет тонна холи-варов, по поводу того, а какая из библиотек вообще лучше? Можете написать свое мнение в комментариях – что лучше: OpenGL, DirectX или Vulkan Run Time Libraries?

Как установить и где скачать Vulkan RT?

Если у вас новый компьютер со свежей операционной системой, установлен Steam клиент, а также на борту стоит видеокарта Intel, AMD или NVIDIA, то, скорее всего, данная библиотека уже установлена в систему и вам не нужно её инсталлировать.

  1. Чтобы это проверить, нужно зайти «Панель управления». Для этого жмем + R , и вводим команду:

  1. Устанавливаем режим просмотра, чтобы видеть все разделы, далее заходим в «Программы и компоненты».

  1. Теперь просто ищем название:

Vulkan Run Time Libraries

СОВЕТ! В Виндовс 10 можно найти библиотеку в меню «Пуск» – «Параметры» – «Приложения».

А теперь ответы на пару вопросов:

Нужно ли удалять Vulkan RT? Нет, удалять его не нужно. Если он уже установлен к вам на компьютер, то скорее всего, библиотека используется в какой-то программе или игре.

Если Vulkan RT нет на компе, нужно ли устанавливать эту API? Тут все зависит от вашего желания. Если на компе у вас его нет, значит все игры, которые у вас установлены не используют эту библиотеку. Поэтому устанавливать её вручную бессмысленно. Например, Вулкан автоматом ставится при установке таких игр как Dota или CS в Steam.

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

Источник

Что такое VulkanRT?

Что такое VulkanRT? Вирус или полезная программа?

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

Сегодня мы все чаще сталкиваемся с программой VulkanRT. Но не спешите связывать ее с вирусом. В отличие от одноименного вируса, это приложение несет большую пользу.

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

Что за программа VulkanRT?

Современные видеокарты поддерживают технологию обработки трехмерных изображений OpenGL. Расширение для работы с OpenGL есть в стандартном наборе драйверов для дискретных видеокарт. Индустрия трехмерных игр не стоит на месте, и существующая технология обработки оказалась устаревшей. Новое поколение видеокарт от GeForce Nvidia для обработки широкополигональных игровых текстур использует новый тип драйверов.

VulkanRT – это (Драйвер) продолжение традиций OpenGL в новом исполнении. Появилась эта технология с релизом Windows 10. Поэтому сегодня все больше пользователей сталкиваются с одноименным процессом в диспетчере задач и системными папками с аналогичным названием.

VulkanRT Nvidia — кроссплатформенное приложение. Софт оказался удачным, и подходит для компьютера, для мобильных устройств и консолей. Разработчики считают технологию удачной за счет оптимизации ресурсов, и потенциала, поэтому в ближайшем будущем она будет применяться в новых устройствах и окончательно заменит устаревшую технологию OpenGL.

Как программа VulkanRT попадает на компьютер?

Главный повод для тревоги – самовольная установка программы в систему. На самом деле – VulkanRT это часть пакета драйверов, поэтому ПО от Nvidia и не запрашивает разрешения пользователя на установку.

  • Если у вас современная видеокарта, то софт появится с очередным обновлением программного обеспечения при условии автоматической настройки обновлений драйверов.
  • Не исключено, что в будущем создатели вирусного программного обеспечения решат скрыть свои вредоносные приложения под прикрытием VulkanRT. Именно поэтому, чтобы убедиться, что программа не является вирусом, рекомендуем проверить ее местоположение, а также файлы, которые в себя включает целевая папка с ней.
  • Если программа VulkanRT от компании Nvidia установилась на ваш компьютер, то обнаружить ее можно: В меню «Пуск» на вкладке все приложения в папке Vulkan 1.0.3.0;

По адресу в проводнике C:\Program Files (x86)\VulkanRT\1.0.3.0;

Как удалить VulkanRT?

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

Если вы все же решили удалить VulkanRT, то сделать это можно через файл UnistallVulkanRT в папке с программой, через стандартную «Установку и удаление программ» или с помощью сторонних приложений.

Где и как скачать VulkanRT?

VulkanRT самостоятельно скачивается и устанавливается при обновлении драйверов.

Если у вас выключено автообновление, то зайдите в панель управления, пункт «Система и безопасность», далее «Центр обновления Windows» после чего выбираем «Настройка параметров». Выбираем в меню «Важные обновления» параметр «Устанавливать обновления автоматически».

Теперь вы не пропустите обновление NVIDIA, а вместе с ним и VulkanRT 1.0.3.0.

Скачать VulkanRT (Vulkan Driver) для ОС Windows и Linux.
(Официальный сайт NVIDIA)

Предлагаем посмотреть ролик для оценки возможностей нового поколения OpenGL — Vulkan API:

Так все же вредоносная это программа VulkanRT или нет? Однозначно нет! Просто из-за одинаковых названий её путают с вирусом Vulkan, а точнее «Вулкан казино».

Источник

Vulkan. Руководство разработчика. Краткий обзор

Я работаю техническим переводчиком ижевской IT-компании CG Tribe, которая предложила мне внести свой вклад в сообщество и начать публиковать переводы интересных статей и руководств.

Здесь я буду публиковать перевод руководства к Vulkan API. Ссылка на источник — vulkan-tutorial.com. Поскольку переводом этого же руководства занимается еще один пользователь Хабра — kiwhy, мы договорились разделить уроки между собой. В своих публикациях я буду давать ссылки на главы, переведенные kiwhy.

  1. Изображения
  2. Image view и image sampler
  3. Комбинированный image sampler

8. Буфер глубины

9. Загрузка моделей

10. Создание мип-карт

FAQ

Политика конфиденциальности

1. Вступление

2. Краткий обзор

  1. Стандарт оформления кода
  2. Слои валидации

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

Предпосылки возникновения 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.

Остался всего один шаг, прежде чем мы начнем писать код, и это — настройка рабочей среды.

Источник

You may also like...