Skip to main content

Crate aetna_vulkano

Crate aetna_vulkano 

Source
Expand description

Native Vulkan backend for custom Aetna hosts.

Most applications should implement aetna_core::App and run it through aetna-winit-wgpu. Use this crate directly when you are validating backend parity or embedding Aetna into an existing Vulkan renderer built on vulkano.

The public entry point is Runner. Its surface mirrors aetna-wgpu::Runner where the GPU APIs allow it: the host owns the window, device, queue, swapchain, and event loop; the runner owns Aetna interaction state, layout/draw-op preparation, Vulkan pipelines, text atlas images, and icon rendering.

WGSL remains the shader source language. This backend uses naga to compile WGSL to SPIR-V when building pipelines so custom shader fixtures can be shared with the wgpu backend.

Re-exports§

pub use naga_compile::CompileError;
pub use naga_compile::wgsl_to_spirv;
pub use runner::Runner;

Modules§

naga_compile
WGSL → SPIR-V compilation via naga.
runner
aetna-vulkano::Runner — peer to aetna_wgpu::Runner.

Structs§

LayoutPrepared
What [RunnerCore::prepare_layout] returns: the resolved DrawOp list plus the redraw deadlines split into two lanes (see PrepareResult for the lane semantics).
PointerMove
Outcome of a pointer-move dispatch through [RunnerCore::pointer_moved] (or its backend wrappers).
PrepareResult
Reported back from each backend’s prepare(...) per frame.
PrepareTimings
Per-stage CPU timing inside each backend’s prepare. Cheap to compute (a handful of Instant::now() calls per frame) and useful for finding the dominant cost when frame budget is tight.
VulkanoAppTexture
Concrete vulkano-side AppTextureBackend. Holds the image + a default-view + cached id so the runtime can downcast and bind the view directly into a descriptor set.

Functions§

app_texture
Wrap an app-allocated vulkano::image::Image for compositing via a aetna_core::tree::surface widget.
required_device_features
Vulkan device features the runner’s stock pipelines depend on. Hosts must merge this with their own required features when calling Device::new(..., DeviceCreateInfo { enabled_features, .. }) — otherwise pipeline construction panics with a SPIR-V validation error like “uses the SPIR-V capability SampleRateShading”.