asche
Provides an abstraction layer above erupt to easier use Vulkan in Rust. Mainly handles the Vulkan busywork (device initialization, memory handling etc.) and the lifetimes of objects.
No validation and a lot of pain. You most likely want to use wgpu-rs instead!
Requirements
Vulkan 1.2.
Used features:
- "buffer device address"
- "timeline_semaphores"
Features
logging
Adds logging using tracing.profiling
Adds support for profiling.smallvec
Uses the crate smallvec for vectors in the hot path to reduce pressure on the heap.
logging
and smallvec
are on by default.
Examples
Examples are provided.
Triangle
Most simple example that shows how to draw a triangle in Vulkan.
Cube
Shows how to use push constants, vertex and index buffers and also compressed textures.
Raytracing
Uses the VK_raytracing_KHR
extension to fully ray trace a simple scene. Shows how to initialize
and use acceleration structures (triangle based), create and use the shader binding table (SBT), use
descriptor indexing with non uniform indexes and partial binds, write raytracing shader and do very
basic lightning.
Compute
Simple compute example.
License
Licensed under MIT or Apache-2.0 or ZLIB.