misc: Change clear rectangle to include array layer/count

commit: 53a511d
diff --git a/include/vulkan.h b/include/vulkan.h
index 6bc464e..8a86edd 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -2007,7 +2007,9 @@
 typedef struct {
     VkOffset3D                                  offset;
     VkExtent3D                                  extent;
-} VkRect3D;
+    uint32_t                                    baseArrayLayer;
+    uint32_t                                    numLayers;
+} VkClearRect;
 
 typedef struct {
     VkImageSubresourceCopy                      srcSubresource;
@@ -2209,7 +2211,7 @@
 typedef void (VKAPI *PFN_vkCmdFillBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize fillSize, uint32_t data);
 typedef void (VKAPI *PFN_vkCmdClearColorImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
 typedef void (VKAPI *PFN_vkCmdClearDepthStencilImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
-typedef void (VKAPI *PFN_vkCmdClearAttachments)(VkCmdBuffer cmdBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkRect3D* pRects);
+typedef void (VKAPI *PFN_vkCmdClearAttachments)(VkCmdBuffer cmdBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
 typedef void (VKAPI *PFN_vkCmdResolveImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
 typedef void (VKAPI *PFN_vkCmdSetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask);
 typedef void (VKAPI *PFN_vkCmdResetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask);
@@ -2907,7 +2909,7 @@
     uint32_t                                    attachmentCount,
     const VkClearAttachment*                    pAttachments,
     uint32_t                                    rectCount,
-    const VkRect3D*                             pRects);
+    const VkClearRect*                          pRects);
 
 void VKAPI vkCmdResolveImage(
     VkCmdBuffer                                 cmdBuffer,
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 3317a43..b9e24ea 100755
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -2767,7 +2767,7 @@
     uint32_t                                    attachmentCount,
     const VkClearAttachment*                    pAttachments,
     uint32_t                                    rectCount,
-    const VkRect3D*                             pRects)
+    const VkClearRect*                          pRects)
 {
     VkBool32 skipCall = VK_FALSE;
     layer_data* dev_data = get_my_data_ptr(get_dispatch_key(cmdBuffer), layer_data_map);
diff --git a/layers/image.cpp b/layers/image.cpp
index a776961..e40536a 100644
--- a/layers/image.cpp
+++ b/layers/image.cpp
@@ -545,7 +545,7 @@
     uint32_t                                    attachmentCount,
     const VkClearAttachment*                    pAttachments,
     uint32_t                                    rectCount,
-    const VkRect3D*                             pRects)
+    const VkClearRect*                          pRects)
 {
     VkBool32 skipCall = VK_FALSE;
     VkImageAspectFlags aspectMask;
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index b42c013..b217886 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -6182,7 +6182,7 @@
 bool PreCmdClearAttachments(
     VkCmdBuffer cmdBuffer,
     const VkClearColorValue* pColor,
-    const VkRect3D* pRects)
+    const VkClearRect* pRects)
 {
     if(pColor != nullptr)
     {
@@ -6200,7 +6200,7 @@
     uint32_t                                    attachmentCount,
     const VkClearAttachment*                    pAttachments,
     uint32_t                                    rectCount,
-    const VkRect3D*                             pRects)
+    const VkClearRect*                          pRects)
 {
     for (uint32_t i = 0; i < attachmentCount; i++) {
         PreCmdClearAttachments(cmdBuffer, &pAttachments[i].clearValue.color, pRects);
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 2faf002..a2f5d1a 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -1340,7 +1340,7 @@
     disp->CmdClearDepthStencilImage(cmdBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
 }
 
-LOADER_EXPORT void VKAPI vkCmdClearAttachments(VkCmdBuffer cmdBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkRect3D* pRects)
+LOADER_EXPORT void VKAPI vkCmdClearAttachments(VkCmdBuffer cmdBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects)
 {
     const VkLayerDispatchTable *disp;
 
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 3ab1dc0..86ea564 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -2650,7 +2650,7 @@
     color_attachment.clearValue.color.float32[2] = 0;
     color_attachment.clearValue.color.float32[3] = 0;
     color_attachment.colorAttachment = 0;
-    VkRect3D          clear_rect  = { { 0, 0, 0 }, { 32, 32, 1 } };
+    VkClearRect clear_rect  = { { 0, 0, 0 }, { 32, 32, 1 } };
     vkCmdClearAttachments(m_cmdBuffer->GetBufferHandle(),
                           1, &color_attachment,
                           1, &clear_rect);
@@ -3279,7 +3279,7 @@
     color_attachment.clearValue.color.float32[2] = 1.0;
     color_attachment.clearValue.color.float32[3] = 1.0;
     color_attachment.colorAttachment = 0;
-    VkRect3D clear_rect = { { 0, 0, 0 }, { (int)m_width, (int)m_height, 1 } };
+    VkClearRect clear_rect = { { 0, 0, 0 }, { (int)m_width, (int)m_height, 1 } };
 
     vkCmdClearAttachments(m_cmdBuffer->GetBufferHandle(), 1, &color_attachment, 1, &clear_rect);
     msgFlags = m_errorMonitor->GetState(&msgString);
diff --git a/tests/render_tests.cpp b/tests/render_tests.cpp
index 59548cc..cdc9890 100644
--- a/tests/render_tests.cpp
+++ b/tests/render_tests.cpp
@@ -4139,7 +4139,7 @@
     color_attachment.clearValue.color.float32[2] = 0;
     color_attachment.clearValue.color.float32[3] = 0;
     color_attachment.colorAttachment = 0;
-    VkRect3D clear_rect = { { 0, 0, 0 }, { (int)m_width, (int)m_height, 1 } };
+    VkClearRect clear_rect = { { 0, 0, 0 }, { (int)m_width, (int)m_height, 1 } };
     vkCmdClearAttachments(m_cmdBuffer->handle(), 1, &color_attachment,
                           1, &clear_rect);
 
diff --git a/vulkan.py b/vulkan.py
index 0096857..3a690a4 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -824,7 +824,7 @@
              Param("uint32_t", "attachmentCount"),
              Param("const VkClearAttachment*", "pAttachments"),
              Param("uint32_t", "rectCount"),
-             Param("const VkRect3D*", "pRects")]),
+             Param("const VkClearRect*", "pRects")]),
 
         Proto("void", "CmdResolveImage",
             [Param("VkCmdBuffer", "cmdBuffer"),