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"),