Expand description
Low-level ash/Vulkan renderer adapter for custom Damascene hosts.
Use this crate when your application already owns an ash renderer
and wants to draw Damascene UI into its frame graph. The host remains
responsible for the Vulkan instance, physical device selection,
logical device, queues, command pools, command buffers, synchronization,
swapchain/surfaces, frame pacing, and platform event loop.
The public entry point is Runner. Its surface intentionally
mirrors damascene-wgpu / damascene-vulkano where ash allows it: Damascene
owns interaction state and draw-op preparation; the host owns Vulkan
frame management.
Rendering support is intentionally staged. Stock quad shaders, text,
raster images, flat MSDF icon/vector masks, and tessellated/painted
vectors are wired, and host-owned Vulkan textures can be composited
through app_texture. Backdrop sampling remains unsupported.
Structs§
- AshApp
Texture - Host-owned ash texture that Damascene can sample during paint.
- AshContext
- Host-owned Vulkan context that
damascene-ashborrows for resource creation and command recording. - AshRender
Target - A host-owned image/view pair Damascene can render into.
- Layout
Prepared - What [
RunnerCore::prepare_layout] returns: the resolvedDrawOplist plus the redraw deadlines split into two lanes (seePrepareResultfor the lane semantics). - Pointer
Move - Outcome of a pointer-move dispatch through
[
RunnerCore::pointer_moved] (or its backend wrappers). - Prepare
Result - Reported back from each backend’s
prepare(...)per frame. - Prepare
Timings - Per-stage CPU timing inside each backend’s
prepare. Cheap to compute (a handful ofInstant::now()calls per frame) and useful for finding the dominant cost when frame budget is tight. - Prepared
Frame - Lightweight diagnostic returned by
Runner::prepared_frame. - Runner
- Ash runtime owned by a custom host. One runner per compatible target.
- Target
Info - Pipeline/target compatibility information supplied at construction.
Enums§
- Compile
Error - Errors surfaced while compiling a WGSL shader to SPIR-V.
- Error
- Errors surfaced by the ash backend.
- LoadOp
- Load operation for the first Damascene-owned rendering scope.
- Paint
Item - Sequencing entry for the recorded paint stream.
Functions§
- app_
texture - Wrap a host-owned Vulkan image/view pair as an Damascene app texture.
- app_
texture_ with_ layout - Wrap a host-owned Vulkan image/view pair with an explicit sampled image layout.
- required_
device_ extensions - Device extensions required by the renderer itself.
- required_
device_ features - Vulkan device features the ash runner’s stock pipelines depend on.
- required_
vulkan_ 13_ features - Vulkan 1.3 feature-chain requirements for the ash backend.
- wgsl_
to_ spirv - Compile a WGSL source string to SPIR-V words suitable for
ash::Device::create_shader_module.