A collection of Vulkan C++ utilities with a general focus on tools development, and a specific focus on supporting Intel Graphics Performance Analyzers Framework.
- Vulkan structure utilities (compare/copy/serialize/stringify)
- Managed Vulkan handles
- Managed WSI (Window System Integration)
- ImGui integration
- SPIR-V compilation via glslang
- SPIR-V reflection via SPIRV-Cross
- Vulkan Memory Allocator integration
- Vulkan XML parsing utilities (used to keep the project up to date with the vk.xml)
- ...and more...
Ensure the following tools are installed...
- CMake v3.3+ (Make sure to select "Add to PATH" when prompted)
- Git
- Python v3+ (Make sure to select "Add to PATH" when prompted)
- Visual Studio 2022 (Make sure to select "Desktop development with C++" when prompted)
- Vulkan SDK v1.3.290.0
The following command lines are for configuring a Visual Studio solution using a bash like terminal (Git Bash comes with the Git install by default on Windows) in a directory called gitrepos/intel on drive C:...
cd c:
cd gitrepos/intel
git clone https://github.com/intel/gvk.git
cd gvk/
cmake -G "Visual Studio 17 2022" -A x64 -B build
cmake --build build
...open gvk/build/gvk.sln in Visual Studio, navigate to gvk/samples/getting-started-00-triangle, right click and select "Set as Startup Project", run.
For Linux, replace cmake -G "Visual Studio 17 2022" -A x64 .. with cmake .. for the default Makefile generator. See CMake's documentation for other generators. Note that Windows support is further along than Linux, ymmv.
Somewhere in your CMakeLists, add the following with options configured as necessary, all avaialable options can be found in gvk's root CMakeLists.txt...
include(FetchContent)
set(gvk-default_ENABLED OFF CACHE BOOL "" FORCE)
set(gvk-default_INSTALL_ARTIFACTS OFF CACHE BOOL "" FORCE)
set(gvk-default_INSTALL_HEADERS OFF CACHE BOOL "" FORCE)
set(gvk-gui_ENABLED ON CACHE BOOL "" FORCE)
set(gvk-handles_ENABLED ON CACHE BOOL "" FORCE)
set(gvk-math_ENABLED ON CACHE BOOL "" FORCE)
set(gvk-runtime_ENABLED ON CACHE BOOL "" FORCE)
set(gvk-spirv_ENABLED ON CACHE BOOL "" FORCE)
set(gvk-structures_ENABLED ON CACHE BOOL "" FORCE)
set(gvk-system_ENABLED ON CACHE BOOL "" FORCE)
set(gvk-stb_ENABLED ON CACHE BOOL "" FORCE)
set(gvk-build-tests OFF CACHE BOOL "" FORCE)
set(gvk-build-samples OFF CACHE BOOL "" FORCE)
FetchContent_Declare(
gvk
GIT_REPOSITORY "https://github.com/intel/gvk.git"
GIT_TAG <desired commit hash>
)
FetchContent_MakeAvailable(gvk)
...and the enabled gvk components are avaialable for linking...
target_link_libraries(
someTarget
PUBLIC
gvk-gui
gvk-handles
gvk-math
gvk-runtime
gvk-spirv
gvk-structures
gvk-system
stb
)





