-
Notifications
You must be signed in to change notification settings - Fork 12
A collection of Vulkan demos
License
itoral/vkdf
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A wrapper over the Vulkan API to simplify creation of simple demos plus a collection of demo samples. Build requirements ------------------------------------ You need the following dependencies installed on your system: - Glib - SDL2 or GLFW3 - glm - Assimp - SDL2 image - Vulkan SDK (Vulkan headers and loader) - glslangValidator In Ubuntu, these are provided by the following packages: - SDL2: libsdl2-dev - GLFW3: libglfw3-dev - Glib: libglib2.0-dev - glm: libglm-dev - Assimp: libassimp-dev - SDL2 image: libsdl2-image-dev - Vulkan SDK: libvulkan-dev The Vulkan SDK can also be obtained from the LunarG website [2]. The glslangValidator binary for Linux is included under external/glslang/ for convenience. A more up-to-date binary can be obtained by building it from source code [3], but this version is sufficient to compile the shaders included in this repository. Notice that the provided binary may not be valid for your environment, in which case building it from sources is the only option. [1] http://www.glfw.org/download.html [2] https://www.lunarg.com/vulkan-sdk/ [3] https://github.com/KhronosGroup/glslang Bulding and executing ----------------------------------- Building: $ ./autogen.sh [--enable-debug] [--enable-platform=sdl2|glfw3] $ make -j Executing: You will need a valid Vulkan driver for your target GPU in order to execute any of the demos. Your distro may not be providing this yet, but there are open source Mesa Vulkan drivers for Linux for Intel and AMD GPUs available that you can build from sources. If you have a compatible Vulkan driver installed but the Vulkan loader doesn't find it, you may need to indicate its location via the VK_ICD_FILENAMES environment variable. For example, for the Intel Mesa Vulkan driver: $ export VK_ICD_FILENAMES="<path-to-install-dir>/intel_icd.x86_64.json" The build will produce a shared library that demos will dynamically link against at run-time. Unless you install the library to a path visible to the dynamic linker you will need to include it in the LD_LIBRARY_PATH. To do this, from the root diectory of the VKDF source, do: $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/framework/.libs It is also necessary to export an environment variable with the path to the vkdf directory: export VKDF_HOME="<path-to-vkdf-directory>" All the demos are under the demos/ directory. For example, to execute the 'triangle' demo you should do: $ cd demos/triangle $ ./triangle Troubleshooting ----------------------------------- Many shaders are generated with a python3 script which implements a rudimentary form of #include for GLSL shaders. This feature is very basic and won't detect the case where the included file has been modified and regenerate the the shader during the make stage, which can lead to broken rendering. To avoid this, after pulling updates from the repository (or modifying included GLSL files), it is recommended to clean the build and re-build the project so the generated shader files are re-generated again: $ make clean $ make -j Wayland support is only available via SDL Enjoy!
About
A collection of Vulkan demos
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published