Skip to content
/ gvk Public

A collection of Vulkan C++ utilities with a general focus on tools development, and a specific focus on supporting Intel® Graphics Performance Analyzers Framework

License

Notifications You must be signed in to change notification settings

intel/gvk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intel® Graphics Performance Analyzer Utilities for Vulkan*

A collection of Vulkan C++ utilities with a general focus on tools development, and a specific focus on supporting Intel Graphics Performance Analyzers Framework.

Features

  • 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...

Samples

Getting Started

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.

External use

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
)

About

A collection of Vulkan C++ utilities with a general focus on tools development, and a specific focus on supporting Intel® Graphics Performance Analyzers Framework

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Languages