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,