- Breaking: Removed Display impl for flags. The Debug impl now reports flags by name.
- Functions now have a doc comment that links to the Vulkan spec
- Entry has a new method called
try_enumerate_instance_version
which can be used in a 1.0 context. - The generator now uses
BTreeMap
for better diffs.
- Fixed a build issue on ARM.
- Breaking Arrays are now passed by reference.
- Builders are now marked as
#[transparent]
. - Breaking Renamed
.next(..)
topush_next
.push_next
is only available on structs that are passed directly. Addtionallypush_next
only accepts structs that can be inserted into the pointer chain. Read the readme for more information. - New experimental extensions. Those do not follow the semver rules and can be removed at any time.
- Added
AmdGpaInterface
extension.
- Extensions are now namespaced.
ash::extensions::khr::Swapchain
- Removed vendor tags from extension methods
- Added missing functions for VkEvent
- The examples were updated to use the new builder pattern
- A SPIR-V parsing function
ash::util::read_spv
- Added
get_pipeline_cache_data
-
Fix loader on MacOS.
-
Expose function pointers for easier interop with external libraries.
-
Builder now uses bool instead of Bool32.
-
Adds support for Vulkan 1.1
-
Constants are not represented as an
enum
anymore. Constants and flags are both represented as associated constants.
flags: vk::COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
//to
flags: vk::CommandPoolCreateFlags::RESET_COMMAND_BUFFER_BIT,
-
Pretty printing for flags
-
Handles can be loaded from outside of ash. See
SomeHandle::from_raw
. This is useful if you need to interact with a C library. -
Removing versioning from ash.
V1_X
are now gone. Versioning had very little benefit in practice,Entry
,Instance
andDevice
are now version free. A custom loader can still be implemented. The various traits still remainDeviceV1_0
. -
vk.rs
is now generated fromvk.xml
-
Ash now includes all docs inside the
vk.xml
, and are visible in rustdoc. -
Default
is now implemented for all structs -
There is now a builder pattern
-
Handles are now
#[repr(transparent)]
-
Various bug fixes
- Fixes arm build => uses libc everywhere. Remove
AlignByteSlice
.
- Refactor Align to use vk::DeviceSize.
-
map_memory
now returns a void ptr -
ash::util::Align
is a helper struct that can write to aligned memory.