Bump API version to v1.4.351 — first Vulkan 1.4 release, covering spec versions 1.4.303 through 1.4.351.
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).
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).
VK_KHR_copy_memory_indirectVK_KHR_depth_clamp_zero_oneVK_KHR_device_address_commandsVK_KHR_device_fault(promoted fromVK_EXT_device_fault)VK_KHR_internally_synchronized_queuesVK_KHR_maintenance8VK_KHR_maintenance9VK_KHR_maintenance10VK_KHR_maintenance11VK_KHR_opacity_micromap(promoted fromVK_EXT_opacity_micromap)VK_KHR_present_id2VK_KHR_present_mode_fifo_latest_readyVK_KHR_present_wait2VK_KHR_robustness2VK_KHR_shader_abortVK_KHR_shader_bfloat16VK_KHR_shader_constant_dataVK_KHR_shader_fmaVK_KHR_shader_untyped_pointersVK_KHR_surface_maintenance1VK_KHR_swapchain_maintenance1VK_KHR_unified_image_layouts
VK_EXT_custom_resolveVK_EXT_descriptor_heapVK_EXT_external_memory_metalVK_EXT_fragment_density_map_offsetVK_EXT_memory_decompressionVK_EXT_present_timingVK_EXT_primitive_restart_indexVK_EXT_ray_tracing_invocation_reorderVK_EXT_shader_64bit_indexingVK_EXT_shader_float8VK_EXT_shader_long_vectorVK_EXT_shader_split_barrierVK_EXT_shader_subgroup_partitionedVK_EXT_shader_uniform_buffer_unsized_arrayVK_EXT_texture_compression_astc_3dVK_EXT_zero_initialize_device_memory
- AMD:
gpa_interface - ARM:
tensors,data_graph,format_pack,pipeline_opacity_micromap,data_graph_instruction_set_tosa,data_graph_neural_accelerator_statistics,data_graph_optical_flow,shader_instrumentation - 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,elapsed_timer_query,image_processing3,queue_perf_hint,shader_multiple_wait_queues - SEC:
pipeline_cache_incremental_mode,throttle_hint - VALVE:
fragment_density_map_layered,shader_mixed_float_dot_product
- ~50 new format enumerants: ARM 14/12/10-bit packed formats, 3D ASTC,
promoted
FORMAT_A8_UNORMandFORMAT_A1B5G5R5_UNORM_PACK16.
- Bump API version to v1.3.302
- Last in the 1.3 series.
- Bump API version to v1.3.278
- 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
- Bump API version to v1.3.273
- Bump API version to v1.3.271
- New flag darwin-lib-dirs that auto-adds LunarG dylibs. Requires Cabal >=3.10.3.
- Fix for GHC 9.8.2
- Bump API version to v1.3.269
- 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
- Bump API version to v1.3.246
- VulkanSC is not included
- Bump API version to v1.3.240
- Bump API version to v1.3.239
- Bump API version to v1.3.238
- Bump API version to v1.3.237
- Bump API version to v1.3.236
- Bump API version to v1.3.235
- Bump API version to v1.3.234
- Bump API version to v1.3.233
- Bump API version to v1.3.232
- Bump API version to v1.3.231
- Bump API version to v1.3.230
- Bump API version to v1.3.229
- Bump API version to v1.3.228
- Bump API version to v1.3.227
- Bump API version to v1.3.226
- Bump API version to v1.3.217
- Bump API version to v1.3.216
- Bump API version to v1.3.214
- Bump API version to v1.3.213
- Bump API version to v1.3.212
- Bump API version to v1.3.211
- 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
- Zero instance for ()
- Bump API version to v1.3.205
- Bump API version to v1.3.204
- Bump API version to v1.2.203
- Bump API version to v1.2.202
- Bump API version to v1.2.201
- Bump API version to v1.2.200
- Support ghc-9.3.20211111
- No more warnings under 9.2
- Bump API version to v1.2.199
- Bump API version to v1.2.198
- Bump API version to v1.2.197
- Bump API version to v1.2.196
- Bump API version to v1.2.189
- Bump API version to v1.2.188
- Bump API version to v1.2.188
- Bump API version to v1.2.187
- Documentation fixes
- Bump API version to v1.2.186
- Bump API version to v1.2.185
- Bump API version to v1.2.184
- Bump API version to v1.2.183
- Tweak cabal file to please
cabal check
- Use allocaBytes over allocaBytesAligned where possible
- Bump API version to v1.2.182
- Bump API version to v1.2.181
- Bump API version to v1.2.180
- Bump API version to v1.2.179
- Bump API version to v1.2.174
- Fix expipiplus1/vulkan#266
- Bump API version to v1.2.170
- Bump API version to v1.2.169
- Add
COMPLETEpragma toMAKE_VERSIONpattern expipiplus1/vulkan#256
- Make zero instance for
TransformMatrixKHRreturn identity matrix. See expipiplus1/vulkan#240 - Remove explicit 'count' field in AccelerationStructureBuildGeometryInfoKHR. See expipiplus1/vulkan#239
- Do not bother poking empty vectors for zero pokes
- Use
0for spec version requirements for SPIRV Requirements, See expipiplus1/vulkan#249
- Bump API version to v1.2.166
- Bump API version to v1.2.165
-
Bump API version to v1.2.164
-
Add cabal flag trace-calls to enable calling traceEventIO before and after every Vulkan command
- 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!
- 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
- Bump API version to v1.2.161
- Add
FiniteBitsinstance for Flags - Fix getting function pointers for functions which have aliases (those which have been promoted to core versions mostly)
- Bump API version to v1.2.160
- Bump API version to v1.2.159
- Include enum aliases defined in
<enums>sections, until now only those enum aliases infeaturesorextensionswere used.
- Raise bound on base
- Bump API version to v1.2.158
- Bump API version to v1.2.157
- Bump API version to v1.2.156
- Bump API version to v1.2.155
- Bump API version to v1.2.154
- Bump API version to 1.2.152
- NoDuplicateRecordFields for Vulkan.Dynamic
- Bump API version to 1.2.151
- Bump API version to 1.2.150
- Bump API version to 1.2.149
- Bump API version to 1.2.148
- Bump API version to 1.2.147
- Bump API version to 1.2.146
- 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
- Bump API version to 1.2.142
- The spec includes specific locations for types, so we use them
- BaseType -> FundamentalTypes
- Add
withSomeStructhelper
- 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:&
- 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!
- 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
- Commands are now in MonadIO
- Improved documentation
- More
bracketfunctions forcmds - Add
:&and::&pattern synonyms for extensible struct construction
- Rewrite, bindings are now much more idiomatic Haskell
- Add
sdl-triangleandinfoexamples
- 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
- Improved documentation (links, tables, math)
- Use cpphs for preprocessing
- Total rewrite of the generator
- All extensions are in here
- Split into core versions
- Documentation on most things
- Fix struct member names containing digits being erroneously truncated
- Add DebugReport, Display, DisplaySwapchain and Swapchain extension modules
- Add enumeration values for VkCompositeAlphaFlagsKHR and VkSurfaceTransformFlagsKHR
- Remove VK_NULL_HANDLE
- Remove Vulkan.Graphics.HeaderBoilerplate
- Add type signatures to version functions
- Add version information and generator to Graphics.Vulkan.Version
- Add Read and Show instances for bitmasks
- Add Read and Show instances for enumerations
- Split the interface up into many modules.
- Make wildcard matches lazy for
sizeofandalignment
- Initial release targeting Vulkan 1.0.3 Core