1 unstable release
new 0.1.0 | Nov 28, 2024 |
---|
#167 in Graphics APIs
150KB
3K
SLoC
Reforge
A real-time vulkan compute shader utility capable of chaining shaders together in a render graph
Features
- Loading image formats supported via ffmpeg library
- Previewing compute shader(s) output in a real-time window
- Live updating when any shader in the graph is modified
- Parsing spirv for descriptor names
Live-reloading Pipeline Graph Configuration on Modification
Reforge has its own simple and intuitive pipeline configuration
We can live reload this configuration file and have instant visual feedback
Live-reloading Shaders on Modification
Similar to the config, we are able to reload any shader in the pipeline config by modifying it
Any syntax errors that happen when compiling your glsl will be outputted in detail
Usage
Usage: reforge [OPTIONS] <input-file> [output-file]
Arguments:
<input-file> Required file to read from
[output-file] Optional jpg file to write to
Options:
--width <WIDTH>
--height <HEIGHT>
--shader-format <SHADER_FORMAT> Shader image format [default: rgba32f] [possible values: rgba8, rgba32f]
--config <config> Path to the pipeline configuration file
--num-frames <NUM_FRAMES> Number of frame-in-flight to be used when displaying to the swapchain [default: 2]
-h, --help Print help
Setup
- Download the VulkanSDK here: https://vulkan.lunarg.com/sdk/home
- Install rust - On Mac, I recommend getting the latest rust by doing:
brew install rustup
rustup-init
- cargo build
- If you've vulkan SDK is not in your global path you'll need to source it before running:
source .../VulkanSDK/x.y.z/setup-env.sh
Dependencies
~59MB
~1M SLoC