Broken links that snuck in (most recently in #530 and #537) while the CI was not testing the documentation have also been corrected, to allow it to succeed again (and to have proper docs in the first place).
12 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased - ReleaseDate
Changed
- Fixed broken (intradoc) links in the prelude and
VK_KHR_get_surface_capabilities2
extension (#559)
Added
- Added conversions from
Extent2D
toExtent3D
andRect2D
(#557)
0.35.1 - 2022-01-18
Added
- Added
VK_EXT_calibrated_timestamps
device extension (#556) - Added
VK_KHR_get_surface_capabilities2
device extension (#530)
Changed
- Convert
vk_bitflags_wrapped!
methods toconst fn
(#549) - examples: Update winit to 0.26 and image to 0.23 (#551)
- ash-window: Require at least
raw-window-handle 0.3.4
for 0.4 interop (#553) - Assert that Vulkan array-getters return the same length (#534)
- README: Correct documentation for
Entry
functions and related crate features (#545) - example: Refactor event loop handling for continuous redraw (#542)
- Generate
RGBA=R|G|B|A
helper constant forColorComponentFlags
(#537) - Remove remaining
CString
allocations on string literals in examples and hand-written AMD extension (#533)
0.35.0 - 2021-12-27
Changed
loaded
feature enabled by default in place oflinked
to relax default constraints on the build environmentEntry::new
renamed toEntry::linked
0.34.0 - 2021-12-22
Added
- Update Vulkan-Headers to 1.2.203 (#477, #497, #504, #509, #514)
- Add missing documentation to bitflag extension variants (#501)
- Added
VK_KHR_present_wait
device extension (#493) - Added
VK_KHR_maintenance4
device extension (#489, #498) - Link
_len()
functions to their array-getter using intradoc-links (#490) - Added
VK_KHR_dynamic_rendering
device extension (#488)
Changed
- Extension names from
fn name()
will not be checked for interior nuls anymore at runtime (#522) - examples: Use
c_char
for pointer to raw string (#521) - Group enum extension variants together per
impl T
block (#519) - examples: Use
slice::from_ref
to not loose lifetime on nested slices (#513) - Simplify triangle example's vertex input state (#512)
- Device extension
khr::PipelineExecutableProperties
andkhr::TimelineSemaphore
now exposefn device()
instead offn instance()
(#499) - Changed
khr::PipelineExecutableProperties::new()
andkhr::TimelineSemaphore::new()
to takeinstance
anddevice
as arguments (#499) - Fix broken vulkan-tutorial link in README.md (#492)
- Make
enumerate_physical_device_groups
unsafe (#491) - Added
Packed24_8
helper-type for constructing AS Instance bitfields, used inAccelerationStructureInstanceKHR
,AccelerationStructureSRTMotionInstanceNV
andAccelerationStructureMatrixMotionInstanceNV
(#476)s (#490) - examples: Upgrade to winit 0.25 (#487)
- To allow faster builds, Vulkan structures only implement
Debug
if thedebug
feature is enabled, which is the default (#482) - Use
Self
in macros (instead of$name
) andimpl
blocks (#479) - Link Vulkan directly under the default
linked
feature. Disable default features and enable theloaded
feature for the oldlibloading
behaviour (#457)
Removed
- Deprecated aliases for wrongly-named enum constants (containing
"Backwards-compatible"
in the Vulkan spec comment) are removed: switch to the version that it aliased (#502) - Removed
device()
function fromkhr::Synchronization2
device extension (#494) - Removed
instance()
function fromext::ExtendedDynamicState
,khr::PushDescriptor
,ext::ToolingInfo
andkhr::GetPhysicalDeviceProperties2
instance extensions (#494) - Removed
device
argument fromext::DebugMarkers::debug_marker_set_object_name
function,khr::PipelineExecutableProperties
andkhr::TimelineSemaphore
functions (#494, #499) - Removed
From<vk::Result>
trait forVkResult
(#495) - Removed
instance
argument fromext::DebugUtils::submit_debug_utils_message
function (#499) - Removed misleading
all()
/-
/-=
function/ops from bitflags (#478)
0.33.3 - 2021-09-08
Added
- Regenerated with Vulkan-Headers 1.2.191 (#463)
0.33.2 - 2021-08-26
Fixed
tooling_info
: InitializesType
/pNext
inget_physical_device_tool_properties
(#465)- Repeatedly call enumeration functions when
VK_INCOMPLETE
is returned (#465)
0.33.1 - 2021-08-23
Fixed
- util: Zero-initialize result to prevent possible uninit memory read (#470)
0.33.0 - 2021-07-30
Added
- Regenerated with Vulkan-Headers 1.2.186 (#456, #454, #446, #429)
- Generate
push_next
function for all extended structs (#305) - Vulkan 1.2.175: Provisional Video Extensions (#417)
- Globally remove all
allow(dead_code)
exceptions and make extensions public (#430) - Add extension wrapper for
VK_KHR_synchronization2
(#403) - added missing functions to
V1_0
traits (#416) - extensions/khr: Add
VK_KHR_external_fence_fd
wrapper (#413) - Add
VK_EXT_extended_dynamic_state
extension (#421) - Add
VK_KHR_get_physical_device_properties2
extension (#400) - extensions/khr: Add
ExternalSemaphoreFd
safe wrapper (#395) - Add
VK_KHR_get_memory_requirements2
extension (#401) - Add
VK_EXT_full_screen_exclusive
extension (#399) - Add
VK_NN_vi_surface
extension (#398) - Add
merge_pipeline_caches
,queue_bind_sparse
,get_render_area_granularity
toDeviceV1_0
(#397) - Add
VK_KHR
/EXT_buffer_device_address
extension (#405) - Add
VK_KHR_maintenance
extensions (#406)
Changed
- Use
PFN_
types for struct members instead of repeating function signature (#438) - Untangle mismatched parameter/return
fn
signatures in types (#437) - Mark all function pointer types as
unsafe
(#436) pSampleMask
setter should writeNULL
if slice is empty (#432)- vk/platform_types: Mark
SECURITY_ATTRIBUTES
as a trueffi::c_void
(#433) - Impl trait functions directly on
EntryCustom
/Instance
/Device
(#412) - Improve
Result
'sDisplay
impl for extension values (#424) - Use lifetime borrows instead of raw pointers in
pp_geometries
(#420) Entry::new
returnsErr
when entry point isn't found (#390)- Remove the
_mvk
suffix from the two extensions' functions (#407)
Fixed
- ash/extensions: Fix missing and broken autolinks to Vulkan docs (#459)
- Adds
LICENSE-*
files to crate subdirectories (#452) - external_memory_fd: Initialize output struct with proper
sType
(#394) - entry_libloading: Do not pass
AsRef
implementation by reference (#389)
0.32.1 - 2021-03-29
Added
- Add high-level extension wrapper for the 1.1 extension
VK_KHR_create_renderpass2
(#414)
0.32.0 - 2021-03-07
Added
- Final KHR RayTracing support (
VK_KHR_ray_tracing_pipeline
,VK_KHR_ray_query
andVK_KHR_acceleration_structure
device extensions) VK_NV_device_diagnostics_config
device extensionVK_KHR_deferred_host_operations
device extension- Expose header version and extension spec version constants
- Provide Vulkan library loader from custom path
Changed
- Removed deprecated experimental
VK_KHR_ray_tracing
extension - Update Vulkan-Headers to 1.2.168
- Update libloading from 0.6 to 0.7
Fixed
- Turn
c_void
-returning functions into Rust()
- Use best guess for ggp extension types
- Use raw pointers to static-sized arrays in FFI signatures
- rename parameter of
get_physical_device_surface_support
0.31.0 - 2020-05-10
Added
libloading
is now an optional dependency, but still used by default- Add metal surface extension
- Implement
VK_KHR_draw_indirect_count
- Added const qualifier to
as_raw
andfrom_raw
fns on enums
Changed
- The
vk::Device
parameter in 1.2 functions is now implicit - Moved library creation out of
Entry::new_custom
Fixed
- Initialize MemoryRequirements with
Default
instead ofzeroed
0.30.0 - 2020-03-22
Added
- Support for Vulkan 1.2 (Generated from spec 1.2.135)
- Add
VK_KHR_timeline_semaphore
extension support - Add
VK_KHR_ray_tracing
extension support - Add
VK_KHR_external_memory_fd
extension support - More safety docs
- Expose raw function pointers in extensions
Changed
- Switch to libloading
- Vulkan version macros are now const functions
- Switched to a new changelog format
Fixed
- Fix XCB types
- Fix OSX build errors of the examples
Before 0.30.0
0.29.0
- -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.
0.28.0
- Switched to a new changelog format
- 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. Additionallypush_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.
0.27.0/1
- 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
0.26.0
-
Fix loader on MacOS.
-
Expose function pointers for easier interop with external libraries.
-
Builder now uses bool instead of Bool32.
0.25.0
-
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
0.18.0
- Fixes arm build => uses libc everywhere. Remove
AlignByteSlice
.
0.17.0
- Refactor Align to use vk::DeviceSize.
0.16.0
-
map_memory
now returns a void ptr -
ash::util::Align
is a helper struct that can write to aligned memory.