impeller_hal_vulkan/lib.rs
1//! Vulkan backend via ash. First-class: the reference implementation, the
2//! conformance oracle other backends are diffed against, and where new
3//! features land first.
4//!
5//! Vulkan 1.1 is the floor; later features are used when present rather than
6//! required. Features avoided for MoltenVK compatibility — geometry shaders,
7//! tessellation shaders, sparse residency, multi-draw-indirect-with-count —
8//! are none of them needed for 2D.
9//!
10//! Implements the `Hal` and `HalContext` traits, so the renderer and the
11//! conformance harness can drive this backend without naming it. The concrete
12//! API stays available alongside for bring-up and for tests that need Vulkan
13//! specifics.
14
15pub mod device;
16pub mod external;
17pub mod fence;
18pub mod hal;
19pub(crate) mod materials;
20pub mod render;
21pub mod resource;
22pub mod sampling;
23pub mod stencil;
24pub mod validation;
25
26pub use device::{ContextConfig, DevicePreference, FrameSync, VulkanContext};
27pub use fence::VulkanFence;
28pub use hal::VulkanHal;
29pub use resource::VulkanTexture;
30pub use validation::{Validated, ValidationLog, ValidationMessage, ValidationSeverity};