vulkan.h: Split attachment and image clears (#13914, v126)

- Add bit flags for image aspects.
- Replace VkRect with VkRect2D and VkRect3D.
- Rename vkCmdClearDepthStencil to vkCmdClearDepthStencilImage
- Add vkCmdClearColorAttachment and vkCmdClearDepthStencilAttachment

Remaining to be done:
- Actually implement vkCmdClearColorAttachment,
  vkCmdClearDepthStencilAttachment in the Intel ICD
- Enforce renderpass interactions: CmdClear*Attachment may only be
  called within a renderpass; CmdClear*Image may only be called outside
  a renderpass.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
diff --git a/icd/intel/cmd_meta.c b/icd/intel/cmd_meta.c
index 7c7ee8e..28f59fb 100644
--- a/icd/intel/cmd_meta.c
+++ b/icd/intel/cmd_meta.c
@@ -940,7 +940,7 @@
     cmd_meta_clear_color_image(cmdBuffer, image, imageLayout, pClearColor, rangeCount, pRanges);
 }
 
-ICD_EXPORT void VKAPI vkCmdClearDepthStencil(
+ICD_EXPORT void VKAPI vkCmdClearDepthStencilImage(
     VkCmdBuffer                              cmdBuffer,
     VkImage                                   image,
     VkImageLayout                            imageLayout,
@@ -976,6 +976,33 @@
     }
 }
 
+ICD_EXPORT void VKAPI vkCmdClearColorAttachment(
+    VkCmdBuffer                             cmdBuffer,
+    uint32_t                                colorAttachment,
+    VkImageLayout                           imageLayout,
+    const VkClearColor                     *pColor,
+    uint32_t                                rectCount,
+    const VkRect3D                         *pRects)
+{
+    struct intel_cmd *cmd = intel_cmd(cmdBuffer);
+    assert(!"CmdClearColorAttachment not implemented");
+    cmd_fail(cmd, VK_ERROR_UNKNOWN);
+}
+
+ICD_EXPORT void VKAPI vkCmdClearDepthStencilAttachment(
+    VkCmdBuffer                             cmdBuffer,
+    VkImageAspectFlags                      imageAspectMask,
+    VkImageLayout                           imageLayout,
+    float                                   depth,
+    uint32_t                                stencil,
+    uint32_t                                rectCount,
+    const VkRect3D                         *pRects)
+{
+    struct intel_cmd *cmd = intel_cmd(cmdBuffer);
+    assert(!"CmdClearDepthStencilAttachment not implemented");
+    cmd_fail(cmd, VK_ERROR_UNKNOWN);
+}
+
 ICD_EXPORT void VKAPI vkCmdResolveImage(
     VkCmdBuffer                              cmdBuffer,
     VkImage                                   srcImage,