# vks Changelog
## Version 0.19.1, released on 01.07.2017
* Vulkan 1.0.53
* Add extension `VK_EXT_sampler_filter_minmax` (revision 1)
* Add extension `VK_AMD_gpu_shader_int16` (revision 1)
* Add extension `VK_EXT_blend_operation_advanced` (revision 2)
* Add extension `VK_NV_fragment_coverage_to_color` (revision 1)
* Add extension `VK_NV_framebuffer_mixed_samples` (revision 1)
* Add extension `VK_NV_fill_rectangle` (revision 1)
## Version 0.19.0, released on 25.06.2017
* Non-dispatchable Vulkan objects, bitflags and enumerations are no longer newtypes. See issue
#111.
## Version 0.18.0, released on 16.06.2017
* `InstanceProcAddrLoader` and `DeviceProcAddrLoader` can no longer be created outside of vks. This
ensures they are used in a forward-compatible way. All extension sub-structs have been changed as
well.
* Fixed a rather serious bug on 32-bit targets: non-dispatchable Vulkan objects are now represented
with a `u64` newtype. Before this change, vks used pointers as a representation, which is
incorrect on 32-bit platforms. This bug basically made vks completely unusable on such platforms.
Default (as in uninitialized or NULL) non-dispatchable objects must now be created via the
`Default` trait, or the `null()` function of that type, instead of `std::ptr::null_mut()`.
## Version 0.17.0, released on 05.06.2017
* Vulkan 1.0.51
* Support revision 6 of `VK_KHR_win32_surface`.
* Values of `VkIndirectCommandsTokenTypeNVX` and `VkObjectEntryTypeNVX` from extension
`VK_NVX_device_generated_commands` now include the word `TYPE` in their names.
## Version 0.16.1, released on 31.05.2017
* New Cargo feature `no_function_prototypes`: Enabling this feature, will cause all function
definitions to be omitted. Linking against Vulkan is not required in this case. This feature is
especially useful, if you load Vulkan dynamically at runtime and don't need the function
definitions anyway.
* `VULKAN_LIBRARY_NAME` was added, which contains either `libvulkan.so.1` or `vulkan-1.dll`,
depending on the target platform.
## Version 0.16.0, released on 28.05.2017
* Define `VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT` only if `VK_KHR_surface` is enabled.
* Define `VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT` only if `VK_KHR_swapchain` is enabled.
* Using `vks` on Windows should now be easier, if the environment variable `VULKAN_SDK` points to
the root directory of the LunarG Vulkan SDK.
## Version 0.15.0, released on 21.05.2017
* Vulkan 1.0.50
* Reverted b4ff4af. The symbol `VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT` is now
available starting with revision 2 of `VK_EXT_debug_report`.
* All `*_EXTENSION_SPEC_VERSION` have been renamed to `*_SPEC_VERSION`.
* Add `VK_VALIDATION_CHECK_SHADERS_EXT` to `VkValidationCheckEXT`.
* Support revision 8 of `VK_EXT_debug_report`. Revision 7 is not explicitly supported, because
there is no official `vulkan.h` with just that revision.
* Add extension `VK_AMD_texture_gather_bias_lod` (revision 1).
## Version 0.14.1, released on 21.05.2017
* Add missing `VK_EXT_DEBUG_REPORT_EXTENSION_SPEC_VERSION` for revision 6 of `VK_EXT_debug_report`.
## Version 0.14.0, released on 12.05.2017
* Vulkan 1.0.49
* Add extension `VK_KHR_get_surface_capabilities2` (revision 1)
* Add extension `VK_KHR_shared_presentable_image` (revision 1)
## Version 0.13.1, released on 07.05.2017
* Vulkan reference links for bitflags now point to the `*FlagBits` enum instead of the `*Flags`
typedef.
## Version 0.13.0, released on 07.05.2017
* Renamed project from `vk-sys` to `vks`.
* Vulkan 1.0.48
* The `new` function of `InstanceProcAddrLoader` has been made parameter-less, which initialized
the field `vkGetInstanceProcAddr` with a null pointer. The previous behaviour was moved to the
new function `from_get_instance_proc_addr`. `Default` has been implemented as well.
* `DeviceProcAddrLoader` was changed also accordingly.
* Link against `vulkan-1` on Windows.
* Fixed two `Default` implementations, which assigned incorrect `sType` values
(`VkImageMemoryBarrier` and `VkRenderPassBeginInfo`).
* Add missing type `VkInstanceCreateFlagBits`.
* All symbols are now documented with links to the official Vulkan reference.
## Version 0.12.0, released on 08.04.2017
* Vulkan 1.0.47
* Define `VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT` in `VK_EXT_debug_report`
revision 1 instead of 2. The corresponding struct `VkDebugReportCallbackCreateInfoEXT` existed
already in revision 1.
* Implement `Default` trait for all structs and bitflags.
## Version 0.11.0, released on 02.04.2017
* Vulkan 1.0.46
* Stable Rust can now build vks!
* Reimplemented `untagged_unions` and `struct_field_attributes` with stable Rust. This is enabled
by default. The old behaviour is still available by selecting the Cargo feature `unstable_rust`.
* Add `VK_KHR_swapchain` functions to `InstanceProcAddrLoader` and `DeviceProcAddrLoader`
* Add `NV_external_memory_win32` functions to `DeviceProcAddrLoader`
* Add extension `VK_KHR_incremental_present` (revision 1)
* Support revision 6 of `VK_EXT_debug_report`
* Add version related functions and constants: `VK_API_VERSION_1_0`, `VK_HEADER_VERSION`,
`vk_version_major`, `vk_version_minor`, `vk_version_patch`, `vk_make_version`
* Implement `Debug` for `VkClearAttachment`
* `VK_KHR_descriptor_update_template`, `VK_KHX_external_memory_win32` and `VK_KHR_display` now use
the correct (libc) `c_void` type
## Version 0.10.0, released on 02.04.2017
* Vulkan 1.0.41, 1.0.42, 1.0.43, 1.0.44, 1.0.45
* Fix building various features:
`ext_debug_marker_3`, `ext_acquire_xlib_display`, `ext_acquire_xlib_display_1`,
`khx_external_memory_win32`, `khx_external_memory_win32_1`, `khx_external_semaphore_win32`,
`khx_external_semaphore_win32_1`, `nv_external_memory_win32`, `nv_external_memory_win32_1`,
`nv_win32_keyed_mutex`, `nv_win32_keyed_mutex_1`
* The parameters `x`, `y`, and `z` of `vkCmdDispatch` have been renamed to `groupCountX`,
`groupCountY`, and `groupCountZ`.
* Add extension `VK_KHR_push_descriptor` (revision 1)
* Add extension `VK_KHR_descriptor_update_template` (revision 1)
* Add extension `VK_KHX_multiview` (revision 1)
* Add extension `VK_KHX_device_group` (revision 1)
* Add extension `VK_KHX_device_group_creation` (revision 1)
* Add extension `VK_KHX_external_memory_capabilities` (revision 1)
* Add extension `VK_KHX_external_memory` (revision 1)
* Add extension `VK_KHX_external_memory_win32` (revision 1)
* Add extension `VK_KHX_external_memory_fd` (revision 1)
* Add extension `VK_KHX_win32_keyed_mutex` (revision 1)
* Add extension `VK_KHX_external_semaphore_capabilities` (revision 1)
* Add extension `VK_KHX_external_semaphore` (revision 1)
* Add extension `VK_KHX_external_semaphore_win32` (revision 1)
* Add extension `VK_KHX_external_semaphore_fd` (revision 1)
* Add extension `VK_NV_clip_space_w_scaling` (revision 1)
* Add extension `VK_NV_sample_mask_override_coverage` (revision 1)
* Add extension `VK_NV_geometry_shader_passthrough` (revision 1)
* Add extension `VK_NV_viewport_array2` (revision 1)
* Add extension `VK_NVX_multiview_per_view_attributes` (revision 1)
* Add extension `VK_NV_viewport_swizzle` (revision 1)
* Add extension `VK_EXT_discard_rectangles` (revision 1)
* Add extension `VK_MVK_ios_surface` (revision 2)
* Add extension `VK_MVK_macos_surface` (revision 2)
* Support revision 6 of `VK_KHR_wayland_surface`
* Add extension `VK_GOOGLE_display_timing` (revision 1)
* Add extension `VK_EXT_hdr_metadata` (revision 1)
* Add extension `VK_EXT_swapchain_colorspace` (revision 2)
## Version 0.9.0, released on 01.04.2017
* Vulkan 1.0.36, 1.0.37, 1.0.38, 1.0.39, 1.0.40
* Support revision 4 of `VK_EXT_debug_report`
* Add extension `VK_KHR_get_physical_device_properties2` (revision 1)
* Add extension `VK_KHR_shader_draw_parameters` (revision 1)
* Add extension `VK_KHR_maintenance1` (revision 1)
* Add extension `VK_NN_vi_surface` (revision 1)
* Add extension `VK_EXT_shader_subgroup_ballot` (revision 1)
* Add extension `VK_EXT_shader_subgroup_vote` (revision 1)
* Add extension `VK_EXT_direct_mode_display` (revision 1)
* Add extension `VK_EXT_acquire_xlib_display` (revision 1)
* Add extension `VK_EXT_display_surface_counter` (revision 1)
* Add extension `VK_EXT_display_control` (revision 1)
* Support revision 4 of `VK_EXT_debug_marker`
* Support revision 5 of `VK_EXT_debug_report`
## Version 0.8.2, released on 30.03.2017
* Add missing field `indexType` to `VkObjectTableIndexBufferEntryNVX`
## Version 0.8.1, released on 29.03.2017
* Add functions from `NVX_device_generated_commands` to InstanceProcAddrLoader
* Add functions from `NVX_device_generated_commands` to DeviceProcAddrLoader
## Version 0.8.0, released on 28.03.2017
* Vulkan 1.0.31, 1.0.32, 1.0.33, 1.0.34, 1.0.35
* New extension `VK_AMD_negative_viewport_height` (revision 1)
* New extension `VK_AMD_shader_ballot` (revision 1)
* New extension `VK_NVX_device_generated_commands` (revision 1)
## Version 0.7.0, released on 27.03.2017
* Vulkan 1.0.26, 1.0.27, 1.0.28, 1.0.29, 1.0.30
* New extension `VK_EXT_validation_flags` (revision 1)
* New extension `VK_AMD_gpu_shader_half_float` (revision 1)
## Version 0.6.1, released on 27.03.2017
* Revert `VK_EXT_debug_report` back to revision 3. It seems this was an accident in the Vulkan
1.0.25 specification, which was corrected in 1.0.26.
* Fix version and name constants for `VK_AMD_draw_indirect_count`.
## Version 0.6.0, released on 26.03.2017
* Vulkan 1.0.21, 1.0.22, 1.0.23, 1.0.24, 1.0.25
* All enums have been converted to newtype structs and their values are now global constants.
Unknown values can now be handled properly (without causing undefined behaviour). This change
also brings back some backwards compatibility, because we don't have to remove old values, when
an enum value gets renamed.
* New extension `VK_IMG_format_pvrtc` (revision 1)
* Support revision 4 of `VK_EXT_debug_report`
* New extension `VK_AMD_draw_indirect_count` (revision 1)
* New extension `VK_NV_external_memory_capabilities` (revision 1)
* New extension `VK_NV_external_memory` (revision 1)
* New extension `VK_NV_external_memory_win32` (revision 1)
* New extension `VK_NV_win32_keyed_mutex` (revision 1)
## Version 0.5.0, released on 26.03.2017
* Vulkan 1.0.16, 1.0.17, 1.0.18, 1.0.19, 1.0.20
* New extension `VK_AMD_shader_trinary_minmax` (revision 1)
* New extension `VK_AMD_shader_explicit_vertex_parameter` (revision 1)
* New extension `VK_AMD_gcn_shader` (revision 1)
* All extensions now depend on the core 1.0.3 specification, instead of something higher.
* Support revision 3 of `VK_EXT_debug_report`
* Vulkan 1.0.19: Changed type of parameter `pData` from `*const u32` to `*const c_void` in function
`vkCmdUpdateBuffer`.
* New extension `VK_NV_dedicated_allocation` (revision 1)
## Version 0.4.0, released on 25.03.2017
* Vulkan 1.0.12, 1.0.13, 1.0.14, 1.0.15
* `VK_AMD_rasterization_order` revision 1
* `VK_KHR_surface`: Rename `VK_COLORSPACE_SRGB_NONLINEAR_KHR` to `VK_COLOR_SPACE_SRGB_NONLINEAR_KHR`
* `VK_EXT_debug_marker` revision 3
## Version 0.3.0, released on 25.03.2017
* Vulkan 1.0.6, 1.0.7, 1.0.8, 1.0.9, 1.0.10, 1.0.11
* `VK_IMG_filter_cubic` revision 1
* `instance_proc_addr_loader`: Implement Default for generated structs
* `device_proc_addr_loader`: Implement Default for generated structs
* Add support for [clippy](https://github.com/Manishearth/rust-clippy).
* `VK_KHR_swapchain` revision 68
## Version 0.2.0, released on 25.03.2017
* Vulkan 1.0.5
* Add `*_SPEC_VERSION` constant to all extensions.
* `VK_NV_glsl_shader` revision 1
* Reduce required core version of `VK_EXT_debug_report` revision 2 from 1.0.4 to 1.0.3.
## Version 0.1.0, released on 25.03.2017
* Initial release
* Vulkan 1.0.3 and 1.0.4
* `InstanceProcAddrLoader` and `DeviceProcAddrLoader`
* `VK_KHR_android_surface` revision 6
* `VK_KHR_display_swapchain` revision 9
* `VK_KHR_display` revision 21
* `VK_KHR_mir_surface` revision 4
* `VK_KHR_sampler_mirror_clamp_to_edge` revision 1
* `VK_KHR_surface` revision 25
* `VK_KHR_swapchain` revision 67
* `VK_KHR_wayland_surface` revision 5
* `VK_KHR_win32_surface` revision 5
* `VK_KHR_xcb_surface` revision 6
* `VK_KHR_xlib_surface` revision 6
* `VK_EXT_debug_report` revisions 1 and 2