2020-02-09 09:51:32 +00:00
# Unreleased
2020-11-10 17:01:13 +00:00
- **Breaking** The `Kind` and `SubpassContents` types have been moved to the root of the `command_buffer` module.
- **Breaking** On `AutoCommandBufferBuilder` , the methods `begin_render_pass` and `next_subpass` now take `SubpassContents` instead of a boolean value.
- **Breaking** The `CommandBuffer` trait now has an additional required method, `kind` .
- Some safety checks have been added to `execute_commands` /`execute_commands_from_vec` on `AutoCommandBufferBuilder` , but not everything is checked yet so it's still unsafe to call.
- Added two vulkano-win features `raw-window-handle_` and `winit_` to be able to use vulkano without winit.
- Added function to create surface from `RawWindowHandle` .
2020-06-04 18:41:39 +00:00
- Added a `properties` method to `Format` .
2020-06-09 02:00:56 +00:00
- Added additional device feature flags for enabling SPIR-V related capabilities.
2020-10-08 07:31:32 +00:00
- Added method `copy_buffer_dimensions` that allows copying parts of buffers containing arrays.
2020-10-25 12:30:44 +00:00
- Fixed surface creation function on Windows(PR #1410 ).
- Travis CI Linux Nightly job temporary disabled until #1423 resolved.
2020-06-04 18:41:39 +00:00
2020-06-01 18:52:18 +00:00
# Version 0.19.0 (2020-06-01)
2020-06-01 14:41:42 +00:00
- **Breaking** AutoCommandBufferBuilder methods now take a mutable reference to `self` instead of taking ownership
2020-06-01 18:52:18 +00:00
- Update `smallvec` 1.2 -> 1.4
2020-06-01 05:47:34 +00:00
- Added additional `ImageUsage` constructor functions, `color_attachment` , `depth_stencil_attachment` , `transient_color_attachment` & `transient_depth_stencil_attachment` .
2020-05-16 00:14:25 +00:00
- Update dependency `half` 1.5 -> 1.6
- Update MacOS dependency `metal` 0.17 -> 0.18
- Added additional checks around image/device compatibility.
2020-05-13 00:57:40 +00:00
- Fixed all warnings as of Rust 1.43.1
2020-05-09 15:46:12 +00:00
- Provides new API to fetch additional information of the Physical Device from the `PhysicalDeviceProperties2KHR` structure whenever it possible. In the current implementation only `subgroupSize` property is fetching. This interface can be extended in the future to obtain more metadata depending on community needs.
- `dynamic-local-size` compute shader example added showing how to utilize `subgroupSize` to compute and set shader's local size in run time.
- Fixed Vulkano Shaders bug when compute shader local group layout values bound to specialization constants. Now it is possible to define the layout in form of `layout(local_size_x_id = 12, local_size_y_id = 13, local_size_z = 1) in;` and then set the values as `SpecializationConstants {constant_12: 8, constant_13: 4, ...}` .
2020-05-09 00:02:07 +00:00
- Allow applications to access the instance and device pointers
2020-05-12 23:05:09 +00:00
- Add a helper function '.boxed()' on the `GpuFuture` that is short for `Box::new(yourFuture) as Box<dyn GpuFuture>`
2020-05-09 00:02:07 +00:00
2020-03-12 01:48:15 +00:00
# Version 0.18.0 (2020-03-11)
- **Breaking** Update dependency `winit` 0.21 -> 0.22
- Update dependency `half` 1.4 -> 1.5
- Update dependency `smallvec` 0.6 -> 1.2
2020-02-09 09:51:32 +00:00
# Version 0.17.0 (2020-02-09)
2019-05-25 09:29:08 +00:00
2020-01-31 22:37:06 +00:00
- **Breaking** Swapchain::recreate_with_dimension() is now Swapchain::recreate_with_dimensions()
2020-01-27 01:25:48 +00:00
- **Breaking** Sync::SharingMode::Exclusive(queue_family: u32) is now Sync::SharingMode::Exclusive.
- **Breaking** Added Swapchain::with_old_swapchain() - same as previous Swapchain::new(), if an oldswapchain needs to be used
- **Breaking** Swapchain::new() now doesnt need to have the old_swapchain parameter anymore but requires the ColorSpace
- **Breaking** Decouple descriptor sets from pipeline
2020-02-06 05:31:02 +00:00
- **Breaking** Update Winit to 0.21.0
2020-01-27 01:25:48 +00:00
- **Breaking** Add `host_cached` field to all `CpuAccessibleBuffer` initializers to allow the user to perfer host cached memory.
2020-02-05 00:57:16 +00:00
- **Breaking** Added `fullscreen_exclusive` field to `Swapchain` initializers to allow the user to specify how fullscreen exclusivity should be handled.
+ Swapchain methods added: `Swapchain::acquire_fullscreen_exclusive()` , `Swapchain::release_fullscreen_exclusive()` , and `Swapchain::is_fullscreen_exclusive()`
2019-11-26 07:10:43 +00:00
- Add function `execute_commands_from_vec` to handle submission of multiple secondary command buffers.
2019-11-21 07:13:09 +00:00
- Allow `DebugCallback` to be sent between threads
2020-01-21 06:19:15 +00:00
- Pipeline barriers are now correctly inserted when a resource is used more than two times.
2020-01-23 07:37:12 +00:00
- Update MacOS dependency cocoa to 0.20
2020-01-27 01:25:48 +00:00
- Fixed code generated by `shader!` macro so that SSBO's are supported again (broken in 0.16.0).
- Added Swapchain::surface() - which returns the saved surface
2020-01-26 12:35:49 +00:00
- Propogate new lines correctly in shader compile errors.
2020-01-26 11:20:34 +00:00
- `Queue` and `QueueFamily` now implement `PartialEq` and `Eq`
2020-01-29 07:44:28 +00:00
- `Swapchain::acquire_next_image()`` now returns ``(image_id, suboptimal, aquire_future)` `
+ *suboptimal indicates that the swapchain is usable, but should be recreated*
2020-01-29 05:42:11 +00:00
- Fixed Join Future implementation to not submit joined command buffers twice.
2020-02-01 21:33:17 +00:00
- The traits `GraphicsPipelineAbstract` and `DescriptorSet` now require `DeviceOwned` .
- Added `PartialEq` , `Eq` and `Hash` implementations to all types involved in a draw call, including:
- `Instance` , `Device` , `GraphicsPipeline` and `dyn GraphicsPipelineAbstract`
- `UnsafeBuffer` and all types implementing `BufferAccess`
- `UnsafeImage` , `UnsafeImageView` and all types implementing `ImageAccess` or `ImageViewAccess`
- All types implementing `DescriptorSet`
2019-11-05 10:03:46 +00:00
2019-11-01 15:12:17 +00:00
# Version 0.16.0 (2019-11-01)
2019-10-20 21:27:33 +00:00
- Fixed bug in examples causing OutOfHostMemory errors
2019-10-20 20:26:07 +00:00
- Replaced `VK_EXT_debug_report` `VK_EXT_debug_marker` with `VK_EXT_debug_utils` .
2019-10-20 03:04:47 +00:00
- Update MacOS dependencies metal to 0.17 and cocoa to 0.19
2019-10-18 15:23:05 +00:00
- Added dynamic stencil elements to `DynamicState`
2019-10-20 04:01:25 +00:00
- Fixed `ImageDimensions::mipmap_dimensions` and `max_mipmaps` in cases where the original size is not a power of two.
2019-10-23 08:04:49 +00:00
- Shader includes now work on Windows.
- **Breaking Change** Shader include directories passed to the `shader!` macro are now relative to the crates `Cargo.toml`
2019-10-24 08:20:36 +00:00
- Add support for `VK_KHR_16bit_storage` and `VK_KHR_storage_buffer_storage_class` device extensions.
2019-10-24 11:09:08 +00:00
- Update dependencies: lazy_static, half, syn, quote & proc-macro2
2019-10-25 06:20:44 +00:00
- Swapchain can now be recreated with dimensions of corresponding surface using `recreate()` .
2019-10-27 22:47:10 +00:00
- Added `raw_loaded_extensions()` to `Instance` to allow querying of all extensions, not just known ones.
- **Breaking Change** `loaded_extensions()` on `Instance` no longer returns a reference.
2019-10-27 06:05:45 +00:00
- Add support for GLSL macro defines to the `shader!` macro.
2019-10-27 22:27:08 +00:00
- Switch to Vulkan 1.1 and inherently SpirV 1.3 (shaderc default version for vulkan 1.1)
2019-10-18 15:23:05 +00:00
2019-11-01 15:12:17 +00:00
# Version 0.15.0 (2019-10-18)
*Yanked*
2019-08-17 23:29:40 +00:00
# Version 0.14.0 (2019-08-17)
2019-08-12 09:54:15 +00:00
- Update shaderc to 0.6. This again allows to use locally installed libraries which reduces the build-time significantly on Arch/Voidlinux (see https://github.com/google/shaderc-rs/issues/58)
2019-08-03 15:41:28 +00:00
- Removed faulty debug_assert in `SwapchainAcquireFuture::drop` .
2019-08-17 18:07:44 +00:00
- Compressed texture formats can now be uploaded using `ImmutableImage::from_iter` , `ImmutableImage::from_buffer` , `AutoCommandBuilder::copy_buffer_to_image_dimensions` ,
and `AutoCommandBuilder::copy_buffer_to_image` .
2019-05-25 09:29:08 +00:00
2019-07-02 21:13:03 +00:00
# Version 0.13.0 (2019-07-02)
This is an emergency breaking breaking change. It fixes Undefined Behaviour that was preventing the compilation of Vulkano on the latest rust nightlies.
2019-07-02 23:11:05 +00:00
- Structs that have the `impl_vertex` macro applied to them, now also need to `#[derive(Default)]` .
2019-07-02 21:13:03 +00:00
2019-05-25 09:29:08 +00:00
# Version 0.12.0 (2019-05-24)
2019-05-07 21:18:26 +00:00
- Update shaderc to 0.5. New shaderc has improved pre-built options for libshaderc that significantly reduce package build time and are appropriate for use in CI
2019-04-15 10:09:45 +00:00
- `QueueFamily::explicitly_supports_tranfers` only returns true if `vk::QUEUE_TRANSFER_BIT` is set instead of also always returning true. Removed `supports_transfers` .
2019-03-12 08:34:03 +00:00
- Update to winit 0.19
2018-11-30 02:09:13 +00:00
- Add support for `#include "..."` and `#include <...>` directives within source
files.
2018-11-30 03:14:43 +00:00
- Add a `union` method for the extensions types.
2019-02-06 11:42:13 +00:00
- Make `BufferUsage` derive `PartialEq` and `Eq`
2019-02-07 02:55:24 +00:00
- Fix a compiler error in struct code generated by the `shader!` macro.
2019-05-25 09:29:08 +00:00
- Improve inference of image layout transitions and in turn image memory barrier
behaviour.
2018-11-30 02:09:13 +00:00
2018-11-16 12:22:59 +00:00
# Version 0.11.1 (2018-11-16)
2018-11-14 11:01:06 +00:00
- Expose `CopyImageError` and `DrawIndexedIndirectError` .
2018-11-16 12:22:59 +00:00
# Version 0.11.0 (2018-11-08) (**yanked** because vk-sys 0.3.4 was accidentally breaking vulkano 0.10)
2018-08-26 21:10:36 +00:00
2018-11-08 01:12:20 +00:00
- Update to winit 0.18
2018-10-26 00:15:33 +00:00
- Export features and device extensions from the device module instead of the instance module
+ `instance::Features` -> `device::Features`
+ `instance::DeviceExtensions` -> `device::DeviceExtensions`
+ `instance::RawDeviceExtensions` -> `device::RawDeviceExtensions`
2018-10-27 23:10:29 +00:00
- Added `vulkano_shaders::shader!` proc macro, use this instead of `vulkano_shader_deriver::VulkanoShaders` .
2018-10-26 00:15:33 +00:00
- The entire `vulkano_shader_derive` crate is deprecated.
- `vulkano_shaders::{reflect, compile, Error}` are no longer public.
2018-09-29 05:08:17 +00:00
- Remove vulkano_shaders::build_glsl_shaders
2018-10-27 23:10:29 +00:00
- Removed mir support, as it is being removed from the vulkan spec.
2018-09-16 21:44:36 +00:00
- Split `PersistentDescriptorSetError::MissingUsage` into `MissingImageUsage` and `MissingBufferUsage`
2018-08-26 21:10:36 +00:00
each with a matching enum indicating the usage that was missing.
2018-09-01 14:57:03 +00:00
- Fix instance_count when using draw_index with instance buffers
2018-09-16 21:44:36 +00:00
- Added a `reinterpret` function to `BufferSlice`
2018-09-20 14:25:12 +00:00
- Made `AttributeInfo` derive `Copy` , `Clone` and `Debug`
2018-09-20 14:24:24 +00:00
- Use [google/shaderc ](https://github.com/google/shaderc-rs ) for shader compilation
2018-09-29 04:43:09 +00:00
- Reject generation of rust types for SPIR-V arrays that would have incorrect array stride.
2018-10-07 11:06:13 +00:00
- Removed the `Layout` prefix of the descriptions used for a render pass.
2018-10-28 07:47:20 +00:00
- Implemented DescriptorSetCollection for `Vec<T>` which allows easier use of construction them for usage when drawing.
2018-09-20 14:24:24 +00:00
2018-08-12 08:42:17 +00:00
# Version 0.10.0 (2018-08-10)
2018-03-11 19:18:08 +00:00
2018-04-19 07:48:33 +00:00
- Use dynamically loaded `libvulkan` like on other platforms instead of linking to MoltenVK on macOS
2018-08-10 12:50:38 +00:00
- Updated winit to version 0.17.
2018-06-05 10:21:13 +00:00
- Allow custom implementations of `RenderPassDesc` to specify `VK_SUBPASS_EXTERNAL` as a dependency source or destination
2018-07-28 13:14:37 +00:00
- Added `vulkano_win::create_vk_surface` which allows creating a surface safely without taking ownership of
the window.
2018-08-04 12:38:33 +00:00
- `AutoCommandBufferBuilder::draw` and friends no longer consume the `DynamicState` argument, allowing reuse between calls.
2018-08-11 06:48:03 +00:00
- `Instance::new` and `Instance::with_loader` now take in the layers as an iterator of borrowed `str` s, not of references to
borrowed `str` s.
2018-04-19 07:48:33 +00:00
2018-03-14 16:57:22 +00:00
# Version 0.9.0 (2018-03-13)
- Updated winit to version 0.11.
2018-03-13 11:34:30 +00:00
2018-03-11 19:18:08 +00:00
# Version 0.8.0 (2018-03-11)
2018-02-10 18:17:41 +00:00
2017-10-11 17:43:25 +00:00
- Changed `ShaderInterfaceMismatchError` to be more verbose.
2017-10-16 06:20:02 +00:00
- Allow depth/stencil images to be used with `AutoCommandBufferBuilder::copy_image_to_buffer()`
2018-02-13 13:29:36 +00:00
- Allow `Surface` to own the window it references.
2017-10-18 17:22:23 +00:00
- Clear value validation for `AutoCommandBufferBuilder::begin_render_pass()`
2017-10-24 05:51:50 +00:00
- Fix occasional truncation of glslang_validator when glsl-to-spirv is rebuilt
2018-11-01 03:45:30 +00:00
- Fix linking against MoltenVK >= 0.19.0
2018-01-09 07:47:19 +00:00
- Fix panic on DeviceLost error after resizing swapchain on nvidia/amd hardware
2017-11-29 21:10:43 +00:00
- Added `AutoCommandBufferBuilder::copy_image`
2017-12-13 08:50:08 +00:00
- Added `VulkanObject::TYPE` to look up the `DebugReportObjectTypeEXT` of an object
- Added `Device::set_object_name` and `Device::set_object_name_raw`
2017-12-14 09:26:02 +00:00
- Added `GraphicsPipelineBuilder::with_auto_layout` to simplify use of dynamic buffers.
2017-10-11 17:43:25 +00:00
2018-02-13 11:12:08 +00:00
# Version 0.7.3 (2018-02-10)
*Yanked*
2017-10-09 12:46:41 +00:00
# Version 0.7.2 (2017-10-09)
2017-10-07 09:18:11 +00:00
- Allow `impl_vertex!` to support generic structs.
2017-10-08 15:38:58 +00:00
- Added `GraphicsPipelineBuilder::with_pipeline_layout` .
2017-10-07 14:11:05 +00:00
- Fixed creating a buffer view not checking the `min_texel_buffer_offset_alignment` limit.
2017-10-08 15:38:51 +00:00
- Added support for loading the `VK_EXT_debug_marker` extension and adding debug markers to
`UnsafeCommandBufferBuilder`
2017-10-08 07:54:16 +00:00
- Changed `GraphicsPipelineBuilder` to default to a buffer-less vertex input.
2017-10-08 08:17:32 +00:00
- Deprecated `pipeline::input_assembly::InputAssembly` .
2017-10-07 09:18:11 +00:00
2017-09-28 12:05:20 +00:00
# Version 0.7.1 (2017-09-28)
2017-09-26 08:29:26 +00:00
- Fixed an HiDPI scaling issue on MacOS in vulkano-win.
2017-09-23 18:21:14 +00:00
- Fixed `le()` and `ge()` for `DescriptorsCount` , which also fixes a potential memory leak when
allocating descriptor sets.
2017-09-26 08:29:34 +00:00
- Fixed the `ordered_passes_renderpass!` macro not working properly when using `resolve` .
- Added an optional `resolve` entry in `pass` for `single_pass_renderpass!` , for resolving
multisampled attachments into non-multisampled attachments.
2017-09-28 11:23:53 +00:00
- Fixed the value of `rasterizationSamples` not corresponding to the render pass.
- Added `GraphicsPipelineBuilder::sample_shading_disabled` , `sample_shading_enabled` ,
`alpha_to_coverage_disabled` , `alpha_to_coverage_enabled` , `alpha_to_one_disabled` and
`alpha_to_one_enabled` . Added `GraphicsPipelineCreationError::SampleRateShadingFeatureNotEnabled`
and `AlphaToOneFeatureNotEnabled` .
- Deprecated `pipeline::multisample::Multisample` .
2017-09-23 18:21:14 +00:00
2017-09-21 11:27:10 +00:00
# Version 0.7.0 (2017-09-21)
2017-09-09 06:55:20 +00:00
2017-09-20 07:47:43 +00:00
- Added `RuntimePipelineDesc` , an implementation of `PipelineLayoutDesc` that makes creating custom
layouts easier.
2017-09-09 06:55:20 +00:00
- Changed `CpuBufferPool::next()` and `chunk()` to return a `Result` in case of an error when
allocating or mapping memory.
2017-09-14 14:29:11 +00:00
- Changed `CommandBufferExecError::AccessError` to provide a hint of where the error occurs.
2017-09-13 17:29:53 +00:00
- Added `vulkano::pipeline::vertex::BufferlessDefinition` and `BufferlessVertices` to enable
bufferless drawing.
2017-09-21 11:27:10 +00:00
- Changed `ImageAccess::try_gpu_lock` and `unlock()` to verify whether the image layout is correct,
especially at the first usage of an image.
- Changed `BufferAccess::conflict_*` and `ImageAccess::conflict_*` to forbid querying a specific
range of the resource.
- Fixed `layers` argument validation in `Swapchain::new_inner` .
- Added a 32-bit word constructor for `ShaderModule` (`ShaderModule::from_words`).
2017-09-21 08:35:59 +00:00
- Changed the various `is_superset_of` functions to return a `Result` instead of a `bool` .
2017-09-06 12:36:06 +00:00
2017-09-06 13:47:46 +00:00
# Version 0.6.2 (2017-09-06)
2017-09-06 12:36:06 +00:00
- Added checking compatibility between the descriptor sets and the pipeline object when adding a
draw or compute command.
- Fixed several bugs in the validation checks of `blit_image` .
- Fixed `blit_image` , `copy_buffer_to_image` and `copy_image_to_buffer` not taking the mipmap level
into account when checking for the correct image dimensions.
- Added `ImageDimensions::mipmap_dimensions()` and `ImageDimensions::num_mipmaps()` .
- Added an implementation of `DeviceOwned` for `QueuesIter` and `Queue` .
- Fixed the standard command pool and descriptor pool being destroyed too often.
- Added `#[allow(non_snake_case)]` to structs generated by vulkano-shaders.