Changelog for vulkan-utils-0.5.11.0
Change Log
[0.5.11.0] - 2026-06-13
A large additive release: helpers for dynamic rendering, dynamic pipeline state, specialization constants, synchronization, swapchain/frame management, and window abstraction. No existing API was removed.
Pipelines and dynamic rendering
Vulkan.Utils.DynamicRendering:createPipelineandcreatePipelineFromShadersfor render-pass-less pipelines, plusrenderingInfo,colorAttachmentRenderingInfo, anddynamicRenderingRequirements.Vulkan.Utils.DynamicState: aDynamicStaterecord withdefaultDynamicState,dynamicStateFor, andapplyDynamicStates, plus named state sets (allDynamicStates,minimalDynamicStates,noDynamicStates,preRasterizationStates,fragmentTestStates,fragmentOutputStates,depthOnlyDynamicStates,defaultDynamicStatesFor) covering the dynamic states available without vendor or experimental extensions.Vulkan.Utils.Pipeline.Specialization: theSpecializationandSpecializationConstclasses withwithSpecialization/allocateSpecializationfor packing specialization constants into 32-bit units.Vulkan.Utils.RenderPass:createRenderPass,createColorRenderPass, and a genericcreatePipeline/createPipelineFromShaders.Vulkan.Utils.Framebuffer:createFramebuffer.Vulkan.Utils.Shader:shaderStageandshaderModuleStage.
Synchronization and descriptors
Vulkan.Utils.Barrier:imageBarrier,bufferBarrier, and the common transitionstransitionColorAttachment,transitionDepthAttachment, andtransitionPresent.Vulkan.Utils.Descriptors:bufferWriteandimageWritefor common single-binding descriptor writes.Vulkan.Utils.RefCounted: a reference-counted release primitive (newRefCounted,takeRefCounted,releaseRefCounted,resourceTRefCount).
Swapchain, frames, and windowing
Vulkan.Utils.Swapchain:SwapchainandSwapchainConfigwithdefaultSwapchainConfig,allocSwapchain,recreateSwapchain, andthrewSwapchainError.Vulkan.Utils.Frame: aFramerecord driving frames-in-flight —advanceFrame,runFrame,recordCommands,queueSubmitFrame,acquireFrameImage,presentFrameImage,drainFrames,withTimelineSemaphore, and the matching requirements helpers.Vulkan.Utils.VulkanContext:VulkanContextandRecycledResourceswithmkVulkanContext.Vulkan.Utils.WindowAdapter: a backend-agnosticWindowAdapterrecord (thevulkan-init-sdl2andvulkan-init-glfwpackages provide instances).Vulkan.Utils.WindowLoop:runWindowLoopwith theWindowLooprecord and thenoWindowState/noOnFrame/noOnExitdefaults.Vulkan.Utils.Queues: aQueuesrecord andwithDevice.Vulkan.Utils.Init.Headless:withInstancefor headless setup.
Dependencies
- Now depends on
unagi-chanandunliftio-core. - Raised the upper bound on
vulkanto< 3.28.
[0.5.10.6] - 2023-10-21
[0.5.10.5] - 2023-10-17
[0.5.10.4] - 2023-10-17
- Relax bounds on
vulkan
[0.5.10.3] - 2023-10-17
- Relax bounds on
vulkan
[0.5.10.2] - 2022-12-27
[0.5.10.1] - 2022-10-02
- Relax bounds on
vulkan
[0.5.10] - 2022-09-27
- Improve error messages for requirements TH
[0.5.9.1] - 2022-09-26
- Fix tests on ghc 9.2
[0.5.9] - 2022-09-24
- Relax bounds on
vulkan
[0.5.8.1] - 2022-09-06
- Add support for GHC 9.4.
[0.5.8] - 2022-09-06
- Relax bounds on
vulkan
[0.5.7] - 2022-03-31
- Relax bounds on
vulkan
[0.5.6] - 2022-02-05
- Relax bounds on
vulkan
[0.5.5] - 2022-01-14
- Relax bounds on
vulkan - Squash warnings
[0.5.4] - 2021-11-25
- Relax bounds on
vulkan
[0.5.3] - 2021-10-14
- Relax bounds on
vulkan
[0.5.2] - 2021-08-12
- Relax bounds on
vulkan
[0.5.1] - 2021-07-24
- Fix bug where
createInstanceFromRequirementsandcreateDebugInstanceFromRequirementswould fail for missing layers in optional requirements.
[0.5.0.2] - 2021-06-22
- Relax bounds on
vulkan
[0.5.0.1] - 2021-06-09
- Squash warning
[0.5.0] - 2021-02-24
- Refactor module
Vulkan.Utils.ShaderQQ- Remove
Vulkan.Utils.ShaderQQ - Remove
Vulkan.Utils.ShaderQQ.Shaderc - Provide
glsl/hlsl,vert..comp,rgen..rcall,mesh,task,compileShaderQ,compileShaderin each ShaderQQ provider module underVulkan.Utils.ShaderQQfor help compile shaders - Add
Vulkan.Utils.ShaderQQ.Backend.Glslangto help process warning & error messages for glslangValidator - Add
Vulkan.Utils.ShaderQQ.Backend.Shadercto help process warning & error messages for glslc - Add
Vulkan.Utils.ShaderQQ.GLSL.Glslangto compile glsl shaders for glslangValidator - Add
Vulkan.Utils.ShaderQQ.GLSL.Shadercto compile glsl shaders for glslc - Add
Vulkan.Utils.ShaderQQ.HLSL.Glslangto compile hlsl shaders for glslangValidator - Add
Vulkan.Utils.ShaderQQ.HLSL.Shadercto compile hlsl shaders for glslc
- Remove
- specify
--target-spvfor shaderc ray tracing shaders - specify
--target-envfor glslang ray tracing shaders - support pass hlsl entry point to glslangValidator and shaderc
- support pass glsl entry point to glslangValidator
[0.4.2] - 2021-02-18
- Relax bounds on
vulkan
[0.4.1] - 2021-01-09
- Better error message reporting on unsatisfied extension version. See https://github.com/expipiplus1/vulkan/issues/249
[0.4] - 2020-11-30
- Add
Vulkan.Utils.Requirements, a module with several helpers for theRequirementtypes found inVulkan.Requirement - Change the creation helpers in
Vulkan.Utils.Initializationto use the newRequirementtypes. - Add QuasiQuoters for creating device requirements in
Vulkan.Utils.Requirements.TH - Allow selecting target environment in
compileShader
[0.3] - 2020-11-24
- Change type of pickPhysicalDevice to return Nothing instead of throwing
- Add
checkCommandsExpfunction to generate an expression checking specified commands for non-nullness - Expose Queue family index for queues assigned with
assignQueues - Add
Vulkan.Utils.ShaderQQ.Shadercto compile HLSL shaders
[0.2] - 2020-11-15
- Add
Vulkan.Utils.Miscfor handy functions used in Vulkan programs, but not Vulkan specific. - Add
Vulkan.Utils.Initializaionfor functions to ease creating a Vulkan device. - Add
Vulkan.Vulkan.Utils.QueueAssignmentto help with easy queue creation.
[0.1.3] - 2020-11-12
- Add
glslinterpolating quasiquoter
[0.1.2.1] - 2020-11-01
- Raise bound on base
[0.1.2] - 2020-09-27
- Initial release
- Shader QuasiQuoters
- GL format enum conversion
- Debug helpers