packages feed

keid-core-0.1.7.2: ChangeLog.md

# Changelog for keid-core

## 0.1.7.2

- Added `--size` option to set the initial window size.
- Added `--max-fps` option to limit frame rate.

## 0.1.7.1

- SPIR-V reflection loader changed to `spirv-reflect-ffi`.

## 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.