A lightweight compute shader engine using ash.
Kiyo provides a simple configuration interface to run compute shaders. The following features are implemented:
- Multiple subsequent compute passes
- Shared storage images between them
- GLSL compile logging
- Shader hot-reloading
For any feedback or requests you are very welcome to create issues or contact me directly!
You can find examples in ./examples/ and in my toy project repository.
These variables are accessible in the shader and provided by Kiyo itself, do not overwrite these as bugs will be introduced.
NUM_IMAGES
- The amount of accessible storage images.WORKGROUP_SIZE
- The workgroup size at which the shaders should run.
Make sure you have the Vulkan SDK installed.
Then build and run kiyo
:
git clone https://github.com/angelocarly/kiyo.git
cd kiyo
cargo run --example simple-render
Renderdoc!
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 kiyo application and capture a frame.
This video does a nice job explaining the process.
- sound-shader - Cpal wrapper code and shader audio inspiration