- Add MVKPrefillMetalCommandBuffersStyle enumeration to enable prefilling,
and configure memory recovery options.
- Redefine MVKConfiguration::prefillMetalCommandBuffers as a value from
MVKPrefillMetalCommandBuffersStyle instead of a simple boolean. Set the
values of MVKPrefillMetalCommandBuffersStyle and the default value of
MVKConfiguration::prefillMetalCommandBuffers to be compatible with
legacy use of this setting as a simple enable/disable boolean value.
- MVKCommandEncoder track prefill style, and support option to maintain
a Metal autorelease pool that is created on vkBeginCommandBuffer()
and drained on vkEndCommandBuffer(), when prefiling a command buffer
from a single thread, and an option to wrap each command addition in
a separate @autoreleasepool{} scope to create and drain an autorelease
pool at every command addition to the Vulkan command buffer, when
prefilling a single command buffer from multiple threads.
- MVKCommandEncoder retain Metal encoders when prefilling, because
prefilling may span multiple autorelease pools.
- MVKCommandEncoder clean up memory leak of MTLBlitPassDescriptor
during prefilling.
- MVKCommandEncoder rearrange declarations of MVKCommandUse member
variables to tighten up class memory use (unrelated).
- MVKCommandBuffer remove unnecessary inline declarations (unrelated).
- Change MoltenVK logging to use stdout instead of stderr (unrelated).