* Now supports caching of generic async operations, with resource accounting done by explicit calls to acquire disposable objects.
* When a resource is requested that would exceed the hard limit specified in an option, cache items are purged until the resource can be satisfied.
* Items in the cache are reference counted, and will not be purged while referenced.
#jira
[CL 29563686 by ben marsh in ue5-main branch]
Represent class initialization logic with a new `VConstructor` type, holding a sequence of interleaved fields and blocks. At class construction time, flatten these sequences such that class bodies run in order, and subclasses run before superclasses. At object construction time, extract a sequence of `VProcedure`s representing the non-overridden field initializers and blocks to invoke.
Give these initializers and blocks (as well as member functions) access to their `Self` object via a `ParentScope` capture in `VFunction`, copied to register 0 at call time. Rather than close over `Self` at object construction time, do it at field load time, so these members can be shared between all instances of a class as `VProcedures`, either in the `VConstructor` or `VShape`. In the future, the `ParentScope` field for non-member functions may instead point to an environment.
#rb saam.barati, yiliang.siew
[CL 29530839 by russell johnston in ue5-main branch]
- SubmitTool now will set the projectdir to the Restricted location only if not-staged
- Disabled some settings in SubmitTool to reduce unused staged files (dlls, etc)
- Disabled VULKAN_HAS_DEBUGGING_ENABLED when IS_PROGRAM, and no longer stage all the VkLayers when staging a Program (helps save over 20mb from standalone programs on Windows)
- No longer force ShaderFormats to true when building a program that is TargetPlatform enabled
#rb j.baumgartner
[CL 29527715 by josh adams in ue5-main branch]
* Currently supports allocation from the global heap (GlobalHeapAllocator), through memory mapped files (VirtualMemoryAllocator), or through the standard .NET shared MemoryPool (PoolAllocator).
* ChunkedMemoryWriter now accepts an optional IMemoryAllocator argument for configuring where to obtain chunks from, defaulting to the previous behavior of using the shared .NET memory pool.
* Added a RefCountedMemoryWriter class which can implement reference counting on handles returned by IMemoryAllocator instances.
#jira
[CL 29523179 by ben marsh in ue5-main branch]