Changelog for keid-core-0.1.9.0
Changelog for keid-core
0.1.9.0
- Extracted
Engine.UI.Layout
and...Layout.Linear
togeomancy-layout
. - Added
Engine.Camera.trackOrthoPixelsCentered
to replacetrackScreen
. - Language features updated to GHC-9.4.
0.1.8.0
Massive breakage fixing around allocate/create/destroy patterns and naming things.
- Deleted
Resource.DescriptorSets
. - Added
Resource.Vulkan.DescriptorPool
. - Renamed
Engine.Vulkan.Types.DsBindings
toDsLayoutBindings
. - Added
allocate_
forEngine.Vulkan.Pipeline.Graphics
andCompute
. - Added
size
,withSize
and experimentalHasField
instance forResource.Texture
. - Fixed SPIR-V signatures compatibility by hiding builtin interface vars.
Engine.Worker.spawn*
andEngine.Events.*
handlers and now self-registereing.- Due to
RunState
/Sink RunState
loop callbacks now use aMonadSink rs m
instead ofStageRIO rs
. - Added
Resource.Texture.Ktx2
.- It lacks the BC7 hack to force sRGB for compressed textures as it is possible to set the correct format directly.
- Moved Base textures to KTX2 containers. KTX1 is soft-deprecated.
- Graphics pipelines now able to fill the config automatically with
Graphics.vertexInput
helper. Using:HasVertexInputBindings
class that provides attribute bindings.HasVkFormat
class to generate bindings parameters automatically (with generics) or explicitly.vertexFormat
,instanceFormat
helpers for usingHasVkFormat
to provideHasVertexInputBindings
instances.
- Added
Resource.Model.Observer
that wraps coherent buffers and is able to observe multi-buffered resources. - Changed
Swapchain.setDynamicFullscreen
to accept a frame directly. - Added
MonadReader
andMonadState
instances forBound
to allow fetching models at draw call site.
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 usingspirv-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
frombase-4.17
to replacedistributive
/repesentable
. Engine.Worker.Cell
instances generalized to arbitrary pairs.- I.e.
(Var i, Var o)
is aCell
-like structure that can be driven externally while retaining theVar
andObserver
machinery.
- I.e.
withFrozenCallStack
fixes for GHC-9.0.Engine.Worker
boilerplate for coherentResource.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-annotatedMerge
.
0.1.5.1
- Fixed
VMA.AllocatorCreateInfo
forvulkan-3.15
and newer.
0.1.5.0
- Removed
allocateRenderpass_
fromRenderPass
class. - Added
allocateRP
stage field. - Added
Engine.Vulkan.Pipeline.Compute
.- Common shader code extracted to
Engine.Vulkan.Shader
.
- Common shader code extracted to
- 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.
- Graphic and compute pipeline configs extended with
- Added
Pipline.Configure
andCompute.Configure
families to produce a matchingConfig
type. - Added
cDepthCompare
toPipeline.Config
. - Removed
Zero
instance for pipline configs.- Use
baseConfig
value for better type inference and less imports.
- Use
0.1.4.1
- Added size information to
Resource.Image
:aiExtent
.
0.1.4.0
- Changed
Render.Samplers.allocate
to usemaxAnisotropy
directly. - Relaxed
DescriptorSet.allocatePool
to anyMonadResource
. - 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 ofStorable
. - Replaced RIO in resource loaders with constraints.
- Added
Render.Pass
base module andRender.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.
- Added unified
0.1.2.0
- Added
Resource.Source
type to mix external and embedded byte sources. - Added
Zstd.Compressed
wrapper and functions to compress/decompressByteString
. - Removed
Ktx1.createTexture
.- Added
load
,loadBytes
,loadKtx1
instead.
- Added
0.1.1.1
- Added
spawnMergeT
to merge traversable collections. - Added
HasStateRef
to make stage state accessible fromStageFrameRIO
. - 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
andspawnTimed_
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.