2022-07-30 06:24:35 +10:00
# Changelog
2023-05-02 18:46:42 +10:00
2020-03-23 06:27:37 +11:00
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog ](https://keepachangelog.com/en/1.0.0/ ),
and this project adheres to [Semantic Versioning ](https://semver.org/spec/v2.0.0.html ).
2022-03-24 08:04:12 +11:00
## [Unreleased] - ReleaseDate
2023-03-21 17:19:17 +11:00
### Added
2023-05-07 05:25:42 +10:00
- Added `Handle::is_null()` to allow checking if a handle is a `NULL` value (#694)
2023-05-29 09:32:22 +10:00
- Allow building `Entry` /`Instance`/`Device` from handle+fns (see their `from_parts_1_x()` associated functions) (#748)
2023-11-29 01:05:27 +11:00
- Update Vulkan-Headers to 1.3.271 (#760, #763 , #783 , #816 )
2023-06-22 06:14:38 +10:00
- Added `VK_NV_memory_decompression` device extension (#761)
2023-07-11 23:45:04 +10:00
- Added `VK_GOOGLE_display_timing` device extension (#765)
2023-07-12 20:09:08 +10:00
- Added `VK_ANDROID_external_memory_android_hardware_buffer` device extension (#769)
2023-07-29 18:45:11 +10:00
- Added `VK_AMD_buffer_marker` device extension (#772)
2023-07-29 18:51:03 +10:00
- Added `VK_AMD_shader_info` device extension (#773)
2023-08-14 23:51:20 +10:00
- Added `VK_AMDX_shader_enqueue` device extension (#776)
2023-08-14 23:56:42 +10:00
- Added `VK_EXT_host_image_copy` device extension (#779)
2023-08-15 00:09:06 +10:00
- Added `VK_KHR_maintenance5` device extension (#780)
2023-08-15 00:42:57 +10:00
- Added `VK_NV_device_generated_commands_compute` device extension (#781)
2023-08-15 00:49:32 +10:00
- Added `VK_KHR_cooperative_matrix` instance extension (#782)
2023-08-15 00:57:11 +10:00
- Added `VK_EXT_vertex_input_dynamic_state` device extension (#784)
2023-08-15 01:13:07 +10:00
- Added `VK_KHR_sampler_ycbcr_conversion` device extension (#785)
2023-08-16 05:43:01 +10:00
- Added `VK_EXT_swapchain_maintenance1` device extension (#786)
2023-10-26 05:02:19 +11:00
- Added `VK_NV_low_latency2` device extension (#802)
2023-10-26 18:05:14 +11:00
- Added `VK_EXT_hdr_metadata` device extension (#804)
2023-10-27 08:03:22 +11:00
- Added `VK_NV_cuda_kernel_launch` device extension (#805)
2023-10-31 20:16:34 +11:00
- Added `descriptor_count()` setter on `ash::vk::WriteDescriptorSet` (#809)
2023-11-29 10:37:21 +11:00
- Added `*_as_c_str()` getters for `c_char` pointers and `c_char` arrays (#831)
2023-03-21 17:19:17 +11:00
2022-06-06 04:58:50 +10:00
### Changed
- Replaced builders with lifetimes/setters directly on Vulkan structs (#602)
- Inlined struct setters (#602)
2023-12-03 06:04:57 +11:00
- Bumped MSRV from 1.59 to 1.69 (#709, #746 )
2023-03-10 09:53:04 +11:00
- Replaced `const fn name()` with associated `NAME` constants (#715)
2023-05-07 04:39:57 +10:00
- Generic builders now automatically set `objecttype` to `<T as Handle>::ObjectType` (#724)
2023-05-07 05:25:05 +10:00
- `get_calibrated_timestamps()` now returns a single value for `max_deviation` (#738)
2023-11-15 20:19:14 +11:00
- Bumped `libloading` from `0.7` to `0.8` (#739)
2023-05-04 04:47:01 +10:00
- extensions/khr: Take the remaining `p_next` -containing structs as `&mut` to allow chains (#744)
- `AccelerationStructure::get_acceleration_structure_build_sizes()`
- `ExternalMemoryFd::get_memory_fd_properties()`
- `ExternalMemoryWin32::get_memory_win32_handle_properties()`
- `GetSurfaceCapabilities2::get_physical_device_surface_capabilities2()`
2023-05-07 04:21:48 +10:00
- Define `Display` as `c_void` instead of `*mut c_void` to match Xlib (#751)
2023-05-07 03:29:28 +10:00
- `VK_KHR_device_group_creation` : Take borrow of `Entry` in `fn new()` (#753)
2023-05-30 06:11:55 +10:00
- `VK_KHR_device_group_creation` : Rename `vk::Instance` -returning function from `device()` to `instance()` (#759)
2023-10-14 20:18:23 +11:00
- Windows `HANDLE` types (`HWND`, `HINSTANCE` , `HMONITOR` ) are now defined as `isize` instead of `*const c_void` (#797)
2023-11-29 10:37:21 +11:00
- extensions/ext/ray_tracing_pipeline: Pass indirect SBT regions as single item reference (#829)
- Replaced `c_char` array setters with `CStr` setters (#831)
2022-11-24 09:05:11 +11:00
### Removed
2022-12-13 05:36:06 +11:00
- Removed all code generated for `"disabled"` extensions, typically with a number rather than a descriptive name (#448)
2022-11-24 09:05:11 +11:00
- Removed experimental AMD extensions (#607)
2023-02-25 08:33:24 +11:00
- Removed `query_count` parameter from `get_query_pool_results()` in favour of `data.len()` (#644)
2022-12-13 05:36:06 +11:00
- Removed misnamed, deprecated `debug_utils_set_object_name()` and `debug_utils_set_object_tag()` entirely, use `set_debug_utils_object_name()` and `set_debug_utils_object_tag()` instead (#661)
2023-03-30 20:12:36 +11:00
- Removed `get_properties` helper from extension wrappers (and `ext::PhysicalDeviceDrm` ). Directly call `get_physical_device_properties2()` with a possible chain of multiple structs instead (#728)
2023-05-07 04:22:32 +10:00
- Removed `fn load()` from empty features and extensions (#752)
- Removed empty `entry_fn_1_2` /`entry_fn_1_3` and getters from `Entry`
- Removed empty `instance_fn_1_2:` and getters from `Instance`
2022-11-24 09:05:11 +11:00
2023-05-30 05:25:48 +10:00
## [0.37.3] - 2023-05-29
### Changed
- `VK_KHR_device_group_creation` : Replaced `device()` with `instance()` (via deprecation) because it is returning `vk::Instance` (#754)
### Added
- Added `VK_EXT_pipeline_properties` device extension (#622)
- Update Vulkan-Headers to 1.3.251 (#697, #723 , #741 )
- Added `VK_KHR_performance_query` device extension (#726)
- Added `VK_EXT_shader_object` device extension (#732)
- Added missing `Device::get_device_queue2()` wrapper (#736)
- Added with `new_with_instance()` on the following extensions to allow loading the listed `Instance` functions: (#754)
- `VK_KHR_swapchain` : `get_physical_device_present_rectangles()`
- `VK_KHR_device_group` : `get_physical_device_present_rectangles()`
- `VK_EXT_full_screen_exclusive` : `get_physical_device_surface_present_modes2()`
- Exposed `FramebufferCreateInfoBuilder::attachment_count()` builder for `vk::FramebufferCreateFlags::IMAGELESS` (#747)
2023-01-11 21:33:47 +11:00
## [0.37.2] - 2022-01-11
### Added
- Update Vulkan-Headers to 1.3.238 (#688)
2023-01-11 21:27:26 +11:00
### Fixed
- `VK_KHR_draw_indirect_count` : use `cmd_draw_indirect_count_khr` instead of `cmd_draw_indexed_indirect_count_khr` for non-indexed draw call (#695)
2022-11-24 09:05:11 +11:00
## [0.37.1] - 2022-11-23
### Changed
- Inlined builder setters (partial backport from #602 )
2022-06-06 04:58:50 +10:00
- Inlined `Default` impls and trivial `Instance` /`Device`/`Entry` wrapper methods (#606, #632 )
2022-09-24 19:07:35 +10:00
- Renamed `debug_utils_set_object_name()` to `set_debug_utils_object_name()` and `debug_utils_set_object_tag()` to `set_debug_utils_object_tag()` for consistency and deprecated old ones (#661)
2022-06-06 04:58:50 +10:00
2022-04-01 18:53:00 +11:00
### Added
2022-04-29 22:12:27 +10:00
- Added `VK_EXT_image_drm_format_modifier` device extension (#603)
2022-11-24 09:05:11 +11:00
- Set MSRV (Minimum Supported Rust Version) in `Cargo.toml` for clearer errors (#604)
2022-11-23 09:13:09 +11:00
- Update Vulkan-Headers to 1.3.235 (#605, #608 , #619 , #655 , #667 )
2022-09-19 20:39:54 +10:00
- Added `const STRUCTURE_TYPE` to all Vulkan structures for matching with `match_struct!` macro (#614)
2022-07-04 05:54:17 +10:00
- Added `VK_EXT_sample_locations` device extension (#616)
- Added `VK_NV_coverage_reduction_mode` device extension (#617)
2022-07-04 06:00:25 +10:00
- Added `VK_KHR_ray_tracing_maintenance1` device extension (#620)
2022-07-04 06:09:06 +10:00
- Added `VK_EXT_image_compression_control` device extension (#621)
2022-06-06 05:47:29 +10:00
- Added new functions to `VK_KHR_swapchain` , available since Vulkan 1.1 (#629)
2022-06-05 20:32:26 +10:00
- Added `VK_KHR_device_group_creation` instance extension (#630)
2022-07-02 06:19:56 +10:00
- Added `VK_KHR_device_group` device extension (#631)
2022-09-26 08:31:28 +10:00
- Added `VK_EXT_mesh_shader` device extension (#657)
2022-10-12 02:33:31 +11:00
- Added `VK_EXT_acquire_drm_display` instance extension (#668)
2022-11-23 09:28:31 +11:00
- Added `VK_EXT_extended_dynamic_state3` device extension (#671)
2022-11-23 09:35:10 +11:00
- Added `VK_EXT_descriptor_buffer` instance extension (#679)
2022-04-01 18:53:00 +11:00
2022-09-22 08:57:45 +10:00
### Fixed
2023-01-11 21:33:47 +11:00
- `VK_KHR_ray_tracing_pipeline` : Set the buffer length in `get_ray_tracing_capture_replay_shader_group_handles` so it no longer always returns an empty `Vec` (#658)
2022-09-22 08:57:45 +10:00
2022-03-24 08:04:12 +11:00
## [0.37.0] - 2022-03-23
2022-02-24 06:16:00 +11:00
2022-03-23 10:03:34 +11:00
### Changed
2022-03-23 09:50:18 +11:00
- Dropped auto-generated wrapper methods from function pointer structs
in favor of direct invocation of function pointers (#599)
2022-03-24 08:04:12 +11:00
- Constified extension names (#590)
2022-03-23 10:03:34 +11:00
- `VK_NV_device_diagnostic_checkpoints` : Enable passing `pNext` -initialized structs to `get_queue_checkpoint_data` (#588)
2022-03-23 09:50:18 +11:00
2022-02-24 06:16:00 +11:00
### Added
2022-03-24 07:52:28 +11:00
- Update Vulkan-Headers to 1.3.209 (#597, #601 )
2022-02-24 06:16:00 +11:00
- Added `VK_EXT_headless_surface` instance extension (#589)
2022-02-22 07:46:34 +11:00
## [0.36.0] - 2022-02-21
2021-12-28 09:52:23 +11:00
2022-01-23 06:27:07 +11:00
### Changed
2023-01-11 21:33:47 +11:00
- `VK_KHR_external_memory_fd` : Drop `_khr` suffix from `get_memory_fd_properties_khr` (#580)
2022-02-19 20:30:35 +11:00
- entry: Allow querying `enumerate_instance_extension_properties()` by layer name (#574)
2022-02-19 20:18:21 +11:00
### Added
2022-02-19 20:39:58 +11:00
- Add helper wrappers for Vulkan core 1.3 `Instance` and `Device` functions (#568)
2022-02-19 20:18:21 +11:00
- Update Vulkan-Headers to 1.3.206 (#563)
## [0.35.2] - 2022-02-19
### Changed
2022-01-29 12:10:52 +11:00
- Replace `1.2-extensions` documentation links with `1.3-extensions` (#569)
2022-01-23 06:27:07 +11:00
- Fixed broken (intradoc) links in the prelude and `VK_KHR_get_surface_capabilities2` extension (#559)
2022-01-23 02:29:45 +11:00
### Added
2022-02-17 10:23:45 +11:00
- Added `VK_KHR_external_fence_win32` device extension (#582)
2022-02-17 09:13:19 +11:00
- Added `VK_KHR_external_semaphore_win32` device extension (#581)
2022-02-17 08:30:54 +11:00
- Added `VK_KHR_external_memory_win32` device extension (#579)
2022-01-30 07:39:48 +11:00
- Added `VK_EXT_extended_dynamic_state2` device extension (#572)
2022-01-30 07:34:30 +11:00
- Added `VK_KHR_copy_commands2` device extension (#571)
2022-01-29 12:12:42 +11:00
- Added `VK_EXT_private_data` device extension (#570)
2022-01-23 02:29:45 +11:00
- Added conversions from `Extent2D` to `Extent3D` and `Rect2D` (#557)
2022-01-18 22:07:54 +11:00
## [0.35.1] - 2022-01-18
2021-12-30 00:35:25 +11:00
### Added
2022-01-18 02:32:05 +11:00
- Added `VK_EXT_calibrated_timestamps` device extension (#556)
2021-12-30 00:35:25 +11:00
- Added `VK_KHR_get_surface_capabilities2` device extension (#530)
2022-01-04 09:28:43 +11:00
### Changed
2022-01-18 06:45:10 +11:00
- Convert `vk_bitflags_wrapped!` methods to `const 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)
2022-01-04 09:28:43 +11:00
- example: Refactor event loop handling for continuous redraw (#542)
- Generate `RGBA=R|G|B|A` helper constant for `ColorComponentFlags` (#537)
- Remove remaining `CString` allocations on string literals in examples and hand-written AMD extension (#533)
2021-12-28 09:52:23 +11:00
## [0.35.0] - 2021-12-27
2021-12-27 21:49:40 +11:00
### Changed
- `loaded` feature enabled by default in place of `linked` to relax default constraints on the build environment
- `Entry::new` renamed to `Entry::linked`
2021-12-22 12:39:11 +11:00
## [0.34.0] - 2021-12-22
2020-03-23 06:27:37 +11:00
2021-11-19 20:39:06 +11:00
### Added
2021-12-22 12:39:11 +11:00
- Update Vulkan-Headers to 1.2.203 (#477, #497 , #504 , #509 , #514 )
- Add missing documentation to bitflag extension variants (#501)
2021-12-11 23:19:34 +11:00
- Added `VK_KHR_present_wait` device extension (#493)
2021-12-22 12:39:11 +11:00
- 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)
2021-12-11 23:19:34 +11:00
### Changed
2021-12-22 11:38:48 +11:00
- Extension names from `fn name()` will not be checked for interior nuls anymore at runtime (#522)
2021-12-22 06:42:47 +11:00
- examples: Use `c_char` for pointer to raw string (#521)
2021-12-22 12:39:11 +11:00
- 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)
2021-12-11 23:19:34 +11:00
- Device extension `khr::PipelineExecutableProperties` and `khr::TimelineSemaphore` now expose `fn device()` instead of `fn instance()` (#499)
- Changed `khr::PipelineExecutableProperties::new()` and `khr::TimelineSemaphore::new()` to take `instance` and `device` as arguments (#499)
2021-12-22 12:39:11 +11:00
- 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 in `AccelerationStructureInstanceKHR` , `AccelerationStructureSRTMotionInstanceNV` and `AccelerationStructureMatrixMotionInstanceNV` (#476)s (#490)
- examples: Upgrade to winit 0.25 (#487)
2021-10-16 14:14:21 +11:00
- To allow faster builds, Vulkan structures only implement `Debug` if the `debug` feature is enabled, which is the default (#482)
2021-12-22 12:39:11 +11:00
- Use `Self` in macros (instead of `$name` ) and `impl` blocks (#479)
- Link Vulkan directly under the default `linked` feature. Disable default features and enable the `loaded` feature for the old `libloading` behaviour (#457)
2021-12-11 23:19:34 +11:00
### Removed
2021-12-22 12:39:11 +11:00
- 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)
2021-12-11 23:19:34 +11:00
- Removed `device()` function from `khr::Synchronization2` device extension (#494)
- Removed `instance()` function from `ext::ExtendedDynamicState` , `khr::PushDescriptor` , `ext::ToolingInfo` and `khr::GetPhysicalDeviceProperties2` instance extensions (#494)
2021-12-22 12:39:11 +11:00
- Removed `device` argument from `ext::DebugMarkers::debug_marker_set_object_name` function, `khr::PipelineExecutableProperties` and `khr::TimelineSemaphore` functions (#494, #499 )
2021-12-11 23:19:34 +11:00
- Removed `From<vk::Result>` trait for `VkResult` (#495)
- Removed `instance` argument from `ext::DebugUtils::submit_debug_utils_message` function (#499)
2021-12-22 12:39:11 +11:00
- Removed misleading `all()` /`-`/`-=` function/ops from bitflags (#478)
2021-11-19 20:39:06 +11:00
2021-09-08 19:31:45 +10:00
## [0.33.3] - 2021-09-08
### Added
- Regenerated with Vulkan-Headers 1.2.191 (#463)
2021-08-27 05:54:56 +10:00
## [0.33.2] - 2021-08-26
### Fixed
- `tooling_info` : Initialize `sType` /`pNext` in `get_physical_device_tool_properties` (#465)
- Repeatedly call enumeration functions when `VK_INCOMPLETE` is returned (#465)
2021-08-23 20:46:38 +10:00
## [0.33.1] - 2021-08-23
2021-08-23 20:44:17 +10:00
### Fixed
- util: Zero-initialize result to prevent possible uninit memory read (#470)
2021-07-30 23:22:29 +10:00
## [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` to `DeviceV1_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 write `NULL` if slice is empty (#432)
- vk/platform_types: Mark `SECURITY_ATTRIBUTES` as a true `ffi::c_void` (#433)
- Impl trait functions directly on `EntryCustom` /`Instance`/`Device` (#412)
- Improve `Result` 's `Display` impl for extension values (#424)
- Use lifetime borrows instead of raw pointers in `pp_geometries` (#420)
- `Entry::new` returns `Err` 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)
2021-04-15 19:24:11 +10:00
## [0.32.1] - 2021-03-29
### Added
2021-07-30 23:22:29 +10:00
- Add high-level extension wrapper for the 1.1 extension `VK_KHR_create_renderpass2` (#414)
2021-04-15 19:24:11 +10:00
2021-04-15 19:17:02 +10:00
## [0.32.0] - 2021-03-07
2021-03-08 06:10:26 +11:00
### Added
2021-04-15 19:47:36 +10:00
- Final KHR RayTracing support (`VK_KHR_ray_tracing_pipeline`, `VK_KHR_ray_query` and `VK_KHR_acceleration_structure` device extensions)
2021-03-08 06:10:26 +11:00
- `VK_NV_device_diagnostics_config` device extension
2021-04-15 19:47:36 +10:00
- `VK_KHR_deferred_host_operations` device extension
2021-03-08 06:10:26 +11:00
- Expose header version and extension spec version constants
- Provide Vulkan library loader from custom path
### Changed
2021-04-15 19:47:36 +10:00
- Removed deprecated experimental `VK_KHR_ray_tracing` extension
2021-03-08 06:10:26 +11:00
- Update Vulkan-Headers to 1.2.168
- Update libloading from 0.6 to 0.7
### Fixed
2021-04-15 19:47:36 +10:00
- Turn `c_void` -returning functions into Rust `()`
2021-03-08 06:10:26 +11:00
- 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`
2020-05-11 05:14:01 +10:00
## [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` and `from_raw` fns on enums
2020-04-11 20:18:31 +10:00
### Changed
2020-05-11 05:14:01 +10:00
- 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 of `zeroed`
2020-04-11 20:18:31 +10:00
2020-03-23 06:27:37 +11:00
## [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 ](https://github.com/nagisa/rust_libloading )
2020-03-24 22:22:14 +11:00
- Vulkan version macros are now const functions
2020-03-23 06:27:37 +11:00
- Switched to a new [changelog ](https://keepachangelog.com/en/1.0.0/ ) format
### Fixed
- Fix XCB types
- Fix OSX build errors of the examples
## Before 0.30.0
### 0.29.0
2023-05-02 18:46:42 +10:00
2023-05-07 04:21:48 +10:00
- *Breaking*: Removed Display impl for flags. The Debug impl now reports flags by name.
2020-03-23 06:27:37 +11:00
- 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.
2023-05-02 18:46:42 +10:00
2020-03-23 06:27:37 +11:00
### 0.28.0
2023-05-02 18:46:42 +10:00
2020-03-23 06:27:37 +11:00
- Switched to a new [changelog ](https://keepachangelog.com/en/1.0.0/ ) format
- Fixed a build issue on ARM.
2023-05-07 04:21:48 +10:00
- *Breaking*: Arrays are now passed by reference.
2020-03-23 06:27:37 +11:00
- Builders are now marked as `#[transparent]` .
2023-05-07 04:21:48 +10:00
- *Breaking*: Renamed `.next(..)` to `push_next` . `push_next` is only available on structs that are passed directly. Additionally `push_next` only accepts structs that can be inserted into the pointer chain. Read the readme for more information.
2020-03-23 06:27:37 +11:00
- New -experimental- extensions. Those do not follow the semver rules and can be removed at any time.
- Added `AmdGpaInterface` extension.
2019-03-11 06:32:12 +11:00
2019-01-13 22:41:44 +11:00
# 0.27.0/1
2020-03-23 06:27:37 +11:00
- 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`
2019-01-13 22:41:44 +11:00
2020-03-23 06:27:37 +11:00
### 0.26.0
2018-11-17 04:45:54 +11:00
2020-03-23 06:27:37 +11:00
- Fix loader on MacOS.
2018-11-17 04:45:54 +11:00
2020-03-23 06:27:37 +11:00
- Expose function pointers for easier interop with external libraries.
2018-11-17 04:45:54 +11:00
2020-03-23 06:27:37 +11:00
- Builder now uses bool instead of Bool32.
2023-05-02 18:46:42 +10:00
2020-03-23 06:27:37 +11:00
### 0.25.0
2017-07-09 17:13:36 +10:00
2020-03-23 06:27:37 +11:00
- Adds support for Vulkan 1.1
2017-07-09 17:13:36 +10:00
2020-03-23 06:27:37 +11:00
- Constants are not represented as an `enum` anymore. Constants and flags are both represented as associated constants.
2018-11-12 04:29:11 +11:00
```Rust
flags: vk::COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
//to
flags: vk::CommandPoolCreateFlags::RESET_COMMAND_BUFFER_BIT,
```
2020-03-23 06:27:37 +11:00
- Pretty printing for flags
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
- Handles can be loaded from outside of ash. See `SomeHandle::from_raw` . This is useful if you need to interact with a C library.
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
- Removing versioning from ash. `V1_X` are now gone. Versioning had very little benefit in practice, `Entry` , `Instance` and `Device` are now version free. A custom loader can still be implemented. The various traits still remain `DeviceV1_0` .
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
- `vk.rs` is now generated from `vk.xml`
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
- Ash now includes all docs inside the `vk.xml` , and are visible in rustdoc.
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
- `Default` is now implemented for all structs
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
- There is now a builder pattern
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
- Handles are now `#[repr(transparent)]`
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
- Various bug fixes
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
### 0.18.0
2023-05-02 18:46:42 +10:00
2020-03-23 06:27:37 +11:00
- Fixes arm build => uses libc everywhere. Remove `AlignByteSlice` .
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
### 0.17.0
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
- Refactor Align to use vk::DeviceSize.
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
### 0.16.0
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
- `map_memory` now returns a void ptr
2018-11-12 04:29:11 +11:00
2020-03-23 06:27:37 +11:00
- `ash::util::Align` is a helper struct that
2023-05-07 04:21:48 +10:00
can write to aligned memory.
2020-03-23 06:27:37 +11:00
2023-11-18 02:55:05 +11:00
[Unreleased]: https://github.com/ash-rs/ash/compare/0.37.2...HEAD
[0.37.2]: https://github.com/ash-rs/ash/releases/tag/0.37.2
[0.37.1]: https://github.com/ash-rs/ash/releases/tag/0.37.1
[0.37.0]: https://github.com/ash-rs/ash/releases/tag/0.37.0
[0.36.0]: https://github.com/ash-rs/ash/releases/tag/0.36.0
[0.35.2]: https://github.com/ash-rs/ash/releases/tag/0.35.2
[0.35.1]: https://github.com/ash-rs/ash/releases/tag/0.35.1
[0.35.0]: https://github.com/ash-rs/ash/releases/tag/0.35.0
[0.34.0]: https://github.com/ash-rs/ash/releases/tag/0.34.0
[0.33.3]: https://github.com/ash-rs/ash/releases/tag/0.33.3
[0.33.2]: https://github.com/ash-rs/ash/releases/tag/0.33.2
[0.33.1]: https://github.com/ash-rs/ash/releases/tag/0.33.1
[0.33.0]: https://github.com/ash-rs/ash/releases/tag/0.33.0
[0.32.1]: https://github.com/ash-rs/ash/releases/tag/0.32.1
[0.32.0]: https://github.com/ash-rs/ash/releases/tag/0.32.0
[0.31.0]: https://github.com/ash-rs/ash/releases/tag/0.31.0
[0.30.0]: https://github.com/ash-rs/ash/releases/tag/0.30.0