Changelog for vulkan-3.27
Change Log
[3.27] - 2026-03-17
Bump API version to v1.4.343 — first Vulkan 1.4 release, covering spec versions 1.4.303 through 1.4.343.
Vulkan 1.4 Core
New Vulkan.Core14 module. The following 15 extensions are promoted to core:
VK_EXT_host_image_copyVK_EXT_pipeline_protected_accessVK_EXT_pipeline_robustnessVK_KHR_dynamic_rendering_local_readVK_KHR_global_priorityVK_KHR_index_type_uint8VK_KHR_line_rasterizationVK_KHR_maintenance5VK_KHR_maintenance6VK_KHR_map_memory2VK_KHR_push_descriptorVK_KHR_shader_expect_assumeVK_KHR_shader_float_controls2VK_KHR_shader_subgroup_rotateVK_KHR_vertex_attribute_divisor
Types like BindDescriptorSetsInfoKHR now have unprefixed core aliases
(BindDescriptorSetsInfo).
Breaking Changes
Vulkan.Core10.Pipelinesplit intoVulkan.Core10.ComputePipelineandVulkan.Core10.GraphicsPipeline. Code importingVulkan.Core10.Pipelinedirectly must update imports. Importing viaVulkan.Core10is unaffected.AccelerationStructureGeometryKHRis now extensible and takes a type-level list parameter (AccelerationStructureGeometryKHR '[]). Thegeometriesfield now expectsSomeStruct-wrapped values.ResourceDescriptorDataEXTunion constructors renamed to avoid ambiguity with handle types (e.g.Image→AnImage,TensorARM→ATensorARM).- Deprecated KHR/EXT-suffixed constants removed after core promotion:
LUID_SIZE_KHR,QUEUE_FAMILY_EXTERNAL_KHR,MAX_DEVICE_GROUP_SIZE_KHR,MAX_DRIVER_NAME_SIZE_KHR,MAX_DRIVER_INFO_SIZE_KHR,SHADER_UNUSED_NV,MAX_GLOBAL_PRIORITY_SIZE_EXT,DYNAMIC_STATE_LINE_STIPPLE_KHR(nowDYNAMIC_STATE_LINE_STIPPLE). - Some types moved between extension modules due to XML restructuring of
conditional
<require depends="...">blocks (e.g. types previously inVK_KHR_device_groupnow live inVK_KHR_swapchain).
New KHR Extensions
VK_KHR_copy_memory_indirectVK_KHR_depth_clamp_zero_oneVK_KHR_internally_synchronized_queuesVK_KHR_maintenance8VK_KHR_maintenance9VK_KHR_maintenance10VK_KHR_present_id2VK_KHR_present_mode_fifo_latest_readyVK_KHR_present_wait2VK_KHR_robustness2VK_KHR_shader_bfloat16VK_KHR_shader_fmaVK_KHR_shader_untyped_pointersVK_KHR_surface_maintenance1VK_KHR_swapchain_maintenance1VK_KHR_unified_image_layouts
New EXT Extensions
VK_EXT_custom_resolveVK_EXT_descriptor_heapVK_EXT_external_memory_metalVK_EXT_fragment_density_map_offsetVK_EXT_memory_decompressionVK_EXT_present_timingVK_EXT_ray_tracing_invocation_reorderVK_EXT_shader_64bit_indexingVK_EXT_shader_float8VK_EXT_shader_long_vectorVK_EXT_shader_subgroup_partitionedVK_EXT_shader_uniform_buffer_unsized_arrayVK_EXT_texture_compression_astc_3dVK_EXT_zero_initialize_device_memory
New Vendor Extensions
- ARM:
tensors,data_graph,format_pack,pipeline_opacity_micromap - AMDX:
dense_geometry_format - NV:
cooperative_vector,external_compute_queue,ray_tracing_linear_swept_spheres,present_metering,push_constant_bank,compute_occupancy_priority - QCOM:
tile_shading,tile_memory_heap,cooperative_matrix_conversion,data_graph_model - SEC:
pipeline_cache_incremental_mode - VALVE:
fragment_density_map_layered
Other
- ~50 new format enumerants: ARM 14/12/10-bit packed formats, 3D ASTC,
promoted
FORMAT_A8_UNORMandFORMAT_A1B5G5R5_UNORM_PACK16.
[3.26.6] - 2026-03-07
- Bump API version to v1.3.302
- Last in the 1.3 series.
[3.26.5] - 2026-03-07
- Bump API version to v1.3.278
[3.26.5] - 2026-03-05
- Bump API version to v1.3.274
- Bump API version to v1.3.275
- Bump API version to v1.3.276
- A minor breaking change that debugMessage text is now Maybe.
- Bump API version to v1.3.277
[3.26.4] - 2025-05-31
- Bump API version to v1.3.273
[3.26.3] - 2025-05-18
- Bump API version to v1.3.271
[3.26.2] - 2024-06-28
- New flag darwin-lib-dirs that auto-adds LunarG dylibs. Requires Cabal >=3.10.3.
- Fix for GHC 9.8.2
[3.26.1] - 2023-10-21
- Bump API version to v1.3.269
[3.26] - 2023-10-17
- Bump API version to v1.3.268
- A breaking change is that
VkBufferMemoryBarrierhas extensions, and as such must be wrapped withSomeStructwhen being passed in lists, for example incmdPipelineBarrier
- A breaking change is that
[3.25] - 2023-10-17
- Bump API version to v1.3.246
- VulkanSC is not included
[3.24.5] - 2023-02-03
- Bump API version to v1.3.240
[3.24.4] - 2023-01-20
- Bump API version to v1.3.239
[3.24.3] - 2022-12-28
- Bump API version to v1.3.238
[3.24.2] - 2022-12-27
- Bump API version to v1.3.237
[3.24.1] - 2022-12-27
- Bump API version to v1.3.236
[3.24] - 2022-12-27
- Bump API version to v1.3.235
[3.23.4] - 2022-12-27
- Bump API version to v1.3.234
[3.23.3] - 2022-12-27
- Bump API version to v1.3.233
[3.23.2] - 2022-12-27
- Bump API version to v1.3.232
[3.23.1] - 2022-12-26
- Bump API version to v1.3.231
[3.23] - 2022-10-02
- Bump API version to v1.3.230
[3.22.1] - 2022-09-25
- Bump API version to v1.3.229
[3.22] - 2022-09-24
- Bump API version to v1.3.228
[3.21.1] - 2022-09-12
- Bump API version to v1.3.227
[3.21] - 2022-09-05
- Bump API version to v1.3.226
[3.20] - 2022-09-05
- Bump API version to v1.3.217
[3.19] - 2022-09-05
- Bump API version to v1.3.216
[3.18.1] - 2022-09-05
- Bump API version to v1.3.214
[3.18] - 2022-09-05
- Bump API version to v1.3.213
[3.17.2] - 2022-04-21
- Bump API version to v1.3.212
[3.17.1] - 2022-04-07
- Bump API version to v1.3.211
[3.17] - 2022-03-31
- Bump API version to v1.3.210
- A significant breaking change is that
GraphicsPipelineCreateInfo.rasterizationStateis now optional (it's unused when VK_EXT_graphics_pipeline_library is enabled). Hence, this member is wrapped inMaybe
- A significant breaking change is that
[3.16.2] - 2022-02-07
- Zero instance for ()
[3.16.1] - 2022-02-05
- Bump API version to v1.3.205
[3.16] - 2022-02-05
- Bump API version to v1.3.204
[3.15] - 2022-01-14
- Bump API version to v1.2.203
[3.14.2] - 2021-12-07
- Bump API version to v1.2.202
[3.14.1] - 2021-12-01
- Bump API version to v1.2.201
[3.14] - 2021-11-25
- Bump API version to v1.2.200
[3.13.4] - 2021-11-17
- Support ghc-9.3.20211111
- No more warnings under 9.2
[3.13.3] - 2021-11-17
- Bump API version to v1.2.199
[3.13.2] - 2021-11-09
- Bump API version to v1.2.198
[3.13.1] - 2021-11-03
- Bump API version to v1.2.197
[3.13] - 2021-10-14
- Bump API version to v1.2.196
[3.12.2] - 2021-08-18
- Bump API version to v1.2.189
[3.12.1] - 2021-08-12
- Bump API version to v1.2.188
[3.12] - 2021-08-12
- Bump API version to v1.2.188
[3.11.5] - 2021-08-03
- Bump API version to v1.2.187
[3.11.4.1] - 2021-07-30
- Documentation fixes
[3.11.4] - 2021-07-27
- Bump API version to v1.2.186
[3.11.3] - 2021-07-21
- Bump API version to v1.2.185
[3.11.2] - 2021-07-07
- Bump API version to v1.2.184
[3.11.1] - 2021-06-28
- Bump API version to v1.2.183
[3.11.0.2] - 2021-06-26
- Tweak cabal file to please
cabal check
[3.11.0.1] - 2021-06-26
- Use allocaBytes over allocaBytesAligned where possible
[3.11] - 2021-06-21
- Bump API version to v1.2.182
[3.10.4] - 2021-06-14
- Bump API version to v1.2.181
[3.10.3] - 2021-06-07
- Bump API version to v1.2.180
[3.10.2] - 2021-06-05
- Bump API version to v1.2.179
[3.10.1] - 2021-03-31
- Bump API version to v1.2.174
- Fix https://github.com/expipiplus1/vulkan/issues/266
[3.10] - 2021-02-18
- Bump API version to v1.2.170
[3.9.1] - 2021-02-06
- Bump API version to v1.2.169
- Add
COMPLETEpragma toMAKE_VERSIONpattern https://github.com/expipiplus1/vulkan/issues/256
[3.10] - 2021-01-09
- Make zero instance for
TransformMatrixKHRreturn identity matrix. See https://github.com/expipiplus1/vulkan/issues/240 - Remove explicit 'count' field in AccelerationStructureBuildGeometryInfoKHR. See https://github.com/expipiplus1/vulkan/issues/239
- Do not bother poking empty vectors for zero pokes
- Use
0for spec version requirements for SPIRV Requirements, See https://github.com/expipiplus1/vulkan/issues/249
[3.8.3] - 2021-01-04
- Bump API version to v1.2.166
[3.8.2] - 2020-12-14
- Bump API version to v1.2.165
[3.8.1] - 2020-12-08
-
Bump API version to v1.2.164
-
Add cabal flag trace-calls to enable calling traceEventIO before and after every Vulkan command
[3.8] - 2020-11-30
- Bump API version to v1.2.163
- Add
Vulkan.Requirement, a module for specifying requirements forDevices andInstances - Expose SPIR-V Extensions and Capabilities in
Vulkan.SPIRVRequirements - Expose extension dependencies in
Vulkan.Extensions.Dependencies - Squash some warnings
Thanks to @sheaf for their help with this release!
[3.7] - 2020-11-24
- Bump API version to v1.2.162
- This is a breaking change to anyone using VK_KHR_ray_tracing (which no longer exists)
- Add bracketing functions for
withRayTracingPipelinesKHRandwithRayTracingPipelinesNV - Add all possible storable instances for Vulkan structs
- Remove tuples from the constructors of
ClearColorValue - Unpack top level tuple in
TransformMatrixKHR, thematrixrecord accessor has been split intomatrixRow0,matrixRow1, andmatrixRow2 - Add extension documentation to extension modules.
- Tweak ordering of documentation in Haddocks to make it more user-friendly
[3.6.15] - 2020-11-16
- Bump API version to v1.2.161
[3.6.14] - 2020-11-15
- Add
FiniteBitsinstance for Flags - Fix getting function pointers for functions which have aliases (those which have been promoted to core versions mostly)
[3.6.13] - 2020-11-09
- Bump API version to v1.2.160
[3.6.12] - 2020-11-03
- Bump API version to v1.2.159
- Include enum aliases defined in
<enums>sections, until now only those enum aliases infeaturesorextensionswere used.
[3.6.11.1] - 2020-11-01
- Raise bound on base
[3.6.11] - 2020-10-27
- Bump API version to v1.2.158
[3.6.10] - 2020-10-12
- Bump API version to v1.2.157
[3.6.9] - 2020-10-07
- Bump API version to v1.2.156
[3.6.8] - 2020-09-28
- Bump API version to v1.2.155
[3.6.7] - 2020-09-25
- Bump API version to v1.2.154
[3.6.6] - 2020-08-27
- Bump API version to 1.2.152
- NoDuplicateRecordFields for Vulkan.Dynamic
[3.6.5] - 2020-08-17
- Bump API version to 1.2.151
[3.6.4] - 2020-08-11
- Bump API version to 1.2.150
[3.6.3] - 2020-08-05
- Bump API version to 1.2.149
[3.6.2] - 2020-07-21
- Bump API version to 1.2.148
[3.6.1] - 2020-07-14
- Bump API version to 1.2.147
[3.6] - 2020-07-05
- Bump API version to 1.2.146
[3.5] - 2020-06-22
- Bump API version to 1.2.145
- Bump API version to 1.2.143
- Bump API version to 1.2.144
- Only documentation and version number changes
[3.4] - 2020-06-03
- Bump API version to 1.2.142
- The spec includes specific locations for types, so we use them
- BaseType -> FundamentalTypes
- Add
withSomeStructhelper
[3.3.1] - 2020-05-18
- Bump API version to 1.2.141
- Generate haddocks for command parameters, #92
- Eq instances for some simple structs, #94
- Generate safe FFI versions of blocking functions (Those with "wait" in the name or which can return "TIMEOUT"), #96
- Add cabal flag for enable deriving Generic for structs, #99
- Add
completepragmas for::&and:&
[3.3] - 2020-05-07
- Move package from
Graphics.Vulkanto justVulkan, #60 - Bump API version to 1.2.140
- Make the continuation the last argument to 'bracket' functions, discussion on #49
- Begin/End bracket pairs are now called 'useXXX' rather than 'withXXX', #66
- Begin/End bracket pairs where it's not necessary to 'End' on an exception have a simplified type, discussion on #49
- Clarify optional vector lengths by preserving the length member, #71
- Infer lengths of preserved length members when they are 0
- Throw an exception when trying to call a null function pointer, #42
- Implement HasObjectType class to automate getting VkObjectType, #54
- Add constraints to check that structs are correctly extended
- Simplify type of
withDescriptorSets, it no longer requires the user specifying theDescriptorPooltwice, #81 - Wrap with SomeStruct extensible structs in Vector arguments to commands, #82
Thanks to @dpwiz for helping with this release!
[3.2.0.0] - 2020-05-02
- Update API version 1.2.139
- Bracket functions now take as an argument a function to consume a pair of begin/end actions
- Change
Either Word32 vectovecwhere the non-empty length is constrained to be the length of another known vector - Move
Counterprefix onPerformanceCounterResultto be a suffix - Drop dependency on
vector-sized, it was only used internally
[3.1.0.0] - 2020-03-10
- Commands are now in MonadIO
- Improved documentation
- More
bracketfunctions forcmds - Add
:&and::&pattern synonyms for extensible struct construction
[3.0.0.0] - 2020-02-29
- Rewrite, bindings are now much more idiomatic Haskell
- Add
sdl-triangleandinfoexamples
[2.1.0.0] - 2018-04-22
- Expose dynamic loader from Graphics.Vulkan.Dymamic
- Turn on platform specific features by default
- Make all foreign imports unsafe
- Add option for enabling safe calls
[2.0.0.1] - 2018-04-21
- Improved documentation (links, tables, math)
- Use cpphs for preprocessing
[2.0.0.0] - 2018-04-20
- Total rewrite of the generator
- All extensions are in here
- Split into core versions
- Documentation on most things
[1.7.0.0] - 2016-04-13
- Fix struct member names containing digits being erroneously truncated
[1.6.0.0] - 2016-03-30
- Add DebugReport, Display, DisplaySwapchain and Swapchain extension modules
[1.5.1.0] - 2016-03-07
- Add enumeration values for VkCompositeAlphaFlagsKHR and VkSurfaceTransformFlagsKHR
[1.5.0.0] - 2016-03-01
- Remove VK_NULL_HANDLE
- Remove Vulkan.Graphics.HeaderBoilerplate
[1.3.2.0] - 2016-02-29
- Add type signatures to version functions
[1.3.1.0] - 2016-02-29
- Add version information and generator to Graphics.Vulkan.Version
[1.3.0.0] - 2016-02-29
- Add Read and Show instances for bitmasks
[1.2.0.0] - 2016-02-29
- Add Read and Show instances for enumerations
[1.0.0.0] - 2016-02-25
- Split the interface up into many modules.
[0.2.0.0] - 2016-02-22
- Make wildcard matches lazy for
sizeofandalignment
[0.1.0.0] - 2016-02-21
- Initial release targeting Vulkan 1.0.3 Core