Fix vkUpdateDescriptorSetWithTemplate() for inline block descriptors.

Wrap incoming data in VkWriteDescriptorSetInlineUniformBlock
before passing to MVKInlineUniformBlockDescriptor::write().
diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md
index 68086a8..d5fa9a6 100644
--- a/Docs/Whats_New.md
+++ b/Docs/Whats_New.md
@@ -28,6 +28,7 @@
 - Check `MTLDevice` to enable support for `VK_KHR_fragment_shader_barycentric` 
   and `VK_NV_fragment_shader_barycentric` extensions.
 - Fix query pool wait block when query is not encoded to be written to.
+- Fix `vkUpdateDescriptorSetWithTemplate()` for inline block descriptors.
 - Ignore sampler update in descriptor set bindings that use immutable samplers.
 - Update `VK_MVK_MOLTENVK_SPEC_VERSION` to version `35`.
 
diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm
index 86a6efd..70f20cd 100644
--- a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm
+++ b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm
@@ -924,6 +924,8 @@
 		// For inline block create a temp buffer of descCnt bytes to hold data during copy.
 		uint8_t dstBuffer[descCnt];
 		VkWriteDescriptorSetInlineUniformBlockEXT inlineUniformBlock;
+		inlineUniformBlock.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK;
+		inlineUniformBlock.pNext = nullptr;
 		inlineUniformBlock.pData = dstBuffer;
 		inlineUniformBlock.dataSize = descCnt;
 
@@ -953,6 +955,16 @@
 	for (uint32_t i = 0; i < pTemplate->getNumberOfEntries(); i++) {
 		const VkDescriptorUpdateTemplateEntryKHR* pEntry = pTemplate->getEntry(i);
 		const void* pCurData = (const char*)pData + pEntry->offset;
+
+		// For inline block, wrap the raw data in in inline update struct.
+		VkWriteDescriptorSetInlineUniformBlockEXT inlineUniformBlock;
+		if (pEntry->descriptorType == VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT) {
+			inlineUniformBlock.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK;
+			inlineUniformBlock.pNext = nullptr;
+			inlineUniformBlock.pData = pCurData;
+			inlineUniformBlock.dataSize = pEntry->descriptorCount;
+			pCurData = &inlineUniformBlock;
+		}
 		dstSet->write(pEntry, pEntry->stride, pCurData);
 	}
 }