Skip to content

n-e-l/cen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

388 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cen

build crate

A lightweight vulkan window backend using ash.

Cen aims to provide abstractions around Vulkan handles and window management. Current features include:

  • Winit-backed window setup
  • Vulkan wrappers with shared memory tracking
  • Hot-swappable shader storage, compiled at runtime
  • GLSL and Slang shader support
  • Built-in egui support
  • Image handles with automatic egui texture management

Vulkan features used

  • Push descriptors
  • Dynamic rendering

Building & running

Make sure you have the Vulkan SDK installed. This has to be a more recent version with Slang support. Then build and run cen examples:

git clone https://github.com/angelocarly/cen.git
cd cen
cargo run --example basic

GPU debugging

Windows & Linux

Mac

Mac only has XCode's Metal debugger. In order to use it you need to provide the following environment variables:

VULKAN_SDK=$HOME/VulkanSDK/<version>/macOS
DYLD_FALLBACK_LIBRARY_PATH=$VULKAN_SDK/lib
VK_ICD_FILENAMES=$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json
VK_LAYER_PATH=$VULKAN_SDK/share/vulkan/explicit_layer.d

Then you should be able to launch your cen application and capture a frame.
This video does a nice job explaining the process.

References

  • myndgera - Pipeline caching and reloading
  • paya - Vulkan memory dependencies and ash wrappers

About

Vulkan rendering backend

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors