On platforms like Android strings use `u8` as character-type instead of `i8` - using the appropriate `c_char` type hides this discrepancy and allows the examples to compile for all platforms.
8.6 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
Added
- Added
VK_KHR_present_wait
device extension (#493)
Changed
- examples: Use
c_char
for pointer to raw string (#521) - 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)
Removed
- 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 (#494) - Removed
From<vk::Result>
trait forVkResult
(#495) - Removed
instance
argument fromext::DebugUtils::submit_debug_utils_message
function (#499)
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.