- Added Swapchain::surface() - which returns the saved surface
- Added Swapchain::with_old_swapchain() - same as previous Swapchain::new(), if an oldswapchain needs to be used
- Swapchain::new() now doesnt need to have the old_swapchain parameter anymore but requires the ColorSpace
- Fixed code generated by
shader!macro so that SSBO's are supported again (broken in 0.16.0). - Add function
execute_commands_from_vecto handle submission of multiple secondary command buffers. - Allow
DebugCallbackto be sent between threads - Decouple descriptor sets from pipeline
- Pipeline barriers are now correctly inserted when a resource is used more than two times.
- Update Winit to 0.20.0
- Update MacOS dependency cocoa to 0.20
- Fixed bug in examples causing OutOfHostMemory errors
- Replaced
VK_EXT_debug_reportVK_EXT_debug_markerwithVK_EXT_debug_utils. - Update MacOS dependencies metal to 0.17 and cocoa to 0.19
- Added dynamic stencil elements to
DynamicState - Fixed
ImageDimensions::mipmap_dimensionsandmax_mipmapsin cases where the original size is not a power of two. - Shader includes now work on Windows.
- Breaking Change Shader include directories passed to the
shader!macro are now relative to the cratesCargo.toml - Add support for
VK_KHR_16bit_storageandVK_KHR_storage_buffer_storage_classdevice extensions. - Update dependencies: lazy_static, half, syn, quote & proc-macro2
- Swapchain can now be recreated with dimensions of corresponding surface using
recreate(). - Added
raw_loaded_extensions()toInstanceto allow querying of all extensions, not just known ones. - Breaking Change
loaded_extensions()onInstanceno longer returns a reference. - Add support for GLSL macro defines to the
shader!macro. - Switch to Vulkan 1.1 and inherently SpirV 1.3 (shaderc default version for vulkan 1.1)
Yanked
- Update shaderc to 0.6. This again allows to use locally installed libraries which reduces the build-time significantly on Arch/Voidlinux (see google/shaderc-rs#58)
- Removed faulty debug_assert in
SwapchainAcquireFuture::drop. - Compressed texture formats can now be uploaded using
ImmutableImage::from_iter,ImmutableImage::from_buffer,AutoCommandBuilder::copy_buffer_to_image_dimensions, andAutoCommandBuilder::copy_buffer_to_image.
This is an emergency breaking breaking change. It fixes Undefined Behaviour that was preventing the compilation of Vulkano on the latest rust nightlies.
- Structs that have the
impl_vertexmacro applied to them, now also need to#[derive(Default)].
- 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
QueueFamily::explicitly_supports_tranfersonly returns true ifvk::QUEUE_TRANSFER_BITis set instead of also always returning true. Removedsupports_transfers.- Update to winit 0.19
- Add support for
#include "..."and#include <...>directives within source files. - Add a
unionmethod for the extensions types. - Make
BufferUsagederivePartialEqandEq - Fix a compiler error in struct code generated by the
shader!macro. - Improve inference of image layout transitions and in turn image memory barrier behaviour.
- Expose
CopyImageErrorandDrawIndexedIndirectError.
- Update to winit 0.18
- Export features and device extensions from the device module instead of the instance module
instance::Features->device::Featuresinstance::DeviceExtensions->device::DeviceExtensionsinstance::RawDeviceExtensions->device::RawDeviceExtensions
- Added
vulkano_shaders::shader!proc macro, use this instead ofvulkano_shader_deriver::VulkanoShaders. - The entire
vulkano_shader_derivecrate is deprecated. vulkano_shaders::{reflect, compile, Error}are no longer public.- Remove vulkano_shaders::build_glsl_shaders
- Removed mir support, as it is being removed from the vulkan spec.
- Split
PersistentDescriptorSetError::MissingUsageintoMissingImageUsageandMissingBufferUsageeach with a matching enum indicating the usage that was missing. - Fix instance_count when using draw_index with instance buffers
- Added a
reinterpretfunction toBufferSlice - Made
AttributeInfoderiveCopy,CloneandDebug - Use google/shaderc for shader compilation
- Reject generation of rust types for SPIR-V arrays that would have incorrect array stride.
- Removed the
Layoutprefix of the descriptions used for a render pass. - Implemented DescriptorSetCollection for
Vec<T>which allows easier use of construction them for usage when drawing.
- Use dynamically loaded
libvulkanlike on other platforms instead of linking to MoltenVK on macOS - Updated winit to version 0.17.
- Allow custom implementations of
RenderPassDescto specifyVK_SUBPASS_EXTERNALas a dependency source or destination - Added
vulkano_win::create_vk_surfacewhich allows creating a surface safely without taking ownership of the window. AutoCommandBufferBuilder::drawand friends no longer consume theDynamicStateargument, allowing reuse between calls.Instance::newandInstance::with_loadernow take in the layers as an iterator of borrowedstrs, not of references to borrowedstrs.
- Updated winit to version 0.11.
- Changed
ShaderInterfaceMismatchErrorto be more verbose. - Allow depth/stencil images to be used with
AutoCommandBufferBuilder::copy_image_to_buffer() - Allow
Surfaceto own the window it references. - Clear value validation for
AutoCommandBufferBuilder::begin_render_pass() - Fix occasional truncation of glslang_validator when glsl-to-spirv is rebuilt
- Fix linking against MoltenVK >= 0.19.0
- Fix panic on DeviceLost error after resizing swapchain on nvidia/amd hardware
- Added
AutoCommandBufferBuilder::copy_image - Added
VulkanObject::TYPEto look up theDebugReportObjectTypeEXTof an object - Added
Device::set_object_nameandDevice::set_object_name_raw - Added
GraphicsPipelineBuilder::with_auto_layoutto simplify use of dynamic buffers.
Yanked
- Allow
impl_vertex!to support generic structs. - Added
GraphicsPipelineBuilder::with_pipeline_layout. - Fixed creating a buffer view not checking the
min_texel_buffer_offset_alignmentlimit. - Added support for loading the
VK_EXT_debug_markerextension and adding debug markers toUnsafeCommandBufferBuilder - Changed
GraphicsPipelineBuilderto default to a buffer-less vertex input. - Deprecated
pipeline::input_assembly::InputAssembly.
- Fixed an HiDPI scaling issue on MacOS in vulkano-win.
- Fixed
le()andge()forDescriptorsCount, which also fixes a potential memory leak when allocating descriptor sets. - Fixed the
ordered_passes_renderpass!macro not working properly when usingresolve. - Added an optional
resolveentry inpassforsingle_pass_renderpass!, for resolving multisampled attachments into non-multisampled attachments. - Fixed the value of
rasterizationSamplesnot corresponding to the render pass. - Added
GraphicsPipelineBuilder::sample_shading_disabled,sample_shading_enabled,alpha_to_coverage_disabled,alpha_to_coverage_enabled,alpha_to_one_disabledandalpha_to_one_enabled. AddedGraphicsPipelineCreationError::SampleRateShadingFeatureNotEnabledandAlphaToOneFeatureNotEnabled. - Deprecated
pipeline::multisample::Multisample.
- Added
RuntimePipelineDesc, an implementation ofPipelineLayoutDescthat makes creating custom layouts easier. - Changed
CpuBufferPool::next()andchunk()to return aResultin case of an error when allocating or mapping memory. - Changed
CommandBufferExecError::AccessErrorto provide a hint of where the error occurs. - Added
vulkano::pipeline::vertex::BufferlessDefinitionandBufferlessVerticesto enable bufferless drawing. - Changed
ImageAccess::try_gpu_lockandunlock()to verify whether the image layout is correct, especially at the first usage of an image. - Changed
BufferAccess::conflict_*andImageAccess::conflict_*to forbid querying a specific range of the resource. - Fixed
layersargument validation inSwapchain::new_inner. - Added a 32-bit word constructor for
ShaderModule(ShaderModule::from_words). - Changed the various
is_superset_offunctions to return aResultinstead of abool.
- 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_imageandcopy_image_to_buffernot taking the mipmap level into account when checking for the correct image dimensions. - Added
ImageDimensions::mipmap_dimensions()andImageDimensions::num_mipmaps(). - Added an implementation of
DeviceOwnedforQueuesIterandQueue. - Fixed the standard command pool and descriptor pool being destroyed too often.
- Added
#[allow(non_snake_case)]to structs generated by vulkano-shaders.