Changelog for keid-core
0.1.7.0
- Graphics pipelines extracted to
Engine.Vulkan.Pipeline.Graphics.
- Added pipeline stage collections and
StageInfo class.
- Shader creation can now pluck stage flags from the collection.
- Added
Engine.Vulkan.Pipeline.Raytrace stages (no pipelines yet).
- Added
Engine.Vulkan.Pipeline.External worker for reloading pipelines.
- Added
Engine.SpirV.Reflect to facilitate safe reloads using spirv-reflect toolchain.
- Added
Engine.Engine.Stage.Component with rendering/resources/scenes decoupled.
0.1.6.1
- Minimal
vulkan version is now 3.17.
- Fixed VMA setup for headless rendering.
- Add
Generically1 from base-4.17 to replace distributive/repesentable.
Engine.Worker.Cell instances generalized to arbitrary pairs.
- I.e.
(Var i, Var o) is a Cell-like structure that can be driven externally
while retaining the Var and Observer machinery.
withFrozenCallStack fixes for GHC-9.0.
Engine.Worker boilerplate for coherent Resource.Buffer.
- Added
Resource.Image.Atlas experimental container for tile atlases.
- Added
Resource.Region for detachable allocation scopes.
- Added
Engine.Window.MouseButton.Collection to facilitate button-related dispatch.
- Added a shortcut around loop when a window is quitting.
- Skips allocation of loop resources that wouldn't be used.
- Sidesteps a race before release/allocate chain when unwinding stages leading to crashes.
- Added
Engine.UI.Layout.Linear.
- Experimental for now, but require no workers and FRP-compatible.
0.1.6.0
- Added
Engine.Camera with projection and view controls.
- Worker
Cell changed into an input-annotated Merge.
0.1.5.1
- Fixed
VMA.AllocatorCreateInfo for vulkan-3.15 and newer.
0.1.5.0
- Removed
allocateRenderpass_ from RenderPass class.
- Added
allocateRP stage field.
- Added
Engine.Vulkan.Pipeline.Compute.
- Common shader code extracted to
Engine.Vulkan.Shader.
- Added shader specialization constants.
- Graphic and compute pipeline configs extended with
spec parameter.
Shader.Specialization class is used to derive vulkan schema at runtime and store values.
- Added
Pipline.Configure and Compute.Configure families to produce a matching Config type.
- Added
cDepthCompare to Pipeline.Config.
- Removed
Zero instance for pipline configs.
- Use
baseConfig value for better type inference and less imports.
0.1.4.1
- Added size information to
Resource.Image: aiExtent.
0.1.4.0
- Changed
Render.Samplers.allocate to use maxAnisotropy directly.
- Relaxed
DescriptorSet.allocatePool to any MonadResource.
- Added KHR_Surface to headless requirements.
- Added
Render.Pass.setViewportScissor.
- Added TRANSFER_SRC to Offscreen image usage.
- Published
Render.Samplers.params.
0.1.3.1
- Added
Engine.Setup.setupHeadless to use without a surface.
- Added queue assignment fallback when there are no distinct queues for compute and transfer.
Fixes startup crash on Intel iGPUs.
0.1.3.0
- Changed mesh codec to use
Serialise class instead of Storable.
- Replaced RIO in resource loaders with constraints.
- Added
Render.Pass base module and Render.Pass.Offscreen.
Resource.Image.AllocatedImage got format and subresource information.
- Removed
Resource.Image.createColorResource, Resource.Image.createDepthResource.
- Added unified
Resource.Image.create instead.
- Function names shortened to match qulified import style.
0.1.2.0
- Added
Resource.Source type to mix external and embedded byte sources.
- Added
Zstd.Compressed wrapper and functions to compress/decompress ByteString.
- Removed
Ktx1.createTexture.
- Added
load, loadBytes, loadKtx1 instead.
0.1.1.1
- Added
spawnMergeT to merge traversable collections.
- Added
HasStateRef to make stage state accessible from StageFrameRIO.
- Added module labels to pipelines and their layouts.
0.1.1.0
- Added
--display NUM to application arguments.
- Allow
Timed workers to skip output update.
spawnTimed and spawnTimed_ changed args: active/dt moved to front.
spawnTimed now uses initialization function instead of deriving initial output from initial state.
0.1.0.1
- Inter-stage resource release waits for render job to finish.