Crate ash

source ·
Expand description

§Vulkan API

https://registry.khronos.org/vulkan/specs/1.3-extensions/html/index.html

§Examples

use ash::{vk, Entry};
let entry = Entry::linked();
let app_info = vk::ApplicationInfo {
    api_version: vk::make_api_version(0, 1, 0, 0),
    ..Default::default()
};
let create_info = vk::InstanceCreateInfo {
    p_application_info: &app_info,
    ..Default::default()
};
let instance = unsafe { entry.create_instance(&create_info, None)? };

§Getting started

Load the Vulkan library linked at compile time using [Entry::linked()], or load it at runtime using Entry::load(), which uses libloading. If you want to perform entry point loading yourself, call Entry::from_static_fn().

§Crate features

  • debug (default): Whether Vulkan structs should implement Debug.
  • loaded (default): Support searching for the Vulkan loader manually at runtime.
  • linked: Link the Vulkan loader at compile time.
  • std (default): Whether ash depends on the standard library (otherwise alloc is required)

Modules§

  • Extensions tagged AMD
  • Extensions tagged AMDX
  • Extensions tagged ANDROID
  • Extensions tagged ARM
  • device 🔒
  • entry 🔒
  • Extensions tagged EXT
  • extensions 🔒
    Hand-written ergonomic wrappers for extension functions
  • Extensions tagged FUCHSIA
  • Extensions tagged GGP
  • Extensions tagged GOOGLE
  • Extensions tagged HUAWEI
  • Extensions tagged IMG
  • instance 🔒
  • Extensions tagged INTEL
  • Extensions tagged KHR
  • Extensions tagged LUNARG
  • Extensions tagged MSFT
  • Extensions tagged MVK
  • Extensions tagged NN
  • Extensions tagged NV
  • Extensions tagged NVX
  • Extensions tagged QCOM
  • Extensions tagged QNX
  • Extensions tagged SEC
  • tables 🔒
  • Extensions tagged VALVE
  • Raw Vulkan bindings and types, generated from vk.xml

Macros§

Structs§

Enums§

Traits§