h&k       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                         !!!!!!"###$$$%&&&''''''''''''(((((((((((((((((((((())))))))))))))))))))))))))***+++++++++++++++++,,,---------------............/////////////////////////////0011222222223333333333333445566777777777777777777777777777788888888888888888888999999999999999:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<===>>>>>>>>>>>?????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D E E E E E E E E E E F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H Safe-Inferred="$%&'()*-/1235689:;<>?  Safe-Inferred="$%&'()*-/1235689:;<>? keid-coreFilled with resources which aren't destroyed after finishing a frame, but instead are used by another frame which executes after that one is retired, (taken from ghRecycleOut)Make sure not to pass any resources which were created with a frame-only scope however! keid-core1The resources of prior frames waiting to be taken Safe-Inferred="$%&'()*-/1235689:;<>?    Safe-Inferred="$%&'()*-/1235689:;<>? keid-coreA ; will perform the specified action when the count reaches 0 keid-core"Create a counter with a value of 1 keid-coreDecrement the value, the action will be run promptly and in this thread if the counter reached 0. keid-coreIncrement the counter by 1 keid-core)Hold a reference for the duration of the   action    Safe-Inferred>"$%&'()*-/1235689:;<>? ]  Safe-Inferred="$%&'()*-/1235689:;<>?   Safe-Inferred>"$%&'()*-/1235689:;<>?! keid-core uniform Foo { ... } foo; keid-core@layout(location=N) keid-core layout(set=X, binding=Y) ...## Safe-Inferred="$%&'()*-/1235689:;<>?# keid-coreThe shape of all the queues we use for our program, parameterized over the queue type so we can use it with IJ. keid-core8A class for Monads which can provide some Vulkan handles** Safe-Inferred="$%&'()*-/1235689:;<>?%  Safe-Inferred>"$%&'()*-/1235689:;<>?& keid-coreRequirements for a Queue which has graphics support and can present to the specified surface.Priorities are ranged 0.0 to 1.0 with higher number means higher priority. https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-priority Safe-Inferred="$%&'()*-/1235689:;<>?( keid-coreSupply-driven step cell. keid-coreTimer-driven stateful producer. keid-core4Updatable cell for composite input or costly output. keid-coreSpawn a merge over a homogeneous traversable collection of processes.A merging function will receive a collection of outputs to summarize.>> Safe-Inferred?"#$%&'()*-/1235689:;<>?-M keid-core2Allocate everything which depends on the swapchain keid-coreCreate a swapchain from a  SurfaceKHR  keid-coreAn ordered list of the present mode to be chosen for the swapchain.  keid-core5The images in the swapchain must support these flags. keid-core4Catch an ERROR_OUT_OF_DATE_KHR exception and return   if that happened  keid-core:Create a pretty vanilla ImageView covering the whole image keid-core&Previous swapchain, can be NULL_HANDLE keid-coreIf the swapchain size determines the surface size, use this size keid-core0The reference to these resources will be dropped keid-core!Old swapchain, can be NULL_HANDLE keid-coreIf the swapchain size determines the surface size, use this size##K Safe-Inferred>"$%&'()*-/1235689:;<>?.]  Safe-Inferred="$%&'()*-/1235689:;<>?/ keid-coreCommand line arguments   Safe-Inferred="$%&'()*-/1235689:;<>?4  keid-coreThese are resources which are reused by a later frame when the current frame is retired keid-coreA binary semaphore passed to acquireNextImageKHR keid-core:A binary semaphore to synchronize rendering and presenting keid-corePool for this frame's commands for each of the queue families. (might want more than one of these for multithreaded recording) keid-core5All the information required to render a single frame keid-coreWhich number frame is this keid-coreA timeline semaphore which increments to fIndex when this frame is done, the host can wait on this semaphore. keid-coreSwapchain-derived resources with a life time of this Frame's stage. keid-coreTimeline semaphores and corresponding wait values, updates as the frame progresses. keid-coreThe  InternalState for tracking frame-local resources along with the key to release it in the global scope. This will be released when the frame is done with GPU work. keid-coreResources which can be used for this frame and are then passed on to a later frame. keid-core2A bunch of global, unchanging state we cart around Safe-Inferred?"#$%&'()*-/1235689:;<>?6   Safe-Inferred="$%&'()*-/1235689:;<>?7 keid-coreleftcenterright keid-coretopmiddlebottom&& Safe-Inferred="$%&'()*-/1235689:;<>?8) Safe-Inferred="$%&'()*-/1235689:;<>?8 Safe-Inferred="$%&'()*-/1235689:;<>?: keid-coreA collection of properties that are available while handling events. Has access to a stage RunState , but not Frame data. Safe-Inferred="$%&'()*-/1235689:;<>?: Safe-Inferred="$%&'()*-/1235689:;<>?;.}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  ~ Safe-Inferred="$%&'()*-/1235689:;<>?< Safe-Inferred="$%&'()*-/1235689:;<>?=n Safe-Inferred="$%&'()*-/1235689:;<>?>M Safe-Inferred="$%&'()*-/1235689:;<>?> Safe-Inferred="$%&'()*-/1235689:;<>?? keid-coreCamera orbiting its target)) Safe-Inferred="$%&'()*-/1235689:;<>?@   Safe-Inferred="$%&'()*-/1235689:;<>?A|  Safe-Inferred>"$%&'()*-/1235689:;<>?B! Safe-Inferred="$%&'()*-/1235689:;<>?DQ keid-coreDerive next frame keid-core and add wait for the timeline  Semaphore before retiring the frame.  keid-coreWait for some semaphores, if the wait times out give the frame one last chance to complete with a zero timeout.It could be that the program was suspended during the preceding wait causing it to timeout, this will check if it actually finished." Safe-Inferred>"#$%&'()*-/1235689:;<>?EA# Safe-Inferred="$%&'()*-/1235689:;<>?E Safe-Inferred="$%&'()*-/1235689:;<>?F keid-core A wrapper to   code into   vars.  $ Safe-Inferred="$%&'()*-/1235689:;<>?G=% Safe-Inferred="$%&'()*-/1235689:;<>?G& Safe-Inferred>"#$%&'()*-/1235689:;<>?HT Safe-Inferred"$%&'()*-/01235689:;<>?I# keid-core keid-core keid-core' Safe-Inferred="$%&'()*-/1235689:;<>?I( Safe-Inferred="$%&'()*-/1235689:;<>?JW) Safe-Inferred="$%&'()*-/1235689:;<>?K&&* Safe-Inferred="$%&'()*-/1235689:;<>?L5+ Safe-Inferred="$%&'()*-/1235689:;<>?Mv keid-coreray generation keid-coreray intersection keid-core ray any hit keid-coreray closest hit keid-coreray miss keid-core ray callable, Safe-Inferred>"$%&'()*-/1235689:;<>?N keid-coreScratch command buffer for transfer operations. The simple fence makes it unusable for rendering.- Safe-Inferred="$%&'()*-/1235689:;<>?O  . Safe-Inferred="$%&'()*-/1235689:;<>?O keid-coreRegular grid atlas   Safe-Inferred="$%&'()*-/1235689:;<>?P  / Safe-Inferred="$%&'()*-/1235689:;<>?QF0 Safe-Inferred="$%&'()*-/1235689:;<>?R11 Safe-Inferred="$%&'()*-/1235689:;<>?R2 Safe-Inferred="$%&'()*-/1235689:;<>?SG3 Safe-Inferred="$%&'()*-/1235689:;<>?S4 Safe-Inferred="$%&'()*-/1235689:;<>?T5 Safe-Inferred="$%&'()*-/1235689:;<>?U 6 Safe-Inferred="$%&'()*-/1235689:;<>?U7 Safe-Inferred="$%&'()*-/1235689:;<>?V"8 Safe-Inferred="$%&'()*-/1235689:;<>?W  9 Safe-Inferred>"$%&'()*-/1235689:;<=>?W  : Safe-Inferred>"$%&'()*-/1235689:;<>?X keid-core>Allocate an image and transition it into TRANSFER_DST_OPTIOMAL; Safe-Inferred>"$%&'()*-/1235689:;<>?Z keid-core8Number of expected texture layers to load from resource. keid-coreActual number of layers, up to  ArrayOf a< Safe-Inferred>"$%&'()*-/1235689:;<>?Z= Safe-Inferred="$%&'()*-/1235689:;<>?[{> Safe-Inferred="$%&'()*-/1235689:;<>?\ ? Safe-Inferred?"#$%&'()*-/1235689:;<>?] keid-core)Target color format when used for export. keid-core)Target depth format when used for export. keid-core%Makes sense only for multiple layers. keid-core*Multisample prevents mipmapping and cubes.@ Safe-Inferred>"#$%&'()*-/1235689:;<>?_ keid-coreThe constant_id can only be applied to a scalar *int*, a scalar *float* or a scalar *bool*. (https:/ github.com KhronosGroupGLSLblobmaster extensionskhrGL_KHR_vulkan_glsl.txt)=XXX: Apparently it is possible to pass uints and doubles too.  A Safe-Inferred"#$%&'()*-/1235689:;<>?a) keid-corevertex keid-coretessellation control keid-coretessellation evaluation keid-coregeometry keid-corefragment keid-core1Settings for generic triangle-rendering pipeline.//B Safe-Inferred>"$%&'()*-/1235689:;<>?bi!  !   C Safe-Inferred="$%&'()*-/1235689:;<>?c  keid-core5CBOR.encode helper for storable types (vectors, etc.)  keid-core5CBOR.decode helper for storable types (vectors, etc.)= = D Safe-Inferred="$%&'()*-/1235689:;<>?es  E Safe-Inferred="$%&'()*-/1235689:;<>?f F Safe-Inferred="$%&'()*-/1235689:;<>?i  keid-core!Single triangle, binding nothing.  keid-core2Multiple shader-driven triangles without bindings.  keid-coreInstanced quads.  keid-coreDraw whole-model instances.  keid-coreDraw subrange of each instance.;E.g. chunks of the same material drawn in different places.  keid-core!Draw ranges and instances zipped.)E.g. range materials stored in instances.  keid-core0Draw whole-model instances, ignoring attributes.  keid-core5Draw subrange of each instances, ignoring attributes.  keid-core#Common unchecked part for pos/attrs  keid-coreInstance/range zipped G Safe-Inferred>"#$%&'()*-/1235689:;<>?i  keid-corecompute    H Safe-Inferred?"$%&'()*-/1235689:;<>?j  LMNLMOPQRPQSPQTPQUPQVPQWPQXPQYPQZPQ[PQ\PQ]PQ^PQ_PQ`PQaPQbPQcPQdPQePQfPQgPQhPQiPQjPQkPQlPQmPQnPQoPQpPQqPQrPQsPQtPQuPQvPQwPQxPQyPQzPQ{PQ|PQ}PQ~PQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQPQLMLM                                                                                                         !!!!!!"###$$$%&&&''''''''''''(((((((((((((((((((((())))))))))))))))))))))))))***+++++++++++++++++,,,---------------............/////////////////////////////0011222222223333333333333445566777777777777777777777777777788888888888888888888999999999999999:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<===>>>>>>>>>>>?????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBB B B BB B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C CC C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D E E E E E E E E E E F F F F F F F F F F GGGGGG GG GGG GGGGGGGGGGGGGGGH H H H H HHH H H H H H H H H     K K K K K K K K ! L  keid-core-0.1.8.0-inplaceResource.Collection.GenericEngine.Setup.WindowEngine.Window.KeyEngine.Window.CursorPos Render.CodeResource.RegionEngine.Vulkan.DescSetsEngine.Camera.Event.TypeEngine.DataRecyclerEngine.Types.RefCountedEngine.Vulkan.FormatEngine.Vulkan.Pipeline.StagesEngine.SpirV.ReflectEngine.Vulkan.TypesEngine.Vulkan.PipelineEngine.Setup.Device Engine.WorkerEngine.Vulkan.SwapchainEngine.Types.Options Engine.TypesEngine.UI.LayoutEngine.UI.Layout.LinearEngine.StageSwitchEngine.Events.SinkEngine.Window.ScrollEngine.Window.Drop Engine.EventsEngine.Events.CursorPos Engine.CameraEngine.Camera.ControlsEngine.Camera.Event.Handler Engine.Setup Engine.Frame Engine.Render Engine.RunEngine.SpirV.CompileRender.Code.Noise Render.PassResource.CollectionRender.SamplersEngine.Window.MouseButtonEngine.Events.MouseButtonEngine.Vulkan.Pipeline.RaytraceResource.CommandBufferResource.Compressed.ZstdResource.Image.AtlasEngine.Stage.ComponentEngine.Stage.Bootstrap.Setup Engine.AppResource.SourceResource.Static Resource.Vulkan.DescriptorLayoutResource.Vulkan.NamedResource.Vulkan.DescriptorPoolResource.BufferResource.Model.ObserverResource.Model.Observer.ExampleResource.ImageResource.TextureResource.Texture.Ktx2Resource.Texture.Ktx1Resource.Combined.TexturesRender.Pass.OffscreenEngine.Vulkan.ShaderEngine.Vulkan.Pipeline.GraphicsResource.ModelResource.Mesh.TypesResource.Mesh.UtilsResource.Mesh.Codec Render.DrawEngine.Vulkan.Pipeline.ComputeEngine.Vulkan.Pipeline.ExternalVulkan.Utils.QueueAssignment assignQueuesPaths_keid_corebase GHC.GenericsGeneric1Rep1GLFW-b-3.3.0.0-3be570e09ffa2a2e6308e9805ce91330653eacb3112e153ff220a38e8742d734Graphics.UI.GLFW.TypesErrorWindowKey'MenuKey'RightSuper Key'RightAltKey'RightControlKey'RightShift Key'LeftSuper Key'LeftAltKey'LeftControl Key'LeftShift Key'PadEqual Key'PadEnter Key'PadAddKey'PadSubtractKey'PadMultiply Key'PadDivideKey'PadDecimalKey'Pad9Key'Pad8Key'Pad7Key'Pad6Key'Pad5Key'Pad4Key'Pad3Key'Pad2Key'Pad1Key'Pad0Key'F25Key'F24Key'F23Key'F22Key'F21Key'F20Key'F19Key'F18Key'F17Key'F16Key'F15Key'F14Key'F13Key'F12Key'F11Key'F10Key'F9Key'F8Key'F7Key'F6Key'F5Key'F4Key'F3Key'F2Key'F1 Key'PauseKey'PrintScreen Key'NumLockKey'ScrollLock Key'CapsLockKey'EndKey'Home Key'PageDown Key'PageUpKey'UpKey'DownKey'Left Key'Right Key'Delete Key'Insert Key'BackspaceKey'Tab Key'Enter Key'Escape Key'World2 Key'World1Key'GraveAccentKey'RightBracket Key'BackslashKey'LeftBracketKey'ZKey'YKey'XKey'WKey'VKey'UKey'TKey'SKey'RKey'QKey'PKey'OKey'NKey'MKey'LKey'KKey'JKey'IKey'HKey'GKey'FKey'EKey'DKey'CKey'BKey'A Key'Equal Key'SemicolonKey'9Key'8Key'7Key'6Key'5Key'4Key'3Key'2Key'1Key'0 Key'Slash Key'Period Key'Minus Key'CommaKey'Apostrophe Key'Space Key'UnknownKeyKeyState'RepeatingKeyState'ReleasedKeyState'PressedKeyState MouseButton'8 MouseButton'7 MouseButton'6 MouseButton'5 MouseButton'4 MouseButton'3 MouseButton'2 MouseButton'1 MouseButtonMouseButtonState'ReleasedMouseButtonState'PressedMouseButtonStatemodifierKeysNumLockmodifierKeysCapsLockmodifierKeysSupermodifierKeysAltmodifierKeysControlmodifierKeysShift ModifierKeysto1from1neat-interpolation-0.5.1.3-08655584cf700f8d32e0d70b85c91506e635d8ac8b7a801cf2fb43a6d6787044NeatInterpolationtrimmingresourcet-1.2.6-4814510e01c4a1d72995162912ac50c8f31014d52a60a70048aa318d8b622bb6Control.Monad.Trans.Resourcerelease%Control.Monad.Trans.Resource.Internal ReleaseKeytagged-0.8.6.1-b995ff3a2048ac001f3226385da99e96d26829f242891dab964f6d8e718b0f13 Data.TaggedunTaggedTaggedvulkan-3.24.5-f322f63577d500acb5ac68740433e726f8a9ffa9fb6c7e58013634450365ee9aVulkan.Extensions.Handles SurfaceKHRvulkan-utils-0.5.10.2-f91f5a6d22915ed1fa7a32a7d85806c45e27d250946b79efa1ad39bb85199bf8"Vulkan.Utils.ShaderQQ.GLSL.GlslangglslEventZoomPan PanHorizontal PanVertical TurnAzimuthTurnInclination $fShowEvent WaitResource DumpResource DataRecycler$sel:drDump:DataRecycler$sel:drWait:DataRecyclernew SizePicker GLFWErrorallocate createWindow destroyWindowallocateSurface createSurface pickLargest getExtent2D$fExceptionGLFWError $fEqGLFWError$fOrdGLFWError$fShowGLFWError RefCounted$sel:rcCount:RefCounted$sel:rcAction:RefCounted newRefCountedreleaseRefCountedtakeRefCountedresourceTRefCountwrapped HasVkFormat getVkFormatgenericVkFormat formatSize$fGVkFormat:*: $fGVkFormatM1 $fGVkFormatK1$fHasVkFormatPoint$fHasVkFormatUVec4$fHasVkFormatPacked$fHasVkFormatUVec3$fHasVkFormatUVec2$fHasVkFormatWord32$fHasVkFormatIVec4$fHasVkFormatPacked0$fHasVkFormatIVec3$fHasVkFormatIVec2$fHasVkFormatInt32$fHasVkFormatTransform$fHasVkFormatMat4$fHasVkFormatQuaternion$fHasVkFormatVec4$fHasVkFormatPacked1$fHasVkFormatVec3$fHasVkFormatVec2$fHasVkFormatFloat$fHasVkFormat() StageInfo stageNames stageFlagBits withLabelsMatchingCompatibleInterfacesIncompatibleInterfacesInterfaceSignature$sel:format:InterfaceSignature$sel:flags:InterfaceSignature$sel:matrix:InterfaceSignatureInterfaceBindingBlockSignature$sel:offset:BlockSignature$sel:size:BlockSignature$sel:flags:BlockSignature$sel:scalar:BlockSignature BlockBindingInterfaceBindsStageInterfaceBindMapReflect$sel:bindMap:Reflect$sel:interfaces:Reflect$sel:inputStage:Reflect$sel:inputs:Reflectinvoke stagesBindMap moduleBindMap blockTreebindMapUnionWithstagesInterfaceMapmoduleInterfaceBindsinterfaceBindsinterfaceCompatibleinputStageInterface$fEqInterfaceSignature$fOrdInterfaceSignature$fShowInterfaceSignature$fEqBlockSignature$fOrdBlockSignature$fShowBlockSignature $fShowReflect $fEqReflectBound DsLayoutsDsLayoutBindings RenderPassupdateRenderpassrefcountRenderpass HasRenderPassgetFramebuffers getRenderPassgetClearValues getRenderArea HasSwapchaingetSurfaceExtentgetSurfaceFormatgetDepthFormatgetMultisample getAnisotropygetSwapchainViewsgetMinImageCount getImageCountPhysicalDeviceInfo&$sel:pdiTotalMemory:PhysicalDeviceInfo+$sel:pdiQueueCreateInfos:PhysicalDeviceInfo$sel:pdiName:PhysicalDeviceInfo%$sel:pdiProperties:PhysicalDeviceInfo$$sel:pdiGetQueues:PhysicalDeviceInfoQueues$sel:qGraphics:Queues$sel:qTransfer:Queues$sel:qCompute:Queues HasVulkan getInstance getQueuesgetPhysicalDevicegetPhysicalDeviceInfo getDevice getAllocator MonadVulkangetPipelineCache$fHasVulkan(,)$fHasVulkanApp$fFoldableBound$fTraversableBound$fFunctorBound$fApplicativeBound $fMonadBound$fMonadIOBound$fMonadUnliftIOBound$fMonadReaderrBound$fMonadStatesBound $fShowQueues$fFunctorQueues$fFoldableQueues$fTraversableQueuesSpecializationPipeline$sel:pipeline:Pipeline$sel:pLayout:Pipeline$sel:pDescLayouts:Pipeline allocateWithallocatePhysicalphysicalDeviceInfoqueueRequirementsdeviceHasSwapchaindeviceHasTimelineSemaphoresallocateLogical noSuchThingSource ObserverIOMerge$sel:mWorker:Merge$sel:mKey:Merge$sel:mOutput:MergeTimed$sel:tWorker:Timed$sel:tKey:Timed$sel:tActive:Timed$sel:tConfig:Timed$sel:tOutput:TimedCell HasOutput GetOutput getOutput HasConfig GetConfig getConfigHasInputGetInputgetInputVar Versioned$sel:vVersion:Versioned$sel:vData:VersionednewVarstateVar stateVarMapreadVar pushInput pushInputSTM updateInputupdateInputSTM getInputDatagetInputDataSTM modifyConfigmodifyConfigSTM pushOutput pushOutputSTM updateOutputupdateOutputSTM getOutputDatagetOutputDataSTM spawnCell spawnTimed_ spawnTimed spawnMerge1 spawnMerge2 spawnMerge3 spawnMerge4 spawnMergeT newObserverIO observeIO observeIO_readObservedIO newSource pubSource subSource$fOrdVersioned $fEqVersioned $fHasInput(,)$fHasInputTVar$fHasConfigTVar$fHasOutput(,)$fHasOutputTVar$fHasOutputTimed$fHasConfigTimed$fHasOutputMerge$fShowVersioned$fFunctorVersioned$fFoldableVersioned$fTraversableVersioned SwapchainInfo$sel:siSwapchain:SwapchainInfo($sel:siSwapchainReleaseKey:SwapchainInfo $sel:siPresentMode:SwapchainInfo"$sel:siMinImageCount:SwapchainInfo"$sel:siSurfaceFormat:SwapchainInfo&$sel:siSurfaceColorspace:SwapchainInfo $sel:siDepthFormat:SwapchainInfo $sel:siMultisample:SwapchainInfo$sel:siAnisotropy:SwapchainInfo $sel:siImageExtent:SwapchainInfo$sel:siSurface:SwapchainInfoSwapchainResources$sel:srInfo:SwapchainResources$$sel:srImageViews:SwapchainResources $sel:srImages:SwapchainResources!$sel:srRelease:SwapchainResources#$sel:srScreenVar:SwapchainResourcesallocSwapchainResourcesrecreateSwapchainResourcescreateSwapchainthrewSwapchainError setDynamicsetDynamicFullscreen $fHasSwapchainSwapchainResourcesOptions$sel:optionsVerbose:Options$sel:optionsMaxFPS:Options$sel:optionsPresent:Options$sel:optionsMsaa:Options$sel:optionsFullscreen:Options$sel:optionsDisplay:Options$sel:optionsSize:Options $sel:optionsRecyclerWait:Options getOptionsoptionsP $fShowOptionsHKDRecycledResources0$sel:rrImageAvailableSemaphore:RecycledResources0$sel:rrRenderFinishedSemaphore:RecycledResources$sel:rrQueues:RecycledResources$sel:rrData:RecycledResourcesGPUWorkFrame$sel:fIndex:Frame$sel:fWindow:Frame$sel:fSurface:Frame$sel:fPresent:Frame$sel:fMSAA:Frame$sel:fSwapchainResources:Frame$sel:fRenderpass:Frame$sel:fPipelines:Frame'$sel:fRenderFinishedHostSemaphore:Frame$sel:fStageResources:Frame$sel:fGPUWork:Frame$sel:fResources:Frame$sel:fRecycledResources:FrameStage$sel:sTitle:Stage$sel:sAllocateRP:Stage$sel:sAllocateP:Stage$sel:sInitialRS:Stage$sel:sInitialRR:Stage$sel:sBeforeLoop:Stage$sel:sUpdateBuffers:Stage$sel:sRecordCommands:Stage$sel:sAfterLoop:Stage StageFrameRIO StageSetupRIOStageRIO StageSwitchStageSwitchPendingStageSwitchHandledStageSwitchVar StackStageStackStageContinue NextStageFinishReplace PushRestart PushFreeze StageStack GlobalHandles$sel:ghOptions:GlobalHandles$sel:ghWindow:GlobalHandles$sel:ghSurface:GlobalHandles$sel:ghInstance:GlobalHandles#$sel:ghPhysicalDevice:GlobalHandles'$sel:ghPhysicalDeviceInfo:GlobalHandles$sel:ghDevice:GlobalHandles$sel:ghAllocator:GlobalHandles$sel:ghQueues:GlobalHandles$sel:ghScreenVar:GlobalHandles $sel:ghStageSwitch:GlobalHandles askScreenVar$fMonadResourceRIO$fHasLogFunc(,)$fHasSwapchainFrame$fHasStateRefst(,)$fHasVulkanGlobalHandlesExtend Compatible HasDescSet getDescSetwithBoundDescriptorSets0extendDS$fHasDescSettag(,)$fHasDescSettagFrame $fHasDescSettagRecycledResources BoxProcessOriginBeginMiddleEnd Alignment$sel:alignX:Alignment$sel:alignY:AlignmentBox$sel:boxPosition:Box$sel:boxSize:Box RightBottom RightMiddleRightTop CenterBottomCenter CenterTop LeftBottom LeftMiddleLeftTop trackScreenpadAbs boxPadAbs fitPlaceAbs boxFitPlace boxFitScalesplitsRelStatic sharePadsH sharePadsV sharePads hSplitRel vSplitRel boxRectAbsboxTransformAbs whenInBoxP pointInBox $fEqOrigin $fOrdOrigin $fShowOrigin $fEnumOrigin$fBoundedOrigin$fEqBox$fOrdBox $fShowBox hBoxShares hBoxSplitRel vBoxShares vBoxSplitRelplaceBoxplace midpointsrangesnewStageSwitchVartrySwitchStagetrySwitchStageSTM getNextStageSink$sel:signal:Sink MonadSinkspawnCallbackcallback mkCallback registerManyProcesshandlerViewOrbitalInput"$sel:orbitAzimuth:ViewOrbitalInput!$sel:orbitAscent:ViewOrbitalInput#$sel:orbitDistance:ViewOrbitalInput $sel:orbitScale:ViewOrbitalInput!$sel:orbitTarget:ViewOrbitalInput$sel:orbitUp:ViewOrbitalInput $sel:orbitRight:ViewOrbitalInput ViewProcessView$sel:viewTransform:View$sel:viewTransformInv:View$sel:viewPosition:View$sel:viewDirection:ViewProjectionParamsProjectionInput%$sel:projectionParams:ProjectionInput#$sel:projectionNear:ProjectionInput"$sel:projectionFar:ProjectionInputProjectionProcess Projection#$sel:projectionTransform:Projection!$sel:projectionInverse:ProjectionProjectionKind Perspective OrthographicPROJECTION_FARPROJECTION_NEARspawnProjectionspawnProjectionWithspawnPerspectivemkTransformPerspectivespawnOrthoPixelsCenteredmkTransformOrthoPixelsCenteredinitialOrbitalInput mkViewOrbitalmkViewOrbital_$fShowViewOrbitalInput $fShowView$fShowProjection$fGenericProjection$fEqProjectionKind$fOrdProjectionKind$fShowProjectionKind$fEnumProjectionKind$fBoundedProjectionKind$fGenericProjectionKindControlsProcessControls$sel:panHorizontal:Controls$sel:panVertical:Controls$sel:turnAzimuth:Controls$sel:turnInclination:ControlsspawnViewOrbital spawnControls panInstant$fFunctorControls$fFoldableControls$fTraversableControlsHeadless$sel:hInstance:Headless!$sel:hPhysicalDeviceInfo:Headless$sel:hPhysicalDevice:Headless$sel:hDevice:Headless$sel:hAllocator:Headless$sel:hQueues:HeadlesssetupvmaVulkanFunctions setupHeadless deviceProps debugUtils headlessReqs$fHasVulkanHeadlessinitialadvancerun queueSubmitinitialRecycledResources timeoutError renderFramerunStackstepCode$sel:unCode:Code compileVert compileFrag compileComp targetEnv $fShowCode$fEqCode $fOrdCode$fIsStringCode glslStages glslPipelineshash33usePass beginInfosetViewportScissor Generically1$fAlternativeGenerically1$fApplicativeGenerically1$fFunctorGenerically1size enumeratetoVectortoVectorStorable $fEqExample $fOrdExample $fShowExample$fFunctorExample$fFoldableExample$fTraversableExample$fGeneric1TYPEExample$fApplicativeExampleParams Collection$sel:linearMipRepeat:Collection$sel:linearMip:Collection$sel:linearRepeat:Collection$sel:linear:Collection $sel:nearestMipRepeat:Collection$sel:nearestMip:Collection$sel:nearestRepeat:Collection$sel:nearest:Collectionparamsindices allocateFrom createInfo$fShowCollection$fFunctorCollection$fFoldableCollection$fTraversableCollection$fGeneric1TYPECollection$fApplicativeCollection$sel:mb1:Collection$sel:mb2:Collection$sel:mb3:Collection$sel:mb4:Collection$sel:mb5:Collection$sel:mb6:Collection$sel:mb7:Collection$sel:mb8:CollectionmouseButtonState whenPressed whenReleasedcollectionGlfwatGlfw$fEqCollection$fOrdCollection ClickHandlerStages$sel:rgen:Stages$sel:rint:Stages$sel:rahit:Stages$sel:rchit:Stages$sel:rmiss:Stages$sel:rcall:Stages$fStageInfoStages $fEqStages $fOrdStages $fShowStages$fFunctorStages$fFoldableStages$fTraversableStages$fGeneric1TYPEStages$fApplicativeStages allocatePools withPoolsoneshot_CompressedError ZstdError EmptyFile Compressed$sel:getCompressed:Compressed compressBytesdecompressBytes fromFileWithloadCompressedcompressedExts$fShowCompressed$fExceptionCompressedError$fEqCompressedError$fShowCompressedErrorAtlas$sel:sizeTiles:Atlas$sel:sizePx:Atlas$sel:tileSizePx:Atlas$sel:marginPx:Atlas$sel:uvScale:Atlas fromTileSize fromImageSize $fEqAtlas $fShowAtlas$fGenericAtlasexecevallocallocal_ register_attach attachAsynclogDebugScene$sel:scBeforeLoop:Scene$sel:scUpdateBuffers:Scene$sel:scRecordCommands:SceneNoFrameResources NoRunState NoResources Resources$sel:rInitialRS:Resources$sel:rInitialRR:Resources NoRendering NoPipelines NoRenderPass Rendering$sel:rAllocateRP:Rendering$sel:rAllocateP:Renderingassemble noRendering noResources$fRenderPassNoRenderPass $fMonoidScene$fSemigroupScene stackStagebootstrapStage engineMainengineMainWithBytes BytesZstdFileload embedFile $fShowSource"$fHasFieldSymbol"label"SourceMaybeScopeFilesDirs filePaths filePatterns mkDeclsWithgetFileListPieces $fEqScope $fOrdScope $fShowScope $fEnumScope$fBoundedScope$fGenericScopecreate forPipelineobject objectOriginallocateSetsFromObserverCoherent Allocated$sel:aBuffer:Allocated$sel:aAllocation:Allocated$sel:aAllocationInfo:Allocated$sel:aCapacity:Allocated$sel:aUsed:Allocated$sel:aUsage:Allocated$sel:aLabel:AllocatedStoreStagedCoherentallocateCoherentcreateCoherent createStagedregisterdestroy peekCoherent pokeCoherentupdateCoherentupdateCoherentResize_ copyBuffer_newObserverCoherentobserveCoherentResize_observeCoherentSingle$fHasObjectTypeAllocated$fShowAllocatedUpdateCoherent VertexBuffers createInitialdestroyCurrent newCoherentobserveCoherentgenericCreateInitialgenericDestroyCurrentgenericUpdateCoherent$fGVertexBuffersM1$fGVertexBuffers:*:$fGVertexBuffersM10$fGVertexBuffersM11$fGVertexBuffersK1$fVertexBuffersAllocated$fGUpdateCoherent:*::*:$fGUpdateCoherentM1M1$fGUpdateCoherentK1K1$fUpdateCoherentAllocatedVectorExampleBuffers ExampleStoresExampleExampleF$sel:x:Example$sel:y:Exampleupdate $fUpdateCoherentExampleFExampleF$fVertexBuffersExampleF$fGenericExampleF$fShowExampleF$fShowExampleF0$fShowExampleF1DstImageAllocatedImage $sel:aiAllocation:AllocatedImage$sel:aiExtent:AllocatedImage$sel:aiFormat:AllocatedImage$sel:aiImage:AllocatedImage$sel:aiImageView:AllocatedImage $sel:aiImageRange:AllocatedImage allocateView allocateDstcopyBufferToDstupdateFromStorabletransitionLayoutcopyBufferToImage inflateExtent subresource$fShowAllocatedImage TextureLoader TextureLayers textureLayersArrayOfFlatCubeMapTexture$sel:tFormat:Texture$sel:tMipLevels:Texture$sel:tLayers:Texture$sel:tAllocatedImage:Texture TextureError LoadError LayerErrorMipLevelsError ArrayErrordebugNameCollectioncreateImageViewimageCIimageAllocationCI stageBufferCIstageAllocationCI withSize2d withSize3d$fExceptionTextureError!$fHasFieldSymbol"size"TextureVec2$fTextureLayersArrayOf$fTextureLayersFlat$fTextureLayersCubeMap $fShowTexture$fEqTextureError$fOrdTextureError$fShowTextureError loadBytesloadKtx2loadKtx1$sel:textures:Collection$sel:fonts:CollectionattachDebugNames$fGenericCollection Offscreen$sel:oRenderPass:Offscreen$sel:oExtent:Offscreen$sel:oColor:Offscreen$sel:oDepth:Offscreen$sel:oLayers:Offscreen$sel:oMipLevels:Offscreen$sel:oFrameBuffer:Offscreen$sel:oRenderArea:Offscreen$sel:oClear:Offscreen$sel:oRelease:OffscreenSettings$sel:sLabel:Settings$sel:sExtent:Settings$sel:sFormat:Settings$sel:sColorLayout:Settings$sel:sDepthFormat:Settings$sel:sDepthLayout:Settings$sel:sLayers:Settings$sel:sMultiView:Settings$sel:sSamples:Settings$sel:sMipMap:Settings colorTexture colorCube depthTexture depthCube$fRenderPassOffscreen$fHasRenderPassOffscreen $fEqSettings$fShowSettingsSpecializationConst packConstDataspecializationDataShader$sel:sModules:Shader$sel:sPipelineStages:ShaderwithSpecialization$fSpecialization[]$fSpecialization()$fSpecialization(,,,,,)$fSpecialization(,,,,)$fSpecialization(,,,)$fSpecialization(,,)$fSpecialization(,)$fSpecializationConstBool$fSpecializationConstFloat$fSpecializationConstInt32$fSpecializationConstWord32$fSpecializationBool$fSpecializationFloat$fSpecializationInt32$fSpecializationWord32HasVertexInputBindingsvertexInputBindingsConfig$sel:cStages:Config$sel:cReflect:Config$sel:cVertexInput:Config$sel:cDescLayouts:Config$sel:cPushConstantRanges:Config$sel:cBlend:Config$sel:cDepthWrite:Config$sel:cDepthTest:Config$sel:cDepthCompare:Config$sel:cTopology:Config$sel:cCull:Config$sel:cDepthBias:Config$sel:cSpecialization:Config Configure StageReflect StageSpirv StageCode$sel:vert:Stages$sel:tesc:Stages$sel:tese:Stages$sel:geom:Stages$sel:frag:Stages basicStages vertexOnly baseConfigpushPlaceholderbind vertexInput vertexFormatinstanceFormat!$fHasVertexInputBindingsTransform$fHasVertexInputBindings() IndexRange$sel:irFirstIndex:IndexRange$sel:irIndexCount:IndexRangeGHasVertexBuffersgVertexBuffersgInstanceCountHasVertexBuffersVertexBuffersOfgetVertexBuffersgetInstanceCountVertex$sel:vPosition:Vertex$sel:vAttrs:VertexVertex3dVertex2dIndexed$sel:iLabel:Indexed$sel:iPositions:Indexed$sel:iAttrs:Indexed$sel:iIndices:Indexed vertexAttrsvertexAttrsPosgenericGetVertexBuffersgenericGetInstanceCount createStagedLcreateCoherentEmptyregisterIndexed_destroyIndexed$fHasVertexInputBindingsVertex$fGHasVertexBuffers:*:$fGHasVertexBuffersM1$fGHasVertexBuffersK1$fHasVertexBuffersAllocated$fHasVertexBuffers()$fStorableIndexRange$fSerialiseIndexRange$fEqIndexRange$fOrdIndexRange$fShowIndexRange$fGenericIndexRange $fEqVertex $fOrdVertex $fShowVertex$fFunctorVertex$fFoldableVertex$fTraversableVertex $fShowIndexedHasRangegetRange adjustRange Measurements$sel:mMin:Measurements$sel:mMax:Measurements$sel:mMean:Measurements$sel:mStd:Measurements TextureParams$sel:tpScale:TextureParams$sel:tpOffset:TextureParams$sel:tpGamma:TextureParams$sel:tpSamplerId:TextureParams$sel:tpTextureId:TextureParams TexturedNode$sel:tnNode:TexturedNode$sel:tnBase:TexturedNode$sel:tnEmissive:TexturedNode$sel:tnNormal:TexturedNode$sel:tnOcclusion:TexturedNode%$sel:tnMetallicRoughness:TexturedNode TexturedNodesNode$sel:nBoundingSphere:Node$sel:nTransformBB:Node$sel:nRange:Node$sel:nMeasurements:NodeNodesNodePartitions$sel:npOpaque:NodePartitions$sel:npBlended:NodePartitions NodeGroup NodeOpaque NodeBlendedMeta$sel:mOpaqueIndices:Meta$sel:mBlendedIndices:Meta$sel:mOpaqueNodes:Meta$sel:mBlendedNodes:Meta$sel:mBoundingSphere:Meta$sel:mTransformBB:Meta$sel:mMeasurements:Meta AxisAligned$sel:aaX:AxisAligned$sel:aaY:AxisAligned$sel:aaZ:AxisAlignedmiddleAamiddlesizeAa measureAaWith measureAaencodeStorabledecodeStorable$fSerialiseAxisAligned$fStorableAxisAligned$fApplicativeAxisAligned$fStorableTextureParams$fZeroTextureParams$fSerialiseMeasurements$fStorableMeasurements$fGStorableNode$fEqNode$fGStorableTexturedNode$fSerialiseMeta$fEqMeta$fGStorableMeta$fHasRangeTexturedNode$fHasRangeNode $fShowMeta $fGenericMeta$fEqTexturedNode$fShowTexturedNode$fGenericTexturedNode $fShowNode $fGenericNode$fEqMeasurements$fOrdMeasurements$fShowMeasurements$fGenericMeasurements$fEqTextureParams$fShowTextureParams$fGenericTextureParams$fEqNodePartitions$fShowNodePartitions$fFunctorNodePartitions$fFoldableNodePartitions$fTraversableNodePartitions $fEqNodeGroup$fOrdNodeGroup$fShowNodeGroup$fEnumNodeGroup$fBoundedNodeGroup$fEqAxisAligned$fOrdAxisAligned$fShowAxisAligned$fFunctorAxisAligned$fFoldableAxisAligned$fTraversableAxisAligned$fGenericAxisAligned aabbTranslate aabbScaleboundingSphere VER_TWEAKS VER_BREAKS encodeFile encodeItems encodeCBOR loadIndexed loadBlobs decodeItems decodeCBORguardEq triangle_ triangles_quadsindexed indexedRanges indexedParts indexedPosindexedPosRangesunsafeIndexedRangesunsafeIndexedParts$sel:comp:StagesCompute$sel:cComputeCode:Config^ ObserversConfigureComputeConfigureGraphicsObserver spawnReflect loadConfigloadConfigReflectnewObserverGraphicsobserveGraphicsnewObserverComputeobserveCompute observeField dumpPipelines MonadResourcedefaultPresentModesrequiredUsageFlagsghc-prim GHC.TypesTrueversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir waitTwiceGHC.ShowshowcompileShaderQ