Changelog for keid-core-0.1.10.0
Changelog for keid-core
0.1.10.0
- Added 
ghWindowSizeto replaceghScreenVar- a unified var to track window and framebuffer sizes, and their relative scale. (So you can use "pixel" sizes when running under scaled rendering a la MacOS.) - Added 
Engine.Setup.Window.SizeandgetSizeto collect that information.- A related helper: 
askWindowSizeto tie both. 
 - A related helper: 
 
0.1.9.1
- Addded new wrappers to `Engine.App``
withDataDirto change directory so thedatadirectory will match./data.withDefaultArgsto set default options like msaa.
 - Added screen-grabbing functions to 
Resource.Image. - Added compatibility extension for instance CI to run on MoltenVK.
 - Added 
Engine.Types.HasMonoTimeclass andsecondsSinceStartto get stable monotonic time in a sane range. 
0.1.9.0
- Extracted 
Engine.UI.Layoutand...Layout.Lineartogeomancy-layout. - Added 
Engine.Camera.trackOrthoPixelsCenteredto 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.DsBindingstoDsLayoutBindings. - Added 
allocate_forEngine.Vulkan.Pipeline.GraphicsandCompute. - Added 
size,withSizeand experimentalHasFieldinstance 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 RunStateloop callbacks now use aMonadSink rs minstead 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.vertexInputhelper. Using:HasVertexInputBindingsclass that provides attribute bindings.HasVkFormatclass to generate bindings parameters automatically (with generics) or explicitly.vertexFormat,instanceFormathelpers for usingHasVkFormatto provideHasVertexInputBindingsinstances.
 - Added 
Resource.Model.Observerthat wraps coherent buffers and is able to observe multi-buffered resources. - Changed 
Swapchain.setDynamicFullscreento accept a frame directly. - Added 
MonadReaderandMonadStateinstances forBoundto allow fetching models at draw call site. 
0.1.7.2
- Added 
--sizeoption to set the initial window size. - Added 
--max-fpsoption 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 
StageInfoclass.- Shader creation can now pluck stage flags from the collection.
 
 - Added 
Engine.Vulkan.Pipeline.Raytracestages (no pipelines yet). - Added 
Engine.Vulkan.Pipeline.Externalworker for reloading pipelines. - Added 
Engine.SpirV.Reflectto facilitate safe reloads usingspirv-reflecttoolchain. - Added 
Engine.Engine.Stage.Componentwith rendering/resources/scenes decoupled. 
0.1.6.1
- Minimal 
vulkanversion is now 3.17. - Fixed VMA setup for headless rendering.
 - Add 
Generically1frombase-4.17to replacedistributive/repesentable. Engine.Worker.Cellinstances generalized to arbitrary pairs.- I.e. 
(Var i, Var o)is aCell-like structure that can be driven externally while retaining theVarandObservermachinery. 
- I.e. 
 withFrozenCallStackfixes for GHC-9.0.Engine.Workerboilerplate for coherentResource.Buffer.- Added 
Resource.Image.Atlasexperimental container for tile atlases. - Added 
Resource.Regionfor detachable allocation scopes. - Added 
Engine.Window.MouseButton.Collectionto 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.Camerawith projection and view controls. - Worker 
Cellchanged into an input-annotatedMerge. 
0.1.5.1
- Fixed 
VMA.AllocatorCreateInfoforvulkan-3.15and newer. 
0.1.5.0
- Removed 
allocateRenderpass_fromRenderPassclass. - Added 
allocateRPstage 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 
specparameter. Shader.Specializationclass is used to derive vulkan schema at runtime and store values.
 - Graphic and compute pipeline configs extended with 
 - Added 
Pipline.ConfigureandCompute.Configurefamilies to produce a matchingConfigtype. - Added 
cDepthComparetoPipeline.Config. - Removed 
Zeroinstance for pipline configs.- Use 
baseConfigvalue 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.allocateto usemaxAnisotropydirectly. - Relaxed 
DescriptorSet.allocatePoolto 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.setupHeadlessto 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 
Serialiseclass instead ofStorable. - Replaced RIO in resource loaders with constraints.
 - Added 
Render.Passbase module andRender.Pass.Offscreen. Resource.Image.AllocatedImagegot format and subresource information.- Removed 
Resource.Image.createColorResource,Resource.Image.createDepthResource.- Added unified 
Resource.Image.createinstead. - Function names shortened to match qulified import style.
 
 - Added unified 
 
0.1.2.0
- Added 
Resource.Sourcetype to mix external and embedded byte sources. - Added 
Zstd.Compressedwrapper and functions to compress/decompressByteString. - Removed 
Ktx1.createTexture.- Added 
load,loadBytes,loadKtx1instead. 
 - Added 
 
0.1.1.1
- Added 
spawnMergeTto merge traversable collections. - Added 
HasStateRefto make stage state accessible fromStageFrameRIO. - Added module labels to pipelines and their layouts.
 
0.1.1.0
- Added 
--display NUMto application arguments. - Allow 
Timedworkers to skip output update. spawnTimedandspawnTimed_changed args: active/dt moved to front.spawnTimednow 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.