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