Preallocate descriptors during vkCreateDescriptorPool().
diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md
index 0718984..f2b1c38 100644
--- a/Docs/Whats_New.md
+++ b/Docs/Whats_New.md
@@ -20,8 +20,8 @@
- Add support for using Metal argument buffers for shader resources, by setting
`MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS` environment variable (enabled by default).
-- Preallocate Metal argument buffer (`MTLBuffer`) and descriptor set memory space during
- `vkCreateDescriptorPool()`, to improve performance during descriptor set allocations.
+- To improve performance during descriptor set allocations, preallocate memory for descriptor sets, descriptors,
+ and the Metal argument buffer (one `MTLBuffer` per descriptor pool) during `vkCreateDescriptorPool()`.
- Add support for embedding inline uniform content directly in Metal argument buffers, by setting
`MVK_CONFIG_EMBED_INLINE_BLOCKS_IN_METAL_ARGUMENT_BUFFER` environment variable (disabled by default).
- Support fast math on MSL compiler via `MVKConfiguration::fastMathEnabled` configuration
diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h
index 4b9ea45..56578fd 100644
--- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h
+++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h
@@ -164,14 +164,14 @@
* Using a Metal 2D texture allows Vulkan 1D textures to support this additional functionality.
* This setting is enabled by default, and MoltenVK will use a Metal 2D texture for each Vulkan 1D image.
*
- * 7. The MVK_CONFIG_PREALLOCATE_DESCRIPTORS runtime environment variable or MoltenVK compile-time
- * build setting controls whether MoltenVK should preallocate memory in each VkDescriptorPool
- * according to the values of the VkDescriptorPoolSize parameters. Doing so may improve
- * descriptor set allocation performance at a cost of preallocated application memory.
- * If this setting is disabled, the descriptors required for a descriptor set will
- * be dynamically allocated in application memory when the descriptor set itself is allocated.
- * This setting is disabled by default, and MoltenVK will dynamically allocate descriptors
- * when the containing descriptor set is allocated.
+ * 7. The MVK_CONFIG_PREALLOCATE_DESCRIPTORS runtime environment variable or MoltenVK
+ * compile-time build setting controls whether MoltenVK should preallocate memory during
+ * vkCreateDescriptorPool() according to the values of the VkDescriptorPoolSize parameters.
+ * Doing so may improve descriptor set allocation performance at a cost of preallocated
+ * application memory. If this setting is disabled, the descriptors required for
+ * a descriptor set will be dynamically allocated in application memory when the
+ * descriptor set itself is allocated. This setting is enabled by default,
+ * and MoltenVK will preallocate descriptors during vkCreateDescriptorPool().
*
* 8. The MVK_CONFIG_USE_COMMAND_POOLING runtime environment variable or MoltenVK compile-time
* build setting controls whether MoltenVK should use pools to manage memory used when
diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm
index 61f09dd..a81c71d 100644
--- a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm
+++ b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm
@@ -424,7 +424,7 @@
#pragma mark MVKDescriptorTypePreallocation
#ifndef MVK_CONFIG_PREALLOCATE_DESCRIPTORS
-# define MVK_CONFIG_PREALLOCATE_DESCRIPTORS 0
+# define MVK_CONFIG_PREALLOCATE_DESCRIPTORS 1
#endif
// Returns whether descriptors should be preallocated in the descriptor pools