Changelog for keid-core-0.1.11.0
Changelog for keid-core
0.1.11.0
- Fixes and updates to match geomancy-0.3 rewrite.
- Reverse-depth perspective camera.
- Conter-clockwise winding.
- PVM matrix composition order.
- Changed the compatibility extensions for device and instance to be required, but put them under a
darwin_HOST_OSdefine.- Even being optional they break launching under RenderDoc.
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.