diff --git a/Changelog.md b/Changelog.md index e8eb7a1..eb7b608 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,37 +1,71 @@ -# 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 -* Fixed a build issue on ARM. -* *Breaking* Arrays are now passed by reference. -* Builders are now marked as `#[transparent]`. -* *Breaking* Renamed `.next(..)` to `push_next`. `push_next` is only available on structs that are passed directly. Addtionally `push_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. +### Changelog +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). + +## [Unreleased] - ReleaseDate + +## [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) +- Vulkan version macros are not const functions +- 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 +- -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](https://keepachangelog.com/en/1.0.0/) format +- Fixed a build issue on ARM. +- -Breaking- Arrays are now passed by reference. +- Builders are now marked as `#[transparent]`. +- -Breaking- Renamed `.next(..)` to `push_next`. `push_next` is only available on structs that are passed directly. Addtionally `push_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` +- 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 +### 0.26.0 -* Fix loader on MacOS. +- Fix loader on MacOS. -* Expose function pointers for easier interop with external libraries. +- Expose function pointers for easier interop with external libraries. -* Builder now uses bool instead of Bool32. -# 0.25.0 +- Builder now uses bool instead of Bool32. +### 0.25.0 -* Adds support for Vulkan 1.1 +- Adds support for Vulkan 1.1 -* Constants are not represented as an `enum` anymore. Constants and flags are both represented as associated constants. +- Constants are not represented as an `enum` anymore. Constants and flags are both represented as associated constants. ```Rust flags: vk::COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, @@ -40,35 +74,39 @@ flags: vk::CommandPoolCreateFlags::RESET_COMMAND_BUFFER_BIT, ``` -* Pretty printing for flags +- 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. +- 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` and `Device` are now version free. A custom loader can still be implemented. The various traits still remain `DeviceV1_0`. +- 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`. -* `vk.rs` is now generated from `vk.xml` +- `vk.rs` is now generated from `vk.xml` -* Ash now includes all docs inside the `vk.xml`, and are visible in rustdoc. +- Ash now includes all docs inside the `vk.xml`, and are visible in rustdoc. -* `Default` is now implemented for all structs +- `Default` is now implemented for all structs -* There is now a builder pattern +- There is now a builder pattern -* Handles are now `#[repr(transparent)]` +- Handles are now `#[repr(transparent)]` -* Various bug fixes +- Various bug fixes -# 0.18.0 -* Fixes arm build => uses libc everywhere. Remove `AlignByteSlice`. +### 0.18.0 +- Fixes arm build => uses libc everywhere. Remove `AlignByteSlice`. -# 0.17.0 +### 0.17.0 -* Refactor Align to use vk::DeviceSize. +- Refactor Align to use vk::DeviceSize. -# 0.16.0 +### 0.16.0 -* `map_memory` now returns a void ptr +- `map_memory` now returns a void ptr -* `ash::util::Align` is a helper struct that +- `ash::util::Align` is a helper struct that can write to aligned memory. + + +[Unreleased]: https://github.com/MaikKlein/ash/compare/0.30.0...HEAD +[0.30.0]: https://github.com/MaikKlein/ash/releases/tag/0.30.0