mirror of
https://github.com/vulkano-rs/vulkano.git
synced 2024-11-22 14:56:42 +00:00
12 KiB
12 KiB
Unreleased
- 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 asSpecializationConstants {constant_12: 8, constant_13: 4, ...}
. - Allow applications to access the instance and device pointers
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
Version 0.17.0 (2020-02-09)
- Breaking Swapchain::recreate_with_dimension() is now Swapchain::recreate_with_dimensions()
- 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
- Breaking Update Winit to 0.21.0
- Breaking Add
host_cached
field to allCpuAccessibleBuffer
initializers to allow the user to perfer host cached memory. - Breaking Added
fullscreen_exclusive
field toSwapchain
initializers to allow the user to specify how fullscreen exclusivity should be handled.- Swapchain methods added:
Swapchain::acquire_fullscreen_exclusive()
,Swapchain::release_fullscreen_exclusive()
, andSwapchain::is_fullscreen_exclusive()
- Swapchain methods added:
- Add function
execute_commands_from_vec
to handle submission of multiple secondary command buffers. - Allow
DebugCallback
to be sent between threads - Pipeline barriers are now correctly inserted when a resource is used more than two times.
- Update MacOS dependency cocoa to 0.20
- 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
- Propogate new lines correctly in shader compile errors.
Queue
andQueueFamily
now implementPartialEq
andEq
- `Swapchain::acquire_next_image()
now returns
(image_id, suboptimal, aquire_future)``- suboptimal indicates that the swapchain is usable, but should be recreated
- Fixed Join Future implementation to not submit joined command buffers twice.
- The traits
GraphicsPipelineAbstract
andDescriptorSet
now requireDeviceOwned
. - Added
PartialEq
,Eq
andHash
implementations to all types involved in a draw call, including:Instance
,Device
,GraphicsPipeline
anddyn GraphicsPipelineAbstract
UnsafeBuffer
and all types implementingBufferAccess
UnsafeImage
,UnsafeImageView
and all types implementingImageAccess
orImageViewAccess
- All types implementing
DescriptorSet
Version 0.16.0 (2019-11-01)
- Fixed bug in examples causing OutOfHostMemory errors
- Replaced
VK_EXT_debug_report
VK_EXT_debug_marker
withVK_EXT_debug_utils
. - Update MacOS dependencies metal to 0.17 and cocoa to 0.19
- Added dynamic stencil elements to
DynamicState
- Fixed
ImageDimensions::mipmap_dimensions
andmax_mipmaps
in 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_storage
andVK_KHR_storage_buffer_storage_class
device 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()
toInstance
to allow querying of all extensions, not just known ones. - Breaking Change
loaded_extensions()
onInstance
no 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)
Version 0.15.0 (2019-10-18)
Yanked
Version 0.14.0 (2019-08-17)
- 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)
- 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
.
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.
- Structs that have the
impl_vertex
macro applied to them, now also need to#[derive(Default)]
.
Version 0.12.0 (2019-05-24)
- 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_tranfers
only returns true ifvk::QUEUE_TRANSFER_BIT
is 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
union
method for the extensions types. - Make
BufferUsage
derivePartialEq
andEq
- 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.
Version 0.11.1 (2018-11-16)
- Expose
CopyImageError
andDrawIndexedIndirectError
.
Version 0.11.0 (2018-11-08) (yanked because vk-sys 0.3.4 was accidentally breaking vulkano 0.10)
- Update to winit 0.18
- 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
- Added
vulkano_shaders::shader!
proc macro, use this instead ofvulkano_shader_deriver::VulkanoShaders
. - The entire
vulkano_shader_derive
crate 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::MissingUsage
intoMissingImageUsage
andMissingBufferUsage
each with a matching enum indicating the usage that was missing. - Fix instance_count when using draw_index with instance buffers
- Added a
reinterpret
function toBufferSlice
- Made
AttributeInfo
deriveCopy
,Clone
andDebug
- Use google/shaderc for shader compilation
- Reject generation of rust types for SPIR-V arrays that would have incorrect array stride.
- Removed the
Layout
prefix of the descriptions used for a render pass. - Implemented DescriptorSetCollection for
Vec<T>
which allows easier use of construction them for usage when drawing.
Version 0.10.0 (2018-08-10)
- Use dynamically loaded
libvulkan
like on other platforms instead of linking to MoltenVK on macOS - Updated winit to version 0.17.
- Allow custom implementations of
RenderPassDesc
to specifyVK_SUBPASS_EXTERNAL
as a dependency source or destination - Added
vulkano_win::create_vk_surface
which allows creating a surface safely without taking ownership of the window. AutoCommandBufferBuilder::draw
and friends no longer consume theDynamicState
argument, allowing reuse between calls.Instance::new
andInstance::with_loader
now take in the layers as an iterator of borrowedstr
s, not of references to borrowedstr
s.
Version 0.9.0 (2018-03-13)
- Updated winit to version 0.11.
Version 0.8.0 (2018-03-11)
- Changed
ShaderInterfaceMismatchError
to be more verbose. - Allow depth/stencil images to be used with
AutoCommandBufferBuilder::copy_image_to_buffer()
- Allow
Surface
to 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::TYPE
to look up theDebugReportObjectTypeEXT
of an object - Added
Device::set_object_name
andDevice::set_object_name_raw
- Added
GraphicsPipelineBuilder::with_auto_layout
to simplify use of dynamic buffers.
Version 0.7.3 (2018-02-10)
Yanked
Version 0.7.2 (2017-10-09)
- Allow
impl_vertex!
to support generic structs. - Added
GraphicsPipelineBuilder::with_pipeline_layout
. - Fixed creating a buffer view not checking the
min_texel_buffer_offset_alignment
limit. - Added support for loading the
VK_EXT_debug_marker
extension and adding debug markers toUnsafeCommandBufferBuilder
- Changed
GraphicsPipelineBuilder
to default to a buffer-less vertex input. - Deprecated
pipeline::input_assembly::InputAssembly
.
Version 0.7.1 (2017-09-28)
- 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
resolve
entry inpass
forsingle_pass_renderpass!
, for resolving multisampled attachments into non-multisampled attachments. - 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
andalpha_to_one_enabled
. AddedGraphicsPipelineCreationError::SampleRateShadingFeatureNotEnabled
andAlphaToOneFeatureNotEnabled
. - Deprecated
pipeline::multisample::Multisample
.
Version 0.7.0 (2017-09-21)
- Added
RuntimePipelineDesc
, an implementation ofPipelineLayoutDesc
that makes creating custom layouts easier. - Changed
CpuBufferPool::next()
andchunk()
to return aResult
in case of an error when allocating or mapping memory. - Changed
CommandBufferExecError::AccessError
to provide a hint of where the error occurs. - Added
vulkano::pipeline::vertex::BufferlessDefinition
andBufferlessVertices
to enable bufferless drawing. - Changed
ImageAccess::try_gpu_lock
andunlock()
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
layers
argument validation inSwapchain::new_inner
. - Added a 32-bit word constructor for
ShaderModule
(ShaderModule::from_words
). - Changed the various
is_superset_of
functions to return aResult
instead of abool
.
Version 0.6.2 (2017-09-06)
- 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
andcopy_image_to_buffer
not taking the mipmap level into account when checking for the correct image dimensions. - Added
ImageDimensions::mipmap_dimensions()
andImageDimensions::num_mipmaps()
. - Added an implementation of
DeviceOwned
forQueuesIter
andQueue
. - Fixed the standard command pool and descriptor pool being destroyed too often.
- Added
#[allow(non_snake_case)]
to structs generated by vulkano-shaders.