- Vulkan
- Contents
- Installation
- Verification
- Selecting Vulkan driver
- Software Vulkan: lavapipe
- Vulkan hardware database
- Troubleshooting
- Error — vulkan: No DRI3 support
- Nvidia — vulkan is not working and can not initialize
- No device for the display GPU found. Are the intel-mesa drivers installed?
- AMDGPU — ERROR_INITIALIZATION_FAILED after vulkaninfo
- Use vulkan as the graphics backend windows linux android
- About
- Vulkan (Русский)
- Contents
- Установка
- Проверка
- Выбор драйвера Vulkan
- База данных оборудования Vulkan
- Решение проблем
- Error — vulkan: No DRI3 support
- Nvidia — vulkan is not working and can not initialize
- No device for the display GPU found. Are the intel-mesa drivers installed?
- Vulkan. Руководство разработчика. Настройка окружения
- 1. Вступление
- 2. Краткий обзор
- 3. Настройка окружения
- Windows
- Vulkan SDK
- Настройка Visual Studio
- Linux
- Vulkan Packages
- Компилятор шейдеров
- Настройка проекта для makefile
- MacOS
- Vulkan SDK
- Настройка Xcode
Vulkan
Vulkan is a low-overhead, cross-platform 3D graphics and compute API.
Contents
Installation
To run a Vulkan application, you will need to install the vulkan-icd-loader package (and lib32-vulkan-icd-loader if you also want to run 32-bit applications), as well as Vulkan drivers for your graphics card(s). There are several packages providing a vulkan-driver:
Other drivers may be installed manually instead:
For Vulkan application development, install vulkan-headers , and optionally vulkan-validation-layers and vulkan-tools (you can find the vulkaninfo tool in here).
Verification
To see which Vulkan implementations are currently installed on your system, use the following command:
To ensure that Vulkan is working with your hardware, install vulkan-tools and use the vulkaninfo command to pull up relevant information about your system. If you get info about your graphics card, you will know that Vulkan is working.
Selecting Vulkan driver
In some cases, multiple vulkan driver are installed (for example RADV and AMDVLK). As of amdvlk 2021.Q3.4, a new switching logic was implemented which enforces AMDVLK as the default and mandates you either
- set AMD_VULKAN_ICD=RADV to switch from the AMDVLK default,
- or globally set DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 to re-enable the ICD loader method below.
When DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 , you can choose your preferred driver by setting the environment variable VK_ICD_FILENAMES . For example, running Steam with the RADV driver is done by
To avoid crashes with 32-bit games, it is possible to assign the 32-bit variant and the 64-bit variant to the environment variable.
Software Vulkan: lavapipe
You can also install the software Vulkan rasterizer known as lavapipe: vulkan-swrast . There is no 32-bit vulkan-swrast package for now (even in AUR).
Vulkan hardware database
The Vulkan Hardware Database provides user reported GPU/driver combinations. Supplying own information is possible by using vulkan-caps-viewer-wayland AUR or vulkan-caps-viewer-x11 AUR .
Troubleshooting
Error — vulkan: No DRI3 support
If you get the message above and using Intel graphics, you may need to force DRI3 and restart Xorg:
Nvidia — vulkan is not working and can not initialize
Check if you have any other vulkan driver installed, it may prevent Nvidia’s vulkan driver from being detected.
Alternatively set the environment variable VK_ICD_FILENAMES to /usr/share/vulkan/icd.d/nvidia_icd.json .
If you have a dual-graphics system, like NVIDIA Optimus, ensure that your system is using the graphics card that you installed Vulkan drivers for.
The factual accuracy of this article or section is disputed.
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
No device for the display GPU found. Are the intel-mesa drivers installed?
Try to list both the intel_icd and primus_vk_wrapper configurations in VK_ICD_FILENAMES
AMDGPU — ERROR_INITIALIZATION_FAILED after vulkaninfo
If after running vulkaninfo on AMD card from GCN1 or GCN2 family you got error message like:
Then check if you have correctly enable support for this models of graphics cards (AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support).
One of possibility to check if gpu drivers are correctly loaded is lspci -k , after running this command check kernel driver of your gpu. It should be amdgpu .
Some forum threads about this problem: [3] [4]
Источник
Use vulkan as the graphics backend windows linux android
Vulkan 2D Renderer library
❗ This project is a work in progress (pre-alpha). Frequent API changes, ABI changes, crashes. ❗
Vulkan 2D Renderer is a C++17 library designed to be easy to use, high performance 2D rendering backend for realtime applications. You only need a few lines of code to create a window and display simple shapes. On the other hand you can create a variety of different effects using meshes and applying different modifiers to them. Internally workloads are automatically grouped to create more efficient submissions to the GPU and all resource loading and saving is multithreaded.
- This project is primarily a passion project.
- Vulkan 2D rendering engines/libraries are not common.
- I didn’t find any easy to use 2D rendering libraries with multi-window support.
- This should work pretty well as an example for people wanting to see concrete Vulkan API use. (Feel free to message me if you have any questions about anything)
- Easily generate and draw simple shapes. ( Box, Circle, Pie. )
- For more control you can also draw custom shapes direcly from vertex and index lists.
- Transformations and transformation hierarchy.
- Instanced rendering.
- Multi-window support.
- Mesh modifiers to warp and distort shapes.
- Textures, Samplers, Color and alpha blending.
- Render target textures with blurring.
- Multisampling.
- Multi-threaded resource loading and saving.
- Keyboard, mouse and gamepad input.
- Does not render 3D, this is meant to be a simple library to use.
- This is not a game engine, the purpose of this library is strictly limited to 2D drawing.
- No HDRI image support. Didn’t find any use for this in a 2D application.
- No scene management, although transformation hierarchy is implemented so you can create your own.
- No custom shaders, might implement these later if there’s any need for these.
- Work in progress. We’ll know more about limitations later.
- Crashes and garbage renders will likely happen frequently.
Building from source
❗ You will need to use Git, direct download from GitHub will not work because of dependencies. ❗
Prior to building this library on any platform you will need:
- Git 2.20 or newer
- CMake 3.16 or newer
- Vulkan SDK 1.2 or newer
If using the build tool you will need (recommended for new users):
If you’re building the documentation you will also need these (disabled by default):
Getting the sources
Getting the sources is the same process on all platforms. On your command line or terminal, navigate to the folder where you wish to download the sources and copy-paste this line.
Compiling the sources
There are couple of ways to compile this library, you can use standard CMake or you can use the provided build tool.
Using the build tool
Navigate to the Vulkan2DRenderer folder and simply run Build.bat on Windows or Build.py on Linux. To get started quickly, you can select the quick build option, this will generate the project files in build_tool/Release and build_tool/Debug folders and compiles the project, on windows this library is also installed into a folder. Please note that the included build tool generates a build_tool folder and is reserved for the built tool itself.
On Windows installing will create an build_tool/install folder which will contain everything you need to use this library on your project. You will have to manually link it to your project and move the VK2D.dll and VK2D_d.dll files somewhere where your executable can see it, usually to your project’s working directory. The VK2D.dll is the release version and the VK2D_d.dll is the debug version of this library.
On Linux installing requires superuser priviledges so you need to do this separately, the build tool will build the project files and compile but it will not install this library for you.
Included external libraries (packed in)
Library | Licence | Web page |
---|---|---|
GLM | MIT/Happy Bunny | https://github.com/g-truc/glm |
External libraries used in this project
Library | License | Web page |
---|---|---|
GLM | MIT/Happy Bunny | https://github.com/g-truc/glm |
Freetype 2 | FTL | https://www.freetype.org |
GLFW 3 | zlib/libpng | https://github.com/glfw/glfw |
STB | MIT/Public Domain | https://github.com/nothings/stb |
glslang | ‘Custom‘ | https://github.com/KhronosGroup/glslang |
Copyright (c) 2020 Niko Kauppi Noxagonal@gmail.com
This software is released under MIT license
About
Easy to use 2D rendering engine using Vulkan API as backend.
Источник
Vulkan (Русский)
Vulkan (рус. Вулкан) — кроссплатформенный API для 2D- и 3D-графики, впервые представленный Khronos Group в рамках конференции GDC 2015.
Дополнительная информация доступна на веб-сайте Khronos.
Contents
Установка
Чтобы запустить Vulkan-приложение потребуется установить пакет vulkan-icd-loader (и lib32-vulkan-icd-loader , если планируется запускать 32-битные приложения), а также драйвер Vulkan для видеокарты:
Также возможно установить программную реализацию Vulkan, известную, как lavapipe — vulkan-swrast .
Другие драйверы можно установить вручную:
Для разработки приложений Vulkan установите vulkan-headers и, опционально, vulkan-validation-layers и vulkan-tools (в этом пакете также содержится утилита vulkaninfo ).
Проверка
Чтобы узнать, какие реализации Vulkan в настоящее время установлены в вашей системе, используйте следующую команду::
Выбор драйвера Vulkan
В некоторых случаях устанавливается несколько драйверов Vulkan (например, RADV и AMDVLK). Выбрать необходимый драйвер можно с помощью переменной окружения VK_ICD_FILENAMES . Например, запустить Steam с RADV-драйвером возможно следующей командой:
Чтобы избежать сбоев в 32-битных играх, переменной окружения можно задать 32- и 64-битный вариант значения.
База данных оборудования Vulkan
База данных оборудования Vulkan содержит комбинации графических процессоров и драйверов. Предоставление собственной информации возможно с помощью vulkan-caps-viewer-wayland AUR или vulkan-caps-viewer-x11 AUR .
Решение проблем
Error — vulkan: No DRI3 support
При получении данной ошибки с драйвером Intel graphics может потребоваться принудительный выбор DRI3 и перезапуск Xorg:
Nvidia — vulkan is not working and can not initialize
Проверьте, установлены ли в системе другие драйверы Vulkan, так как они могут предотвратить обнаружение Vulkan-драйвера Nvidia.
В качестве альтернативы задайте переменной окружения VK_ICD_FILENAMES значение /usr/share/vulkan/icd.d/nvidia_icd.json .
No device for the display GPU found. Are the intel-mesa drivers installed?
Попробуйте задать конфигурации intel_icd и primus_vk_wrapper в переменной окружения VK_ICD_FILENAMES :
Источник
Vulkan. Руководство разработчика. Настройка окружения
Я переводчик ижевской компании CG Tribe и здесь я буду публиковать перевод руководства к Vulkan API. Ссылка на источник — vulkan-tutorial.com. Это моя вторая публикация, которая посвящена переводу раздела Development Environment.
- Дескриптор layout и буфера
- Дескриптор пула и sets
7. Текстурирование
- Изображения
- Image view и image sampler
- Комбинированный image sampler
8. Буфер глубины
9. Загрузка моделей
10. Создание мип-карт
FAQ
Политика конфиденциальности
1. Вступление
2. Краткий обзор
3. Настройка окружения
- Vulkan SDK
- GLFW
- GLM
- Настройка Xcode
В этой главе мы настроим рабочую среду и установим несколько полезных библиотек. Инструменты, которые мы будем использовать, являются кроссплатформенными (разумеется, за исключением компилятора). Однако их установка в Windows, Linux и MacOS отличается, поэтому в руководстве каждая из этих ОС будет рассматриваться отдельно.
Windows
Если вы занимаетесь разработкой для Windows, то, скорее всего, вы используете Visual Studio. Для полной поддержки С++17 необходимо использовать Visual Studio 2017 или 2019. Шаги, описанные ниже, подходят для VS 2017.
Vulkan SDK
Самым важным компонентом для разработки программ с Vulkan является SDK. Он включает в себя заголовочные файлы, стандартные слои валидации, инструменты отладки и загрузчик функций Vulkan. Загрузчик ищет методы драйвера в рантайме (во время исполнения) так же, как это делает библиотека GLEW для OpenGL.
SDK можно загрузить с сайта LunarG. Для этого используйте кнопки внизу страницы. Вам необязательно создавать аккаунт, однако с ним у вас будет доступ к дополнительной документации.
Устанавливая SDK, запомните место установки.
Следующим шагом проверьте, поддерживает ли Vulkan ваша видеокарта и драйвер. Перейдите в папку с SDK, откройте папку Bin и запустите демо-проект vkcube.exe . Должно появиться следующее:
Если вы получили сообщение об ошибке, убедитесь, что ваша видеокарта поддерживает Vulkan, а драйвер обновлен до последней версии. См. главу Введение, в которой даны ссылки на драйверы крупных производителей.
В этой папке есть и другие программы, которые могут оказаться полезными для разработки. Программы glslangValidator.exe и glslc.exe используются для компиляции шейдеров из GLSL в байт-код. Подробно эта тема будет рассмотрена в главе Шейдерные модули. В папке Bin также находятся dll библиотеки загрузчика Vulkan и слоёв валидации, в папке Lib — статические библиотеки, а в папке Include – заголовочные файлы Vulkan. Вы можете изучить и другие файлы, но для руководства они нам не понадобятся.
Как уже было сказано, Vulkan – это API, независимый от платформы, в котором нет инструментов создания окна для отображения результатов рендеринга. Чтобы использовать преимущества кроссплатформенности Vulkan и избежать ужасов Win32, мы будем использовать библиотеку GLFW для создания окна. Есть и другие доступные библиотеки, например, SDL, но GLFW лучше тем, что она абстрагирует не только создание окна, но и некоторые другие платформенно-зависимые функции.
Последнюю версию библиотеки GLFW можно найти на официальном сайте. В руководстве мы будем использовать 64-битные сборки, но вы, разумеется, можете выбрать и 32-битные. В этом случае убедитесь, что вы ссылаетесь на файлы Vulkan SDK в папке Lib32 , а не в Lib . После скачивания распакуйте архив в удобное место. Мы создали новую папку Libraries в папке Visual Studio.
В отличие от DirectX 12, в Vulkan нет библиотеки для операций линейной алгебры, поэтому ее придется скачать отдельно. GLM – это удобная библиотека, разработанная для использования с графическими API, она часто используется с OpenGL.
Библиотека GLM – это header only библиотека. Скачайте последнюю версию и сохраните ее в удобном месте. У вас должна получиться подобная структура каталогов:
Настройка Visual Studio
После установки всех библиотек мы можем настроить проект Visual Studio для Vulkan и написать немного кода, чтобы убедиться, что все работает.
Откройте Visual Studio и создайте новый проект Windows Desktop Wizard . Введите имя проекта и нажмите OK .
В поле Application type выберите Console Application (.exe) , чтобы видеть сообщения отладки. Также выберите Empty Project , чтобы Visual Studio не добавила шаблонный код.
Нажмите OK , чтобы создать проект, и добавьте .cpp файл. Наверняка вы и так знаете, как это сделать, но мы не стали пропускать эти действия, чтобы инструкция получилась полной.
Добавьте в файл код, указанный ниже. Вам необязательно пытаться понять его сейчас, важно узнать, соберется ли и запустится ли программа. В следующей главе мы начнем описание с самых азов.
Откройте диалог с настройками проекта и убедитесь, что в меню выбрано All Configurations . Это нужно из-за того, что большинство настроек применяются как в режиме Debug , так и в Release .
Перейдите в C++ -> General -> Additional Include Directories и выберите в выпадающем списке.
Добавьте include директории для Vulkan, GLFW и GLM:
Перейдите в Linker → General → Additional Library Directories и добавьте расположения lib-файлов для Vulkan и GLFW:
Перейдите в Linker → Input и выберите Edit в выпадающем списке Additional Dependencies .
Введите имена lib-файлов Vulkan и GLFW:
И измените настройки стандарта на C++:
Теперь вы можете закрыть диалог с настройками проекта. Если все сделано верно, подсветки ошибок в коде больше не будет.
Не забудьте выбрать для компиляции 64-битный режим.
Нажмите F5 , чтобы скомпилировать и запустить проект. Вы увидите командную строку и окно, подобное этому:
Проверьте, чтобы число расширений не равнялось нулю («X extensions supported» в консоли).
Поздравляем, вы готовы к работе с Vulkan!
Linux
Инструкции ниже предназначены для пользователей Ubuntu, но вы можете следовать им, изменив команды apt на подходящие вам команды менеджера пакетов. Вам нужен компилятор с поддержкой С++17 (GCC 7+ или Clang 5+). Вам также понадобится утилита make.
Vulkan Packages
Самыми важными компонентами для разработки с использованием Vulkan под Linux являются загрузчик Vulkan, слои валидации и несколько утилит командной строки для проверки совместимости вашего компьютера с Vulkan:
- sudo apt install vulkan-tools : утилиты командной строки, особенно можно выделить vulkaninfo и vkcube . Запустите их, чтобы проверить, поддерживает ли ваш ПК Vulkan.
- sudo apt install libvulkan-dev : устанавливает загрузчик Vulkan. Загрузчик ищет методы драйвера в рантайме (во время исполнения) так же, как это делает библиотека GLEW для OpenGL.
- sudo apt install vulkan-validationlayers-dev : устанавливает стандартные слои валидации, которые необходимы при отладке программ с Vulkan. О них мы поговорим в следующей главе.
Также не забудьте запустить vkcube , после чего на экране должно появиться следующее:
Если вы получили сообщение об ошибке, убедитесь, что ваша видеокарта поддерживает Vulkan, а драйвер обновлен до последней версии. См. главу Введение, в которой даны ссылки на драйверы крупных производителей.
Как уже было сказано, Vulkan – это API, независимый от платформы, в котором нет инструментов создания окна для отображения результатов рендеринга. Чтобы использовать преимущества кроссплатформенности Vulkan и избежать ужасов X11, мы будем использовать библиотеку GLFW для создания окна. Есть и другие доступные библиотеки, например, SDL, но GLFW лучше тем, что она абстрагирует не только создание окна, но и некоторые другие платформенно-зависимые функции.
Мы будем устанавливать GLFW с помощью следующей команды:
В отличие от DirectX 12, в Vulkan нет библиотеки для операций линейной алгебры, поэтому ее придется скачать отдельно. GLM – это удобная библиотека, разработанная для использования с графическими API, она часто используется с OpenGL.
Библиотека GLM – это header only библиотека. Ее можно установить из пакета libglm-dev :
Компилятор шейдеров
Теперь, когда настройка почти завершена, осталось установить программу для компиляции шейдеров из GLSL в байт-код.
Два наиболее известных компилятора шейдеров — это glslangValidator от Khronos Group и glslc от Google. По использованию glslc похож на GCC и Clang, поэтому мы остановим выбор на нем. Скачайте бинарники и скопируйте glslc в /usr/local/bin . Обратите внимание, что, в зависимости от ваших прав доступа, вам может понадобиться команда sudo . Для тестирования запустите glslc , после чего должно появиться предупреждение:
glslc: error: no input files
Мы подробно рассмотрим glslc в главе о шейдерных модулях.
Настройка проекта для makefile
После установки всех библиотек мы можем настроить проект makefile для Vulkan и написать немного кода, чтобы убедиться, что все работает.
Создайте новую папку в удобном месте и назовите ее VulkanTest . Создайте файл с именем main.cpp и вставьте в него код, приведенный ниже. Вам необязательно пытаться понять его сейчас, важно узнать, соберется ли и запустится ли программа. В следующей главе мы начнем описание с самых азов.
Следующим шагом будет написание makefile для компиляции и запуска. Создайте новый пустой файл с именем Makefile . Предполагается, что у вас уже есть начальный опыт работы с makefiles. Если нет, то это руководство поможет вам быстро войти в курс дела.
Сначала необходимо определить несколько переменных, чтобы упростить оставшуюся часть файла. Определите переменную CFLAGS , которая укажет базовые флаги компилятора:
Мы используем современный С++ ( -std=c++17 ). Также мы задаем уровень оптимизации О2. Можно удалить уровень -О2 для более быстрой компиляции программ, но для релизной сборки его все равно нужно будет вернуть.
Аналогично определите базовые флаги линкера в переменной LDFLAGS :
Флаг -lglfw подключает библиотеку GLFW, -lvulkan — загрузчик Vulkan, а остальные флаги — низкоуровневые библиотеки и зависимости самой GLFW.
Теперь вам будет несложно определить правило для компиляции VulkanTest . Не забудьте, что для отступов необходимо использовать табы вместо пробелов.
Проверьте, работает ли сборка. Сохраните makefile и запустите make из папки с main.cpp и Makefile . В результате должен получиться исполняемый файл VulkanTes t.
Теперь необходимо задать еще два правила — test и clean . Test запускает исполняемый файл, а clean удаляет его.
Запуск команды make test позволит убедиться, что программа работает успешно. При закрытии пустого окна программа должна завершиться успешным кодом возврата ( 0 ). У вас должен получиться готовый makefile, похожий на приведенный ниже:
Вы можете использовать эту структуру каталогов в качестве шаблона для проектов Vulkan. Для этого скопируйте ее, переименуйте, например, в HelloTriangle и удалите весь код из main.cpp .
Итак, теперь вы готовы к настоящему приключению.
MacOS
Инструкции ниже предназначены для тех, кто использует Xcode и менеджер пакетов Homebrew. Имейте в виду, что версия MacOS не должна быть ниже 10.11, а ваше устройство должно поддерживать Metal API.
Vulkan SDK
Самым важным компонентом для разработки программ с Vulkan является SDK. Он включает в себя заголовочные файлы, стандартные слои валидации, инструменты отладки и загрузчик функций Vulkan. Загрузчик ищет методы драйвера в рантайме (во время исполнения) так же, как это делает библиотека GLEW для OpenGL.
SDK можно загрузить с сайта LunarG. Для этого используйте кнопки внизу страницы. Вам необязательно создавать аккаунт, однако с ним у вас будет доступ к дополнительной документации.
Версия SDK для MacOS использует библиотеку MoltenVK. MacOS не имеет прямой поддержки Vulkan, а MoltenVK используется как прослойка для передачи вызовов в Apple Metal. Благодаря этому вы можете воспользоваться преимуществами отладки и производительности Apple Metal.
После загрузки MoltenVK извлеките содержимое в любую папку (имейте в виду, что вам необходимо будет ссылаться на нее при создании проекта в Xcode). Внутри извлеченной папки, в папке Applications , должны находиться исполняемые файлы, которые позволят запустить несколько демо-проектов с использованием SDK. Запустите исполняемый файл vkcube , и вы увидите следующее:
Как уже было сказано, Vulkan – это API, независимый от платформы, в котором нет инструментов создания окна для отображения результатов рендеринга. Мы будем использовать библиотеку GLFW для создания окна. Есть и другие доступные библиотеки, например, SDL, но GLFW лучше тем, что она абстрагирует не только создание окна, но и некоторые другие платформенно-зависимые функции.
Для установки GLFW на MacOS мы будем использовать менеджер пакетов Homebrew:
В Vulkan нет библиотеки для операций линейной алгебры, поэтому ее придется скачать отдельно. GLM – это удобная библиотека, разработанная для использования с графическими API, она часто используется с OpenGL.
Библиотека GLM – это header only библиотека. Ее можно установить из пакета glm :
Настройка Xcode
После установки всех библиотек мы можем настроить проект Xcode для Vulkan. Всякий раз при упоминании папки vulkansdk , мы будем иметь в виду папку, в которую вы извлекли Vulkan SDK.
Запустите Xcode и создайте новый проект Xcode. В появившемся окне выберите Application > Command Line Tool.
Выберите Next , введите имя проекта и в пункте Language выберите C++ .
Нажмите Next , чтобы создать проект (в актуальном XCode12 вам потребуется ещё выбрать место для папки проекта — Прим. пер.). Когда проект будет создан, измените код в файле main.cpp на следующий:
Имейте в виду, вам необязательно пытаться понять весь код сейчас. Мы просто хотим использовать некоторые вызовы API, чтобы убедиться, что все работает правильно.
Xcode покажет некоторые ошибки, например, библиотеки, которые не были найдены. Необходимо настроить проект так, чтобы устранить эти ошибки. Выберите ваш проект в панели Project Navigator. Откройте вкладку Build Settings и выполните следующее:
- Найдите поле Header Search Paths и добавьте ссылку на /usr/local/include (это место, куда Homebrew устанавливает заголовочные файлы, поэтому здесь должны быть файлы glm и glfw3) и ссылку на vulkansdk/macOS/include для заголовочных файлов Vulkan.
- Найдите поле Library Search Paths и добавьте ссылку на /usr/local/lib (это еще одно место, куда Homebrew устанавливает библиотечные файлы, поэтому здесь должны быть файлы glm и glfw3) и ссылку на vulkansdk/macOS/lib .
В результате у вас должно получиться следующее (разумеется, пути будут отличаться в зависимости от расположения ваших файлов):
(На скриншоте на каждый параметр приходится по одному пути. Но, если следовать этому мануалу, вы получите по два пути на параметр. — Прим. пер.)
Теперь перейдем во вкладку Build Phases → Link Binary With Libraries и добавим фреймворки glfw3 и vulkan . Чтобы упростить задачу, мы будем добавлять в проект динамические библиотеки (если вы хотите использовать статические библиотеки, вы можете изучить документацию к ним).
- Для glfw откройте папку /usr/local/lib (для этого вызовите Spotlight – Command+Space и введите в строку поиска /usr/local/lib – Прим. пер.), где вы найдете файл с именем, похожим на libglfw.3.x.dylib (“x” — это номер версии библиотеки; он зависит от даты загрузки пакета из Homebrew). Перетащите файл во вкладку Linked Frameworks and Libraries в Xcode.
- Для vulkan перейдите в vulkansdk/macOS/lib . Сделайте то же самое с файлами libvulkan.1.dylib и libvulkan.1.x.xx.dylib (здесь “x” — это номер версии загруженного SDK).
После добавления библиотек в той же вкладке Copy Files измените Destination на “Frameworks”, очистите поле Subpath и уберите флажок напротив “Copy only when installing”. Нажмите на “+” и добавьте все три фреймворка. (Также уберите флажок напротив Code Sign On Copy, если он там есть. — Прим. пер.)
Конфигурация Xcode должна иметь следующий вид:
Осталось настроить несколько переменных среды. В панели инструментов Xcode перейдите в Product > Scheme > Edit Scheme. и во вкладке Arguments добавьте две переменные среды:
• VK_ICD_FILENAMES = vulkansdk/macOS/share/vulkan/icd.d/MoltenVK_icd.json
• VK_LAYER_PATH = vulkansdk/macOS/share/vulkan/explicit_layer.d
У вас должно получиться следующее:
Итак, настройка завершена! После запуска проекта (не забудьте установить конфигурацию сборки Debug или Release) вы увидите следующее:
Число расширений должно быть больше нуля («X extensions supported» в консоли). Остальные логи берутся из библиотек. Вы можете получать разные сообщения в зависимости от вашей конфигурации.
Поздравляем! Теперь вы готовы к реальной работе с Vulkan.
Источник