Skip to content

omathot/Velo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Velo

A project to teach myself more about GPUs, modern Vulkan practices and C++23.

Velo uses dynamic rendering, timeline semaphores, as well as descriptor indexing and the associated features needed for bindless descriptors. Memory is allocated using Vulkan Memory Allocator.

Requirements

  • Cmake 4.x (downloads page)
  • Ninja
  • Vulkan 1.3
  • Slang (github releases)
    • Important make sure you have SLANGC_EXECUTABLE environment variable set and pointing to the slangc executable itself. Vulkan SDK ships with it included.
      • bash
        export SLANGC_EXECUTABLE="$VULKAN_SDK/bin/slangc"
        or
        export SLANGC_EXECUTABLE=~/path/to/slangc
        
      • fish
        set -Ux SLANGC_EXECUTABLE $VULKAN_SDK/bin/slangc
        or
        set -Ux SLANGC_EXECUTABLE /path/to/slangc
        
  • Clang
  • glm
  • glfw

Build

git clone https://github.com/omathot/Velo.git
cd Velo
cmake -G Ninja -B build -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Debug
cmake --build build

./build/velo

Options

-DX11=ON (force X11 - useful for renderdoc)
-DINFOS=ON (creates infos/ dir and stores available vk features/extensions/layers and required glfw extensions)
-DTIDY=ON (run clang-tidy on Velo, longer build times)
-DCODAM=ON (different code path, testing repurposing this for a codam advanced project)

Controls

  • W : Move object further
  • S : Move object closer
  • A : Move object to the left
  • D : Move object to the right
  • UP : Move object up
  • DOWN : Move object down
  • SPACE : Switch rotation direction
  • C : Start/Stop rotation toggle
  • - : Slow rotation down
  • = : Speed rotation up

Screenshots

image

image

Tested on 5070 and 9070XT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors