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 toaetna_wgpu::Runner.
Structs§
- 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. - Vulkano
AppTexture - 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::Imagefor compositing via aaetna_core::tree::surfacewidget. - 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 capabilitySampleRateShading”.