diff --git a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
index e3edc7f..cf3c94c 100644
--- a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
+++ b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
@@ -401,6 +401,7 @@
 		A9B51BD2225E986A00AC74D2 /* MVKOSExtensions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MVKOSExtensions.mm; sourceTree = "<group>"; };
 		A9B51BD6225E986A00AC74D2 /* MVKOSExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKOSExtensions.h; sourceTree = "<group>"; };
 		A9B8EE0A1A98D796009C5A02 /* libMoltenVK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMoltenVK.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		A9C83DCD24533E22003E5261 /* MVKCommandTypePools.def */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = MVKCommandTypePools.def; sourceTree = "<group>"; };
 		A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MoltenVKShaderConverter.xcodeproj; path = ../MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj; sourceTree = "<group>"; };
 		A9C96DCE1DDC20C20053187F /* MVKMTLBufferAllocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKMTLBufferAllocation.h; sourceTree = "<group>"; };
 		A9C96DCF1DDC20C20053187F /* MVKMTLBufferAllocation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MVKMTLBufferAllocation.mm; sourceTree = "<group>"; };
@@ -479,6 +480,7 @@
 				A94FB77B1C7DFB4800632CA3 /* MVKCommandPool.mm */,
 				A95870F61C90D29F009EB096 /* MVKCommandResourceFactory.h */,
 				A95870F71C90D29F009EB096 /* MVKCommandResourceFactory.mm */,
+				A9C83DCD24533E22003E5261 /* MVKCommandTypePools.def */,
 				A9C96DCE1DDC20C20053187F /* MVKMTLBufferAllocation.h */,
 				A9C96DCF1DDC20C20053187F /* MVKMTLBufferAllocation.mm */,
 				A9E4B7881E1D8AF10046A4CE /* MVKMTLResourceBindings.h */,
diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdDebug.mm b/MoltenVK/MoltenVK/Commands/MVKCmdDebug.mm
index b05a43e..1694441 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCmdDebug.mm
+++ b/MoltenVK/MoltenVK/Commands/MVKCmdDebug.mm
@@ -41,8 +41,6 @@
 #pragma mark -
 #pragma mark MVKCmdDebugMarkerBegin
 
-MVKFuncionOverride_getTypePool(DebugMarkerBegin)
-
 // Vulkan debug groups are more general than Metal's.
 // If a renderpass is active, push on the render command encoder, otherwise push on the command buffer.
 void MVKCmdDebugMarkerBegin::encode(MVKCommandEncoder* cmdEncoder) {
@@ -58,8 +56,6 @@
 #pragma mark -
 #pragma mark MVKCmdDebugMarkerEnd
 
-MVKFuncionOverride_getTypePool(DebugMarkerEnd)
-
 VkResult MVKCmdDebugMarkerEnd::setContent(MVKCommandBuffer* cmdBuff) { return VK_SUCCESS; }
 
 // Vulkan debug groups are more general than Metal's.
@@ -77,8 +73,6 @@
 #pragma mark -
 #pragma mark MVKCmdDebugMarkerInsert
 
-MVKFuncionOverride_getTypePool(DebugMarkerInsert)
-
 void MVKCmdDebugMarkerInsert::encode(MVKCommandEncoder* cmdEncoder) {
 	[cmdEncoder->getMTLEncoder() insertDebugSignpost: _markerName];
 }
diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm b/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm
index 4a4fc48..6ae55f1 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm
+++ b/MoltenVK/MoltenVK/Commands/MVKCmdDispatch.mm
@@ -28,8 +28,6 @@
 #pragma mark -
 #pragma mark MVKCmdDispatch
 
-MVKFuncionOverride_getTypePool(Dispatch)
-
 VkResult MVKCmdDispatch::setContent(MVKCommandBuffer* cmdBuff,
 									uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ,
 									uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) {
@@ -70,8 +68,6 @@
 #pragma mark -
 #pragma mark MVKCmdDispatchIndirect
 
-MVKFuncionOverride_getTypePool(DispatchIndirect)
-
 VkResult MVKCmdDispatchIndirect::setContent(MVKCommandBuffer* cmdBuff, VkBuffer buffer, VkDeviceSize offset) {
 	MVKBuffer* mvkBuffer = (MVKBuffer*)buffer;
 	_mtlIndirectBuffer = mvkBuffer->getMTLBuffer();
diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdDraw.mm b/MoltenVK/MoltenVK/Commands/MVKCmdDraw.mm
index df5de95..e8fbe51 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCmdDraw.mm
+++ b/MoltenVK/MoltenVK/Commands/MVKCmdDraw.mm
@@ -28,8 +28,6 @@
 #pragma mark -
 #pragma mark MVKCmdBindVertexBuffers
 
-MVKFuncionOverride_getTypePool(BindVertexBuffers)
-
 VkResult MVKCmdBindVertexBuffers::setContent(MVKCommandBuffer* cmdBuff,
 											 uint32_t startBinding,
 											 uint32_t bindingCount,
@@ -59,8 +57,6 @@
 #pragma mark -
 #pragma mark MVKCmdBindIndexBuffer
 
-MVKFuncionOverride_getTypePool(BindIndexBuffer)
-
 VkResult MVKCmdBindIndexBuffer::setContent(MVKCommandBuffer* cmdBuff,
 										   VkBuffer buffer,
 										   VkDeviceSize offset,
@@ -81,8 +77,6 @@
 #pragma mark -
 #pragma mark MVKCmdDraw
 
-MVKFuncionOverride_getTypePool(Draw)
-
 VkResult MVKCmdDraw::setContent(MVKCommandBuffer* cmdBuff,
 								uint32_t vertexCount,
 								uint32_t instanceCount,
@@ -271,8 +265,6 @@
 #pragma mark -
 #pragma mark MVKCmdDrawIndexed
 
-MVKFuncionOverride_getTypePool(DrawIndexed)
-
 VkResult MVKCmdDrawIndexed::setContent(MVKCommandBuffer* cmdBuff,
 									   uint32_t indexCount,
 									   uint32_t instanceCount,
@@ -508,8 +500,6 @@
 #pragma mark -
 #pragma mark MVKCmdDrawIndirect
 
-MVKFuncionOverride_getTypePool(DrawIndirect)
-
 VkResult MVKCmdDrawIndirect::setContent(MVKCommandBuffer* cmdBuff,
 										VkBuffer buffer,
 										VkDeviceSize offset,
@@ -754,8 +744,6 @@
 #pragma mark -
 #pragma mark MVKCmdDrawIndexedIndirect
 
-MVKFuncionOverride_getTypePool(DrawIndexedIndirect)
-
 VkResult MVKCmdDrawIndexedIndirect::setContent(MVKCommandBuffer* cmdBuff,
 											   VkBuffer buffer,
 											   VkDeviceSize offset,
diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm b/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm
index e93e65f..01b8daf 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm
+++ b/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm
@@ -30,8 +30,6 @@
 #pragma mark -
 #pragma mark MVKCmdPipelineBarrier
 
-MVKFuncionOverride_getTypePool(PipelineBarrier)
-
 VkResult MVKCmdPipelineBarrier::setContent(MVKCommandBuffer* cmdBuff,
 										   VkPipelineStageFlags srcStageMask,
 										   VkPipelineStageFlags dstStageMask,
@@ -130,8 +128,6 @@
 #pragma mark -
 #pragma mark MVKCmdBindPipeline
 
-MVKFuncionOverride_getTypePool(BindPipeline)
-
 VkResult MVKCmdBindPipeline::setContent(MVKCommandBuffer* cmdBuff,
 										VkPipelineBindPoint pipelineBindPoint,
 										VkPipeline pipeline) {
@@ -158,8 +154,6 @@
 #pragma mark -
 #pragma mark MVKCmdBindDescriptorSets
 
-MVKFuncionOverride_getTypePool(BindDescriptorSets)
-
 VkResult MVKCmdBindDescriptorSets::setContent(MVKCommandBuffer* cmdBuff,
 											  VkPipelineBindPoint pipelineBindPoint,
 											  VkPipelineLayout layout,
@@ -197,8 +191,6 @@
 #pragma mark -
 #pragma mark MVKCmdPushConstants
 
-MVKFuncionOverride_getTypePool(PushConstants)
-
 VkResult MVKCmdPushConstants::setContent(MVKCommandBuffer* cmdBuff,
 										 VkPipelineLayout layout,
 										 VkShaderStageFlags stageFlags,
@@ -234,8 +226,6 @@
 #pragma mark -
 #pragma mark MVKCmdPushDescriptorSet
 
-MVKFuncionOverride_getTypePool(PushDescriptorSet)
-
 VkResult MVKCmdPushDescriptorSet::setContent(MVKCommandBuffer* cmdBuff,
 											 VkPipelineBindPoint pipelineBindPoint,
 											 VkPipelineLayout layout,
@@ -330,8 +320,6 @@
 #pragma mark -
 #pragma mark MVKCmdPushDescriptorSetWithTemplate
 
-MVKFuncionOverride_getTypePool(PushDescriptorSetWithTemplate)
-
 VkResult MVKCmdPushDescriptorSetWithTemplate::setContent(MVKCommandBuffer* cmdBuff,
 														 VkDescriptorUpdateTemplateKHR descUpdateTemplate,
 														 VkPipelineLayout layout,
@@ -394,8 +382,6 @@
 #pragma mark -
 #pragma mark MVKCmdSetResetEvent
 
-MVKFuncionOverride_getTypePool(SetResetEvent)
-
 VkResult MVKCmdSetResetEvent::setContent(MVKCommandBuffer* cmdBuff,
 										 VkEvent event,
 										 VkPipelineStageFlags stageMask,
@@ -414,8 +400,6 @@
 #pragma mark -
 #pragma mark MVKCmdWaitEvents
 
-MVKFuncionOverride_getTypePool(WaitEvents)
-
 VkResult MVKCmdWaitEvents::setContent(MVKCommandBuffer* cmdBuff,
 									  uint32_t eventCount,
 									  const VkEvent* pEvents,
diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdQueries.mm b/MoltenVK/MoltenVK/Commands/MVKCmdQueries.mm
index 7fa703a..f5360ac 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCmdQueries.mm
+++ b/MoltenVK/MoltenVK/Commands/MVKCmdQueries.mm
@@ -38,8 +38,6 @@
 #pragma mark -
 #pragma mark MVKCmdBeginQuery
 
-MVKFuncionOverride_getTypePool(BeginQuery)
-
 VkResult MVKCmdBeginQuery::setContent(MVKCommandBuffer* cmdBuff,
 									  VkQueryPool queryPool,
 									  uint32_t query,
@@ -61,8 +59,6 @@
 #pragma mark -
 #pragma mark MVKCmdEndQuery
 
-MVKFuncionOverride_getTypePool(EndQuery)
-
 void MVKCmdEndQuery::encode(MVKCommandEncoder* cmdEncoder) {
     _queryPool->endQuery(_query, cmdEncoder);
 }
@@ -71,8 +67,6 @@
 #pragma mark -
 #pragma mark MVKCmdWriteTimestamp
 
-MVKFuncionOverride_getTypePool(WriteTimestamp)
-
 VkResult MVKCmdWriteTimestamp::setContent(MVKCommandBuffer* cmdBuff,
 										  VkPipelineStageFlagBits pipelineStage,
 										  VkQueryPool queryPool,
@@ -93,8 +87,6 @@
 #pragma mark -
 #pragma mark MVKCmdResetQueryPool
 
-MVKFuncionOverride_getTypePool(ResetQueryPool)
-
 VkResult MVKCmdResetQueryPool::setContent(MVKCommandBuffer* cmdBuff,
 										  VkQueryPool queryPool,
 										  uint32_t firstQuery,
@@ -115,8 +107,6 @@
 #pragma mark -
 #pragma mark MVKCmdCopyQueryPoolResults
 
-MVKFuncionOverride_getTypePool(CopyQueryPoolResults)
-
 VkResult MVKCmdCopyQueryPoolResults::setContent(MVKCommandBuffer* cmdBuff,
 												VkQueryPool queryPool,
 												uint32_t firstQuery,
diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.h b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.h
index 330c21e..a41b4b9 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.h
+++ b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.h
@@ -107,10 +107,17 @@
 	MVKVectorInline<MVKCommandBuffer*, 64> _secondaryCommandBuffers;
 };
 
+
 #pragma mark -
 #pragma mark MVKCmdSetViewport
 
-/** Vulkan command to set the viewports. */
+/**
+ * Vulkan command to set the viewports.
+ * This is a template class to support different vector pre-allocations, so we can balance
+ * in-line memory allocation betweeen the very common case of a single viewport, and the
+ * maximal number, by choosing which concrete implementation to use based on viewport count.
+ */
+template <size_t N>
 class MVKCmdSetViewport : public MVKCommand {
 
 public:
@@ -125,14 +132,24 @@
 	MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
 
 	uint32_t _firstViewport;
-	MVKVectorInline<VkViewport, kMVKCachedViewportScissorCount> _viewports;
+	MVKVectorInline<VkViewport, N> _viewports;
 };
 
+// Concrete template class implemenations.
+typedef MVKCmdSetViewport<1> MVKCmdSetViewport1;
+typedef MVKCmdSetViewport<kMVKCachedViewportScissorCount> MVKCmdSetViewportMulti;
+
 
 #pragma mark -
 #pragma mark MVKCmdSetScissor
 
-/** Vulkan command to set the scissor rectangles. */
+/**
+ * Vulkan command to set the scissor rectangles.
+ * This is a template class to support different vector pre-allocations, so we can balance
+ * in-line memory allocation betweeen the very common case of a single scissor, and the
+ * maximal number, by choosing which concrete implementation to use based on scissor count.
+ */
+template <size_t N>
 class MVKCmdSetScissor : public MVKCommand {
 
 public:
@@ -147,9 +164,13 @@
 	MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
 
 	uint32_t _firstScissor;
-	MVKVectorInline<VkRect2D, kMVKCachedViewportScissorCount> _scissors;
+	MVKVectorInline<VkRect2D, N> _scissors;
 };
 
+// Concrete template class implemenations.
+typedef MVKCmdSetScissor<1> MVKCmdSetScissor1;
+typedef MVKCmdSetScissor<kMVKCachedViewportScissorCount> MVKCmdSetScissorMulti;
+
 
 #pragma mark -
 #pragma mark MVKCmdSetLineWidth
diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm
index d4a58a1..393341f 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm
+++ b/MoltenVK/MoltenVK/Commands/MVKCmdRenderPass.mm
@@ -28,8 +28,6 @@
 #pragma mark -
 #pragma mark MVKCmdBeginRenderPass
 
-MVKFuncionOverride_getTypePool(BeginRenderPass)
-
 VkResult MVKCmdBeginRenderPass::setContent(MVKCommandBuffer* cmdBuff,
 										   const VkRenderPassBeginInfo* pRenderPassBegin,
 										   VkSubpassContents contents) {
@@ -61,8 +59,6 @@
 #pragma mark -
 #pragma mark MVKCmdNextSubpass
 
-MVKFuncionOverride_getTypePool(NextSubpass)
-
 VkResult MVKCmdNextSubpass::setContent(MVKCommandBuffer* cmdBuff,
 									   VkSubpassContents contents) {
 	_contents = contents;
@@ -78,8 +74,6 @@
 #pragma mark -
 #pragma mark MVKCmdEndRenderPass
 
-MVKFuncionOverride_getTypePool(EndRenderPass)
-
 VkResult MVKCmdEndRenderPass::setContent(MVKCommandBuffer* cmdBuff) {
 	cmdBuff->recordEndRenderPass(this);
 	return VK_SUCCESS;
@@ -94,8 +88,6 @@
 #pragma mark -
 #pragma mark MVKCmdExecuteCommands
 
-MVKFuncionOverride_getTypePool(ExecuteCommands)
-
 VkResult MVKCmdExecuteCommands::setContent(MVKCommandBuffer* cmdBuff,
 										   uint32_t commandBuffersCount,
 										   const VkCommandBuffer* pCommandBuffers) {
@@ -117,12 +109,11 @@
 #pragma mark -
 #pragma mark MVKCmdSetViewport
 
-MVKFuncionOverride_getTypePool(SetViewport)
-
-VkResult MVKCmdSetViewport::setContent(MVKCommandBuffer* cmdBuff,
-									   uint32_t firstViewport,
-									   uint32_t viewportCount,
-									   const VkViewport* pViewports) {
+template <size_t N>
+VkResult MVKCmdSetViewport<N>::setContent(MVKCommandBuffer* cmdBuff,
+										  uint32_t firstViewport,
+										  uint32_t viewportCount,
+										  const VkViewport* pViewports) {
 	_firstViewport = firstViewport;
 	_viewports.clear();	// Clear for reuse
 	_viewports.reserve(viewportCount);
@@ -133,20 +124,23 @@
 	return VK_SUCCESS;
 }
 
-void MVKCmdSetViewport::encode(MVKCommandEncoder* cmdEncoder) {
-    cmdEncoder->_viewportState.setViewports(_viewports, _firstViewport, true);
+template <size_t N>
+void MVKCmdSetViewport<N>::encode(MVKCommandEncoder* cmdEncoder) {
+	cmdEncoder->_viewportState.setViewports(_viewports, _firstViewport, true);
 }
 
+template class MVKCmdSetViewport<1>;
+template class MVKCmdSetViewport<kMVKCachedViewportScissorCount>;
+
 
 #pragma mark -
 #pragma mark MVKCmdSetScissor
 
-MVKFuncionOverride_getTypePool(SetScissor)
-
-VkResult MVKCmdSetScissor::setContent(MVKCommandBuffer* cmdBuff,
-									  uint32_t firstScissor,
-									  uint32_t scissorCount,
-									  const VkRect2D* pScissors) {
+template <size_t N>
+VkResult MVKCmdSetScissor<N>::setContent(MVKCommandBuffer* cmdBuff,
+										 uint32_t firstScissor,
+										 uint32_t scissorCount,
+										 const VkRect2D* pScissors) {
 	_firstScissor = firstScissor;
 	_scissors.clear();	// Clear for reuse
 	_scissors.reserve(scissorCount);
@@ -157,16 +151,18 @@
 	return VK_SUCCESS;
 }
 
-void MVKCmdSetScissor::encode(MVKCommandEncoder* cmdEncoder) {
+template <size_t N>
+void MVKCmdSetScissor<N>::encode(MVKCommandEncoder* cmdEncoder) {
     cmdEncoder->_scissorState.setScissors(_scissors, _firstScissor, true);
 }
 
+template class MVKCmdSetScissor<1>;
+template class MVKCmdSetScissor<kMVKCachedViewportScissorCount>;
+
 
 #pragma mark -
 #pragma mark MVKCmdSetLineWidth
 
-MVKFuncionOverride_getTypePool(SetLineWidth)
-
 VkResult MVKCmdSetLineWidth::setContent(MVKCommandBuffer* cmdBuff,
 										float lineWidth) {
     _lineWidth = lineWidth;
@@ -185,8 +181,6 @@
 #pragma mark -
 #pragma mark MVKCmdSetDepthBias
 
-MVKFuncionOverride_getTypePool(SetDepthBias)
-
 VkResult MVKCmdSetDepthBias::setContent(MVKCommandBuffer* cmdBuff,
 										float depthBiasConstantFactor,
 										float depthBiasClamp,
@@ -208,8 +202,6 @@
 #pragma mark -
 #pragma mark MVKCmdSetBlendConstants
 
-MVKFuncionOverride_getTypePool(SetBlendConstants)
-
 VkResult MVKCmdSetBlendConstants::setContent(MVKCommandBuffer* cmdBuff,
 											 const float blendConst[4]) {
     _red = blendConst[0];
@@ -228,8 +220,6 @@
 #pragma mark -
 #pragma mark MVKCmdSetDepthBounds
 
-MVKFuncionOverride_getTypePool(SetDepthBounds)
-
 VkResult MVKCmdSetDepthBounds::setContent(MVKCommandBuffer* cmdBuff,
 										  float minDepthBounds,
 										  float maxDepthBounds) {
@@ -250,8 +240,6 @@
 #pragma mark -
 #pragma mark MVKCmdSetStencilCompareMask
 
-MVKFuncionOverride_getTypePool(SetStencilCompareMask)
-
 VkResult MVKCmdSetStencilCompareMask::setContent(MVKCommandBuffer* cmdBuff,
 												 VkStencilFaceFlags faceMask,
 												 uint32_t stencilCompareMask) {
@@ -269,8 +257,6 @@
 #pragma mark -
 #pragma mark MVKCmdSetStencilWriteMask
 
-MVKFuncionOverride_getTypePool(SetStencilWriteMask)
-
 VkResult MVKCmdSetStencilWriteMask::setContent(MVKCommandBuffer* cmdBuff,
 											   VkStencilFaceFlags faceMask,
 											   uint32_t stencilWriteMask) {
@@ -288,8 +274,6 @@
 #pragma mark -
 #pragma mark MVKCmdSetStencilReference
 
-MVKFuncionOverride_getTypePool(SetStencilReference)
-
 VkResult MVKCmdSetStencilReference::setContent(MVKCommandBuffer* cmdBuff,
 											   VkStencilFaceFlags faceMask,
 											   uint32_t stencilReference) {
diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm
index 37dfa34..cb9f410 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm
+++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm
@@ -47,8 +47,6 @@
 #pragma mark -
 #pragma mark MVKCmdCopyImage
 
-MVKFuncionOverride_getTypePool(CopyImage)
-
 VkResult MVKCmdCopyImage::setContent(MVKCommandBuffer* cmdBuff,
 									 VkImage srcImage,
 									 VkImageLayout srcImageLayout,
@@ -238,8 +236,6 @@
 #pragma mark -
 #pragma mark MVKCmdBlitImage
 
-MVKFuncionOverride_getTypePool(BlitImage)
-
 VkResult MVKCmdBlitImage::setContent(MVKCommandBuffer* cmdBuff,
 									 VkImage srcImage,
 									 VkImageLayout srcImageLayout,
@@ -449,8 +445,6 @@
 #pragma mark -
 #pragma mark MVKCmdResolveImage
 
-MVKFuncionOverride_getTypePool(ResolveImage)
-
 VkResult MVKCmdResolveImage::setContent(MVKCommandBuffer* cmdBuff,
 										VkImage srcImage,
 										VkImageLayout srcImageLayout,
@@ -643,8 +637,6 @@
 #pragma mark -
 #pragma mark MVKCmdCopyBuffer
 
-MVKFuncionOverride_getTypePool(CopyBuffer)
-
 // Matches shader struct.
 typedef struct {
 	uint32_t srcOffset;
@@ -715,8 +707,6 @@
 #pragma mark -
 #pragma mark MVKCmdBufferImageCopy
 
-MVKFuncionOverride_getTypePool(BufferImageCopy)
-
 // Matches shader struct.
 typedef struct {
     uint32_t srcRowStride;
@@ -937,8 +927,6 @@
 #pragma mark -
 #pragma mark MVKCmdClearAttachments
 
-MVKFuncionOverride_getTypePool(ClearAttachments)
-
 VkResult MVKCmdClearAttachments::setContent(MVKCommandBuffer* cmdBuff,
 											uint32_t attachmentCount,
 											const VkClearAttachment* pAttachments,
@@ -1107,8 +1095,6 @@
 #pragma mark -
 #pragma mark MVKCmdClearImage
 
-MVKFuncionOverride_getTypePool(ClearImage)
-
 VkResult MVKCmdClearImage::setContent(MVKCommandBuffer* cmdBuff,
 									  VkImage image,
 									  VkImageLayout imageLayout,
@@ -1224,8 +1210,6 @@
 #pragma mark -
 #pragma mark MVKCmdFillBuffer
 
-MVKFuncionOverride_getTypePool(FillBuffer)
-
 VkResult MVKCmdFillBuffer::setContent(MVKCommandBuffer* cmdBuff,
 									  VkBuffer dstBuffer,
 									  VkDeviceSize dstOffset,
@@ -1292,8 +1276,6 @@
 #pragma mark -
 #pragma mark MVKCmdUpdateBuffer
 
-MVKFuncionOverride_getTypePool(UpdateBuffer)
-
 VkResult MVKCmdUpdateBuffer::setContent(MVKCommandBuffer* cmdBuff,
 										VkBuffer dstBuffer,
 										VkDeviceSize dstOffset,
diff --git a/MoltenVK/MoltenVK/Commands/MVKCommand.h b/MoltenVK/MoltenVK/Commands/MVKCommand.h
index 29564e9..d0ef1c3 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCommand.h
+++ b/MoltenVK/MoltenVK/Commands/MVKCommand.h
@@ -70,13 +70,10 @@
 protected:
 	friend MVKCommandBuffer;
 
+	// Returns the command type pool used by this command, from the command pool.
+	// This function is overridden in each concrete subclass declaration, but the implementation of
+	// this function in each subclass is automatically generated in the MVKCommandPool implementation.
 	virtual MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) = 0;
-
-	// Macro to implement a subclass override of the getTypePool(MVKCommandPool* cmdPool) function.
-#	define MVKFuncionOverride_getTypePool(cmdType)					  							\
-	MVKCommandTypePool<MVKCommand>* MVKCmd ##cmdType ::getTypePool(MVKCommandPool* cmdPool) {	\
-		return (MVKCommandTypePool<MVKCommand>*)&cmdPool->_cmd  ##cmdType ##Pool;				\
-	}
 };
 
 
diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandPool.h b/MoltenVK/MoltenVK/Commands/MVKCommandPool.h
index 1c794ba..e14ecee 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCommandPool.h
+++ b/MoltenVK/MoltenVK/Commands/MVKCommandPool.h
@@ -59,99 +59,10 @@
 	/** Returns the debug report object type of this object. */
 	VkDebugReportObjectTypeEXT getVkDebugReportObjectType() override { return VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT; }
 
-#pragma mark Command type pools
-
-	MVKCommandTypePool<MVKCmdPipelineBarrier> _cmdPipelineBarrierPool;
-
-	MVKCommandTypePool<MVKCmdBindPipeline> _cmdBindPipelinePool;
-
-	MVKCommandTypePool<MVKCmdBeginRenderPass> _cmdBeginRenderPassPool;
-
-	MVKCommandTypePool<MVKCmdNextSubpass> _cmdNextSubpassPool;
-
-	MVKCommandTypePool<MVKCmdEndRenderPass> _cmdEndRenderPassPool;
-
-	MVKCommandTypePool<MVKCmdExecuteCommands> _cmdExecuteCommandsPool;
-
-	MVKCommandTypePool<MVKCmdBindDescriptorSets> _cmdBindDescriptorSetsPool;
-
-	MVKCommandTypePool<MVKCmdSetViewport> _cmdSetViewportPool;
-
-	MVKCommandTypePool<MVKCmdSetScissor> _cmdSetScissorPool;
-
-    MVKCommandTypePool<MVKCmdSetLineWidth> _cmdSetLineWidthPool;
-
-    MVKCommandTypePool<MVKCmdSetDepthBias> _cmdSetDepthBiasPool;
-
-    MVKCommandTypePool<MVKCmdSetBlendConstants> _cmdSetBlendConstantsPool;
-
-    MVKCommandTypePool<MVKCmdSetDepthBounds> _cmdSetDepthBoundsPool;
-
-    MVKCommandTypePool<MVKCmdSetStencilCompareMask> _cmdSetStencilCompareMaskPool;
-
-    MVKCommandTypePool<MVKCmdSetStencilWriteMask> _cmdSetStencilWriteMaskPool;
-
-    MVKCommandTypePool<MVKCmdSetStencilReference> _cmdSetStencilReferencePool;
-
-	MVKCommandTypePool<MVKCmdBindVertexBuffers> _cmdBindVertexBuffersPool;
-
-	MVKCommandTypePool<MVKCmdBindIndexBuffer> _cmdBindIndexBufferPool;
-
-	MVKCommandTypePool<MVKCmdDraw> _cmdDrawPool;
-
-	MVKCommandTypePool<MVKCmdDrawIndexed> _cmdDrawIndexedPool;
-
-	MVKCommandTypePool<MVKCmdDrawIndirect> _cmdDrawIndirectPool;
-
-	MVKCommandTypePool<MVKCmdDrawIndexedIndirect> _cmdDrawIndexedIndirectPool;
-
-	MVKCommandTypePool<MVKCmdCopyImage> _cmdCopyImagePool;
-
-	MVKCommandTypePool<MVKCmdBlitImage> _cmdBlitImagePool;
-
-    MVKCommandTypePool<MVKCmdResolveImage> _cmdResolveImagePool;
-
-    MVKCommandTypePool<MVKCmdFillBuffer> _cmdFillBufferPool;
-
-    MVKCommandTypePool<MVKCmdUpdateBuffer> _cmdUpdateBufferPool;
-
-	MVKCommandTypePool<MVKCmdCopyBuffer> _cmdCopyBufferPool;
-
-    MVKCommandTypePool<MVKCmdBufferImageCopy> _cmdBufferImageCopyPool;
-
-	MVKCommandTypePool<MVKCmdClearAttachments> _cmdClearAttachmentsPool;
-
-	MVKCommandTypePool<MVKCmdClearImage> _cmdClearImagePool;
-
-    MVKCommandTypePool<MVKCmdBeginQuery> _cmdBeginQueryPool;
-
-    MVKCommandTypePool<MVKCmdEndQuery> _cmdEndQueryPool;
-
-	MVKCommandTypePool<MVKCmdWriteTimestamp> _cmdWriteTimestampPool;
-
-    MVKCommandTypePool<MVKCmdResetQueryPool> _cmdResetQueryPoolPool;
-
-    MVKCommandTypePool<MVKCmdCopyQueryPoolResults> _cmdCopyQueryPoolResultsPool;
-
-	MVKCommandTypePool<MVKCmdPushConstants> _cmdPushConstantsPool;
-
-    MVKCommandTypePool<MVKCmdDispatch> _cmdDispatchPool;
-
-    MVKCommandTypePool<MVKCmdDispatchIndirect> _cmdDispatchIndirectPool;
-
-    MVKCommandTypePool<MVKCmdPushDescriptorSet> _cmdPushDescriptorSetPool;
-
-    MVKCommandTypePool<MVKCmdPushDescriptorSetWithTemplate> _cmdPushDescriptorSetWithTemplatePool;
-
-	MVKCommandTypePool<MVKCmdDebugMarkerBegin> _cmdDebugMarkerBeginPool;
-
-	MVKCommandTypePool<MVKCmdDebugMarkerEnd> _cmdDebugMarkerEndPool;
-
-	MVKCommandTypePool<MVKCmdDebugMarkerInsert> _cmdDebugMarkerInsertPool;
-
-	MVKCommandTypePool<MVKCmdSetResetEvent> _cmdSetResetEventPool;
-
-	MVKCommandTypePool<MVKCmdWaitEvents> _cmdWaitEventsPool;
+	// Command type pool member variables.
+	// Each has a form similar to (here for a draw command):  MVKCommandTypePool<MVKCmdDraw> _cmdDrawPool;
+#	define MVK_CMD_TYPE_POOL(cmdType)  MVKCommandTypePool<MVKCmd ##cmdType> _cmd ##cmdType ##Pool;
+#	include "MVKCommandTypePools.def"
 
 
 #pragma mark Command resources
diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandPool.mm b/MoltenVK/MoltenVK/Commands/MVKCommandPool.mm
index c59f5ce..fb20ebf 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCommandPool.mm
+++ b/MoltenVK/MoltenVK/Commands/MVKCommandPool.mm
@@ -79,55 +79,10 @@
 	return [[_device->getQueue(_queueFamilyIndex, queueIndex)->getMTLCommandQueue() commandBuffer] retain];
 }
 
+// Clear the command type pool member variables.
 void MVKCommandPool::trim() {
-	_commandBufferPool.clear();
-	_commandEncodingPool.clear();
-	_cmdPipelineBarrierPool.clear();
-	_cmdBindPipelinePool.clear();
-	_cmdBeginRenderPassPool.clear();
-	_cmdNextSubpassPool.clear();
-	_cmdExecuteCommandsPool.clear();
-	_cmdEndRenderPassPool.clear();
-	_cmdBindDescriptorSetsPool.clear();
-	_cmdSetViewportPool.clear();
-	_cmdSetScissorPool.clear();
-	_cmdSetLineWidthPool.clear();
-	_cmdSetDepthBiasPool.clear();
-	_cmdSetBlendConstantsPool.clear();
-	_cmdSetDepthBoundsPool.clear();
-	_cmdSetStencilCompareMaskPool.clear();
-	_cmdSetStencilWriteMaskPool.clear();
-	_cmdSetStencilReferencePool.clear();
-	_cmdBindVertexBuffersPool.clear();
-	_cmdBindIndexBufferPool.clear();
-	_cmdDrawPool.clear();
-	_cmdDrawIndexedPool.clear();
-	_cmdDrawIndirectPool.clear();
-	_cmdDrawIndexedIndirectPool.clear();
-	_cmdCopyImagePool.clear();
-	_cmdBlitImagePool.clear();
-	_cmdResolveImagePool.clear();
-	_cmdFillBufferPool.clear();
-	_cmdUpdateBufferPool.clear();
-	_cmdCopyBufferPool.clear();
-	_cmdBufferImageCopyPool.clear();
-	_cmdClearAttachmentsPool.clear();
-	_cmdClearImagePool.clear();
-	_cmdBeginQueryPool.clear();
-	_cmdEndQueryPool.clear();
-	_cmdWriteTimestampPool.clear();
-	_cmdResetQueryPoolPool.clear();
-	_cmdCopyQueryPoolResultsPool.clear();
-	_cmdPushConstantsPool.clear();
-	_cmdDispatchPool.clear();
-	_cmdDispatchIndirectPool.clear();
-	_cmdPushDescriptorSetPool.clear();
-	_cmdPushDescriptorSetWithTemplatePool.clear();
-	_cmdDebugMarkerBeginPool.clear();
-	_cmdDebugMarkerEndPool.clear();
-	_cmdDebugMarkerInsertPool.clear();
-	_cmdSetResetEventPool.clear();
-	_cmdWaitEventsPool.clear();
+#	define MVK_CMD_TYPE_POOL(cmdType)  _cmd ##cmdType ##Pool.clear();
+#	include "MVKCommandTypePools.def"
 }
 
 
@@ -140,53 +95,12 @@
 	_queueFamilyIndex(pCreateInfo->queueFamilyIndex),
 	_commandBufferPool(device, usePooling),
 	_commandEncodingPool(this),
-	_cmdPipelineBarrierPool(usePooling),
-	_cmdBindPipelinePool(usePooling),
-	_cmdBeginRenderPassPool(usePooling),
-	_cmdNextSubpassPool(usePooling),
-	_cmdExecuteCommandsPool(usePooling),
-	_cmdEndRenderPassPool(usePooling),
-	_cmdBindDescriptorSetsPool(usePooling),
-	_cmdSetViewportPool(usePooling),
-	_cmdSetScissorPool(usePooling),
-	_cmdSetLineWidthPool(usePooling),
-	_cmdSetDepthBiasPool(usePooling),
-	_cmdSetBlendConstantsPool(usePooling),
-	_cmdSetDepthBoundsPool(usePooling),
-	_cmdSetStencilCompareMaskPool(usePooling),
-	_cmdSetStencilWriteMaskPool(usePooling),
-	_cmdSetStencilReferencePool(usePooling),
-	_cmdBindVertexBuffersPool(usePooling),
-	_cmdBindIndexBufferPool(usePooling),
-	_cmdDrawPool(usePooling),
-	_cmdDrawIndexedPool(usePooling),
-	_cmdDrawIndirectPool(usePooling),
-	_cmdDrawIndexedIndirectPool(usePooling),
-	_cmdCopyImagePool(usePooling),
-	_cmdBlitImagePool(usePooling),
-	_cmdResolveImagePool(usePooling),
-	_cmdFillBufferPool(usePooling),
-	_cmdUpdateBufferPool(usePooling),
-	_cmdCopyBufferPool(usePooling),
-	_cmdBufferImageCopyPool(usePooling),
-	_cmdClearAttachmentsPool(usePooling),
-	_cmdClearImagePool(usePooling),
-	_cmdBeginQueryPool(usePooling),
-	_cmdEndQueryPool(usePooling),
-	_cmdWriteTimestampPool(usePooling),
-	_cmdResetQueryPoolPool(usePooling),
-	_cmdCopyQueryPoolResultsPool(usePooling),
-	_cmdPushConstantsPool(usePooling),
-	_cmdDispatchPool(usePooling),
-	_cmdDispatchIndirectPool(usePooling),
-	_cmdPushDescriptorSetPool(usePooling),
-	_cmdPushDescriptorSetWithTemplatePool(usePooling),
-	_cmdDebugMarkerBeginPool(usePooling),
-	_cmdDebugMarkerEndPool(usePooling),
-	_cmdDebugMarkerInsertPool(usePooling),
-	_cmdSetResetEventPool(usePooling),
-	_cmdWaitEventsPool(usePooling)
-// when extending be sure to add to trim() as well
+
+// Initialize the command type pool member variables.
+#	define MVK_CMD_TYPE_POOL_LAST(cmdType)  _cmd ##cmdType ##Pool(usePooling)
+#	define MVK_CMD_TYPE_POOL(cmdType)  MVK_CMD_TYPE_POOL_LAST(cmdType),
+#	include "MVKCommandTypePools.def"
+
 {}
 
 MVKCommandPool::~MVKCommandPool() {
@@ -195,3 +109,15 @@
 	}
 }
 
+#pragma mark -
+#pragma mark MVKCommand subclass getTypePool() functions
+
+// Implementations of the MVKCommand subclass getTypePool() functions.
+#define MVK_TMPLT_DECL  template<>
+#define MVK_CMD_TYPE_POOL(cmdType)					  										\
+MVKCommandTypePool<MVKCommand>* MVKCmd ##cmdType ::getTypePool(MVKCommandPool* cmdPool) {	\
+	return (MVKCommandTypePool<MVKCommand>*)&cmdPool->_cmd  ##cmdType ##Pool;				\
+}
+#include "MVKCommandTypePools.def"
+
+
diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandTypePools.def b/MoltenVK/MoltenVK/Commands/MVKCommandTypePools.def
new file mode 100644
index 0000000..c47d949
--- /dev/null
+++ b/MoltenVK/MoltenVK/Commands/MVKCommandTypePools.def
@@ -0,0 +1,95 @@
+/*
+ * MVKCommandTypePools.def
+ *
+ * Copyright (c) 2015-2020 The Brenwill Workshop Ltd. (http://www.brenwill.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// To use this file, define a macro MVK_CMD_TYPE_POOL(cmdType), then #include this file.
+// If the last entry needs to be different (for example to avoid a dangling ',' at the
+// end of an initializer list, also define a macro MVK_CMD_TYPE_POOL_LAST(cmdType).
+
+// MVK_TMPLT_DECL is used to support adding a "template<>" prefix when this file is used
+// to define function implementations for a concrete implementation of a class template
+
+// To add a new command type, simply add an MVK_CMD_TYPE_POOL() line below.
+// The last line in the list must be MVK_CMD_TYPE_POOL_LAST().
+// If the command is a concrete implementation of a template class, include the
+// MVK_TMPLT_DECL prefix.
+
+#ifndef MVK_TMPLT_DECL
+#	define MVK_TMPLT_DECL
+#endif
+
+#ifndef MVK_CMD_TYPE_POOL
+#	error MVK_CMD_TYPE_POOL must be defined before including this file
+#endif
+
+#ifndef MVK_CMD_TYPE_POOL_LAST
+#	define MVK_CMD_TYPE_POOL_LAST(cmdType) MVK_CMD_TYPE_POOL(cmdType)
+#endif
+
+MVK_CMD_TYPE_POOL(PipelineBarrier)
+MVK_CMD_TYPE_POOL(BindPipeline)
+MVK_CMD_TYPE_POOL(BeginRenderPass)
+MVK_CMD_TYPE_POOL(NextSubpass)
+MVK_CMD_TYPE_POOL(EndRenderPass)
+MVK_CMD_TYPE_POOL(ExecuteCommands)
+MVK_CMD_TYPE_POOL(BindDescriptorSets)
+MVK_TMPLT_DECL MVK_CMD_TYPE_POOL(SetViewport1)
+MVK_TMPLT_DECL MVK_CMD_TYPE_POOL(SetViewportMulti)
+MVK_TMPLT_DECL MVK_CMD_TYPE_POOL(SetScissor1)
+MVK_TMPLT_DECL MVK_CMD_TYPE_POOL(SetScissorMulti)
+MVK_CMD_TYPE_POOL(SetLineWidth)
+MVK_CMD_TYPE_POOL(SetDepthBias)
+MVK_CMD_TYPE_POOL(SetBlendConstants)
+MVK_CMD_TYPE_POOL(SetDepthBounds)
+MVK_CMD_TYPE_POOL(SetStencilCompareMask)
+MVK_CMD_TYPE_POOL(SetStencilWriteMask)
+MVK_CMD_TYPE_POOL(SetStencilReference)
+MVK_CMD_TYPE_POOL(BindVertexBuffers)
+MVK_CMD_TYPE_POOL(BindIndexBuffer)
+MVK_CMD_TYPE_POOL(Draw)
+MVK_CMD_TYPE_POOL(DrawIndexed)
+MVK_CMD_TYPE_POOL(DrawIndirect)
+MVK_CMD_TYPE_POOL(DrawIndexedIndirect)
+MVK_CMD_TYPE_POOL(CopyImage)
+MVK_CMD_TYPE_POOL(BlitImage)
+MVK_CMD_TYPE_POOL(ResolveImage)
+MVK_CMD_TYPE_POOL(FillBuffer)
+MVK_CMD_TYPE_POOL(UpdateBuffer)
+MVK_CMD_TYPE_POOL(CopyBuffer)
+MVK_CMD_TYPE_POOL(BufferImageCopy)
+MVK_CMD_TYPE_POOL(ClearAttachments)
+MVK_CMD_TYPE_POOL(ClearImage)
+MVK_CMD_TYPE_POOL(BeginQuery)
+MVK_CMD_TYPE_POOL(EndQuery)
+MVK_CMD_TYPE_POOL(WriteTimestamp)
+MVK_CMD_TYPE_POOL(ResetQueryPool)
+MVK_CMD_TYPE_POOL(CopyQueryPoolResults)
+MVK_CMD_TYPE_POOL(PushConstants)
+MVK_CMD_TYPE_POOL(Dispatch)
+MVK_CMD_TYPE_POOL(DispatchIndirect)
+MVK_CMD_TYPE_POOL(PushDescriptorSet)
+MVK_CMD_TYPE_POOL(PushDescriptorSetWithTemplate)
+MVK_CMD_TYPE_POOL(DebugMarkerBegin)
+MVK_CMD_TYPE_POOL(DebugMarkerEnd)
+MVK_CMD_TYPE_POOL(DebugMarkerInsert)
+MVK_CMD_TYPE_POOL(SetResetEvent)
+MVK_CMD_TYPE_POOL_LAST(WaitEvents)
+
+#undef MVK_CMD_TYPE_POOL
+#undef MVK_CMD_TYPE_POOL_LAST
+#undef MVK_TMPLT_DECL
diff --git a/MoltenVK/MoltenVK/Vulkan/vulkan.mm b/MoltenVK/MoltenVK/Vulkan/vulkan.mm
index a099921..5b28ae3 100644
--- a/MoltenVK/MoltenVK/Vulkan/vulkan.mm
+++ b/MoltenVK/MoltenVK/Vulkan/vulkan.mm
@@ -1352,7 +1352,11 @@
 	const VkViewport*                           pViewports) {
 
 	MVKTraceVulkanCallStart();
-	MVKAddCmd(SetViewport, commandBuffer, firstViewport, viewportCount, pViewports);
+	if (viewportCount <= 1) {
+		MVKAddCmd(SetViewport1, commandBuffer, firstViewport, viewportCount, pViewports);
+	} else {
+		MVKAddCmd(SetViewportMulti, commandBuffer, firstViewport, viewportCount, pViewports);
+	}
 	MVKTraceVulkanCallEnd();
 }
 
@@ -1363,7 +1367,11 @@
 	const VkRect2D*                             pScissors) {
 
 	MVKTraceVulkanCallStart();
-	MVKAddCmd(SetScissor, commandBuffer, firstScissor, scissorCount, pScissors);
+	if (scissorCount <= 1) {
+		MVKAddCmd(SetScissor1, commandBuffer, firstScissor, scissorCount, pScissors);
+	} else {
+		MVKAddCmd(SetScissorMulti, commandBuffer, firstScissor, scissorCount, pScissors);
+	}
 	MVKTraceVulkanCallEnd();
 }
 
