vulkan.h: v129 -- rework clear colors, remove raw clear [#14020]

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
diff --git a/include/vulkan.h b/include/vulkan.h
index b023b69..7709843 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -2049,19 +2049,14 @@
     VkRenderPassContents                        contents;
 } VkRenderPassBegin;
 
-// Union allowing specification of floating point or raw color data. Actual value selected is based on image being cleared.
+// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on format.
 typedef union VkClearColorValue_
 {
-    float                                       floatColor[4];
-    uint32_t                                    rawColor[4];
+    float                                       f32[4];
+    int32_t                                     s32[4];
+    uint32_t                                    u32[4];
 } VkClearColorValue;
 
-typedef struct VkClearColor_
-{
-    VkClearColorValue                           color;
-    bool32_t                                    useRawValue;
-} VkClearColor;
-
 typedef struct VkRenderPassCreateInfo_
 {
     VkStructureType                             sType;      // Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
@@ -2076,7 +2071,7 @@
     const VkImageLayout*                        pColorLayouts;
     const VkAttachmentLoadOp*                   pColorLoadOps;
     const VkAttachmentStoreOp*                  pColorStoreOps;
-    const VkClearColor*                         pColorLoadClearValues;
+    const VkClearColorValue*                    pColorLoadClearValues;
     VkFormat                                    depthStencilFormat;
     VkImageLayout                               depthStencilLayout;
     VkAttachmentLoadOp                          depthLoadOp;
@@ -2253,9 +2248,9 @@
 typedef void     (VKAPI *PFN_vkCmdCopyImageToBuffer)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer destBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
 typedef void     (VKAPI *PFN_vkCmdUpdateBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize dataSize, const uint32_t* pData);
 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 VkClearColor* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
+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, float depth, uint32_t stencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
-typedef void     (VKAPI *PFN_vkCmdClearColorAttachment)(VkCmdBuffer cmdBuffer, uint32_t colorAttachment, VkImageLayout imageLayout, const VkClearColor* pColor, uint32_t rectCount, const VkRect3D* pRects);
+typedef void     (VKAPI *PFN_vkCmdClearColorAttachment)(VkCmdBuffer cmdBuffer, uint32_t colorAttachment, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rectCount, const VkRect3D* pRects);
 typedef void     (VKAPI *PFN_vkCmdClearDepthStencilAttachment)(VkCmdBuffer cmdBuffer, VkImageAspectFlags imageAspectMask, VkImageLayout imageLayout, float depth, uint32_t stencil, uint32_t rectCount, const VkRect3D* 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);
@@ -2836,7 +2831,7 @@
     VkCmdBuffer                                 cmdBuffer,
     VkImage                                     image,
     VkImageLayout                               imageLayout,
-    const VkClearColor*                         pColor,
+    const VkClearColorValue*                    pColor,
     uint32_t                                    rangeCount,
     const VkImageSubresourceRange*              pRanges);
 
@@ -2853,7 +2848,7 @@
     VkCmdBuffer                                 cmdBuffer,
     uint32_t                                    colorAttachment,
     VkImageLayout                               imageLayout,
-    const VkClearColor*                         pColor,
+    const VkClearColorValue*                    pColor,
     uint32_t                                    rectCount,
     const VkRect3D*                             pRects);
 
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 3da7d54..fa3b36a 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -2482,7 +2482,7 @@
 VK_LAYER_EXPORT void VKAPI vkCmdClearColorImage(
         VkCmdBuffer cmdBuffer,
         VkImage image, VkImageLayout imageLayout,
-        const VkClearColor *pColor,
+        const VkClearColorValue *pColor,
         uint32_t rangeCount, const VkImageSubresourceRange* pRanges)
 {
     GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
@@ -2682,8 +2682,8 @@
             memcpy((void*)localRPCI->pColorStoreOps, pCreateInfo->pColorStoreOps, localRPCI->colorAttachmentCount*sizeof(VkAttachmentStoreOp));
         }
         if (pCreateInfo->pColorLoadClearValues) {
-            localRPCI->pColorLoadClearValues = new VkClearColor[localRPCI->colorAttachmentCount];
-            memcpy((void*)localRPCI->pColorLoadClearValues, pCreateInfo->pColorLoadClearValues, localRPCI->colorAttachmentCount*sizeof(VkClearColor));
+            localRPCI->pColorLoadClearValues = new VkClearColorValue[localRPCI->colorAttachmentCount];
+            memcpy((void*)localRPCI->pColorLoadClearValues, pCreateInfo->pColorLoadClearValues, localRPCI->colorAttachmentCount*sizeof(VkClearColorValue));
         }
         renderPassMap[*pRenderPass] = localRPCI;
     }
diff --git a/layers/image.cpp b/layers/image.cpp
index 0282795..d2c449e 100644
--- a/layers/image.cpp
+++ b/layers/image.cpp
@@ -340,10 +340,10 @@
 
     for(uint32_t i = 0; i < pCreateInfo->colorAttachmentCount; ++i)
     {
-        if(!vk_validate_vkclearcolor(&(pCreateInfo->pColorLoadClearValues[i])))
+        if(!vk_validate_vkclearcolorvalue(&(pCreateInfo->pColorLoadClearValues[i])))
         {
             std::stringstream ss;
-            ss << "vkCreateRenderPass parameter, VkClearColor pCreateInfo->pColorLoadClearValues[" << i << "], is invalid";
+            ss << "vkCreateRenderPass parameter, VkClearColorValue pCreateInfo->pColorLoadClearValues[" << i << "], is invalid";
             log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "IMAGE", ss.str().c_str());
         }
     }
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index 0411ca1..e4db292 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -1923,7 +1923,7 @@
     VkCmdBuffer                    cmdBuffer,
     VkImage                        image,
     VkImageLayout                  imageLayout,
-    const VkClearColor            *pColor,
+    const VkClearColorValue       *pColor,
     uint32_t                       rangeCount,
     const VkImageSubresourceRange *pRanges)
 {
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 643399a..3074ab1 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -8415,7 +8415,7 @@
 
 void PreCmdClearColorImage(
     VkCmdBuffer cmdBuffer,
-    const VkClearColor* pColor,
+    const VkClearColorValue* pColor,
     const VkImageSubresourceRange* pRanges)
 {
     if(cmdBuffer == nullptr)
@@ -8481,7 +8481,7 @@
     VkCmdBuffer cmdBuffer,
     VkImage image,
     VkImageLayout imageLayout,
-    const VkClearColor* pColor,
+    const VkClearColorValue* pColor,
     uint32_t rangeCount,
     const VkImageSubresourceRange* pRanges)
 {
diff --git a/loader/trampoline.c b/loader/trampoline.c
index ef8e4f5..f2239ff 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -990,7 +990,7 @@
     disp->CmdFillBuffer(cmdBuffer, destBuffer, destOffset, fillSize, data);
 }
 
-LOADER_EXPORT void VKAPI vkCmdClearColorImage(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColor* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges)
+LOADER_EXPORT void VKAPI vkCmdClearColorImage(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges)
 {
     const VkLayerDispatchTable *disp;
 
@@ -1008,7 +1008,7 @@
     disp->CmdClearDepthStencilImage(cmdBuffer, image, imageLayout, depth, stencil, rangeCount, pRanges);
 }
 
-LOADER_EXPORT void VKAPI vkCmdClearColorAttachment(VkCmdBuffer cmdBuffer, uint32_t colorAttachment, VkImageLayout imageLayout, const VkClearColor* pColor, uint32_t rectCount, const VkRect3D* pRects)
+LOADER_EXPORT void VKAPI vkCmdClearColorAttachment(VkCmdBuffer cmdBuffer, uint32_t colorAttachment, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rectCount, const VkRect3D* pRects)
 {
     const VkLayerDispatchTable *disp;
 
diff --git a/tests/blit_tests.cpp b/tests/blit_tests.cpp
index 08f9dbf..e421efe 100644
--- a/tests/blit_tests.cpp
+++ b/tests/blit_tests.cpp
@@ -1164,17 +1164,13 @@
 
 class VkCmdClearColorImageTest : public VkCmdBlitImageTest {
 protected:
-    VkCmdClearColorImageTest() : test_raw_(false) {}
-    VkCmdClearColorImageTest(bool test_raw) : test_raw_(test_raw) {}
+    VkCmdClearColorImageTest() {}
 
     virtual void SetUp()
     {
         VkCmdBlitTest::SetUp();
 
-        if (test_raw_)
-            init_test_formats();
-        else
-            init_test_formats(VK_FORMAT_FEATURE_CONVERSION_BIT);
+        init_test_formats(VK_FORMAT_FEATURE_CONVERSION_BIT);
 
         ASSERT_NE(true, test_formats_.empty());
     }
@@ -1184,25 +1180,23 @@
         uint32_t raw[4];
     };
 
-    bool test_raw_;
-
-    std::vector<uint8_t> color_to_raw(VkFormat format, const float color[4])
+    std::vector<uint8_t> color_to_raw(VkFormat format, const VkClearColorValue &color)
     {
         std::vector<uint8_t> raw;
 
         // TODO support all formats
         switch (format) {
         case VK_FORMAT_R8G8B8A8_UNORM:
-            raw.push_back((uint8_t)(color[0] * 255.0f));
-            raw.push_back((uint8_t)(color[1] * 255.0f));
-            raw.push_back((uint8_t)(color[2] * 255.0f));
-            raw.push_back((uint8_t)(color[3] * 255.0f));
+            raw.push_back((uint8_t)(color.f32[0] * 255.0f));
+            raw.push_back((uint8_t)(color.f32[1] * 255.0f));
+            raw.push_back((uint8_t)(color.f32[2] * 255.0f));
+            raw.push_back((uint8_t)(color.f32[3] * 255.0f));
             break;
         case VK_FORMAT_B8G8R8A8_UNORM:
-            raw.push_back((uint8_t)(color[2] * 255.0f));
-            raw.push_back((uint8_t)(color[1] * 255.0f));
-            raw.push_back((uint8_t)(color[0] * 255.0f));
-            raw.push_back((uint8_t)(color[3] * 255.0f));
+            raw.push_back((uint8_t)(color.f32[2] * 255.0f));
+            raw.push_back((uint8_t)(color.f32[1] * 255.0f));
+            raw.push_back((uint8_t)(color.f32[0] * 255.0f));
+            raw.push_back((uint8_t)(color.f32[3] * 255.0f));
             break;
         default:
             break;
@@ -1211,41 +1205,8 @@
         return raw;
     }
 
-    std::vector<uint8_t> color_to_raw(VkFormat format, const uint32_t color[4])
-    {
-        std::vector<uint8_t> raw;
-
-        // TODO support all formats
-        switch (format) {
-        case VK_FORMAT_R8G8B8A8_UNORM:
-            raw.push_back(static_cast<uint8_t>(color[0]));
-            raw.push_back(static_cast<uint8_t>(color[1]));
-            raw.push_back(static_cast<uint8_t>(color[2]));
-            raw.push_back(static_cast<uint8_t>(color[3]));
-            break;
-        case VK_FORMAT_B8G8R8A8_UNORM:
-            raw.push_back(static_cast<uint8_t>(color[2]));
-            raw.push_back(static_cast<uint8_t>(color[1]));
-            raw.push_back(static_cast<uint8_t>(color[0]));
-            raw.push_back(static_cast<uint8_t>(color[3]));
-            break;
-        default:
-            break;
-        }
-
-        return raw;
-    }
-
-    std::vector<uint8_t> color_to_raw(VkFormat format, const VkClearColor &color)
-    {
-        if (color.useRawValue)
-            return color_to_raw(format, color.color.rawColor);
-        else
-            return color_to_raw(format, color.color.floatColor);
-    }
-
     void test_clear_color_image(const VkImageCreateInfo &img_info,
-                                const VkClearColor &clear_color,
+                                const VkClearColorValue &clear_color,
                                 const std::vector<VkImageSubresourceRange> &ranges)
     {
         vk_testing::Image img;
@@ -1322,8 +1283,8 @@
                                 const float color[4],
                                 const std::vector<VkImageSubresourceRange> &ranges)
     {
-        VkClearColor c = {};
-        memcpy(c.color.floatColor, color, sizeof(c.color.floatColor));
+        VkClearColorValue c = {};
+        memcpy(c.f32, color, sizeof(c.f32));
         test_clear_color_image(img_info, c, ranges);
     }
 };
@@ -1361,70 +1322,6 @@
     }
 }
 
-class VkCmdClearColorImageRawTest : public VkCmdClearColorImageTest {
-protected:
-    VkCmdClearColorImageRawTest() : VkCmdClearColorImageTest(true) {}
-
-    void test_clear_color_image_raw(const VkImageCreateInfo &img_info,
-                                    const uint32_t color[4],
-                                    const std::vector<VkImageSubresourceRange> &ranges)
-    {
-        VkClearColor c = {};
-        c.useRawValue = true;
-        memcpy(c.color.rawColor, color, sizeof(c.color.rawColor));
-        test_clear_color_image(img_info, c, ranges);
-    }
-};
-
-TEST_F(VkCmdClearColorImageRawTest, Basic)
-{
-    for (std::vector<vk_testing::Device::Format>::const_iterator it = test_formats_.begin();
-         it != test_formats_.end(); it++) {
-        const uint32_t color[4] = { 0x11111111, 0x22222222, 0x33333333, 0x44444444 };
-        VkFormatProperties props;
-        VkResult err;
-
-        err = vkGetPhysicalDeviceFormatInfo(dev_.gpu().obj(), it->format, &props);
-        ASSERT_EQ(err, VK_SUCCESS);
-
-        if (it->tiling == VK_IMAGE_TILING_LINEAR && !(props.linearTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT))
-            continue;
-
-        if (it->tiling == VK_IMAGE_TILING_OPTIMAL && !(props.optimalTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT))
-            continue;
-
-        // not sure what to do here
-        if (it->format == VK_FORMAT_UNDEFINED ||
-            (it->format >= VK_FORMAT_R8G8B8_UNORM &&
-             it->format <= VK_FORMAT_R8G8B8_SRGB) ||
-            (it->format >= VK_FORMAT_B8G8R8_UNORM &&
-             it->format <= VK_FORMAT_B8G8R8_SRGB) ||
-            (it->format >= VK_FORMAT_R16G16B16_UNORM &&
-             it->format <= VK_FORMAT_R16G16B16_SFLOAT) ||
-            (it->format >= VK_FORMAT_R32G32B32_UINT &&
-             it->format <= VK_FORMAT_R32G32B32_SFLOAT) ||
-            it->format == VK_FORMAT_R64G64B64_SFLOAT ||
-            it->format == VK_FORMAT_R64G64B64A64_SFLOAT ||
-            (it->format >= VK_FORMAT_D16_UNORM &&
-             it->format <= VK_FORMAT_D32_SFLOAT_S8_UINT))
-            continue;
-
-        VkImageCreateInfo img_info = vk_testing::Image::create_info();
-        img_info.imageType = VK_IMAGE_TYPE_2D;
-        img_info.format = it->format;
-        img_info.extent.width = 64;
-        img_info.extent.height = 64;
-        img_info.tiling = it->tiling;
-        img_info.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
-
-        const VkImageSubresourceRange range =
-            vk_testing::Image::subresource_range(img_info, VK_IMAGE_ASPECT_COLOR);
-        std::vector<VkImageSubresourceRange> ranges(&range, &range + 1);
-
-        test_clear_color_image_raw(img_info, color, ranges);
-    }
-}
-
 class VkCmdClearDepthStencilTest : public VkCmdBlitImageTest {
 protected:
     virtual void SetUp()
diff --git a/tests/render_tests.cpp b/tests/render_tests.cpp
index 70d53eb..197e4a4 100644
--- a/tests/render_tests.cpp
+++ b/tests/render_tests.cpp
@@ -4151,11 +4151,10 @@
 
     /* clear via load op to full green */
     m_clear_via_load_op = true;
-    m_clear_color.useRawValue = false;
-    m_clear_color.color.floatColor[0] = 0;
-    m_clear_color.color.floatColor[1] = 1;
-    m_clear_color.color.floatColor[2] = 0;
-    m_clear_color.color.floatColor[3] = 0;
+    m_clear_color.f32[0] = 0;
+    m_clear_color.f32[1] = 1;
+    m_clear_color.f32[2] = 0;
+    m_clear_color.f32[3] = 0;
     ASSERT_NO_FATAL_FAILURE(InitRenderTarget());
 
     VkCommandBufferObj cmdBuffer(m_device);
@@ -4175,11 +4174,10 @@
 
     /* clear via load op to full red */
     m_clear_via_load_op = true;
-    m_clear_color.useRawValue = false;
-    m_clear_color.color.floatColor[0] = 1;
-    m_clear_color.color.floatColor[1] = 0;
-    m_clear_color.color.floatColor[2] = 0;
-    m_clear_color.color.floatColor[3] = 0;
+    m_clear_color.f32[0] = 1;
+    m_clear_color.f32[1] = 0;
+    m_clear_color.f32[2] = 0;
+    m_clear_color.f32[3] = 0;
     ASSERT_NO_FATAL_FAILURE(InitRenderTarget());
 
     VkCommandBufferObj cmdBuffer(m_device);
@@ -4193,12 +4191,11 @@
     /* Now, partway through this renderpass we want to clear the color
      * attachment again, this time to green.
      */
-    VkClearColor clear_color;
-    clear_color.useRawValue = false;
-    clear_color.color.floatColor[0] = 0;
-    clear_color.color.floatColor[1] = 1;
-    clear_color.color.floatColor[2] = 0;
-    clear_color.color.floatColor[3] = 0;
+    VkClearColorValue clear_color;
+    clear_color.f32[0] = 0;
+    clear_color.f32[1] = 1;
+    clear_color.f32[2] = 0;
+    clear_color.f32[3] = 0;
     VkRect3D clear_rect = { { 0, 0, 0 }, { (int)m_width, (int)m_height, 1 } };
     vkCmdClearColorAttachment(cmdBuffer.obj(), 0,
                               VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 756a619..a38ad84 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -52,11 +52,10 @@
 {
 
     // clear the back buffer to dark grey
-    m_clear_color.color.rawColor[0] = 64;
-    m_clear_color.color.rawColor[1] = 64;
-    m_clear_color.color.rawColor[2] = 64;
-    m_clear_color.color.rawColor[3] = 0;
-    m_clear_color.useRawValue = true;
+    m_clear_color.f32[0] = 0.25f;
+    m_clear_color.f32[1] = 0.25f;
+    m_clear_color.f32[2] = 0.25f;
+    m_clear_color.f32[3] = 0.0f;
 }
 
 VkRenderFramework::~VkRenderFramework()
@@ -294,7 +293,7 @@
 {
     std::vector<VkAttachmentLoadOp> load_ops;
     std::vector<VkAttachmentStoreOp> store_ops;
-    std::vector<VkClearColor> clear_colors;
+    std::vector<VkClearColorValue> clear_colors;
 
     uint32_t i;
 
@@ -1273,7 +1272,7 @@
     vkCmdPipelineBarrier(obj(), src_stages, dest_stages, byRegion, memBarrierCount, ppMemBarriers);
 }
 
-void VkCommandBufferObj::ClearAllBuffers(VkClearColor clear_color, float depth_clear_color, uint32_t stencil_clear_color,
+void VkCommandBufferObj::ClearAllBuffers(VkClearColorValue clear_color, float depth_clear_color, uint32_t stencil_clear_color,
                                           VkDepthStencilObj *depthStencilObj)
 {
     uint32_t i;
diff --git a/tests/vkrenderframework.h b/tests/vkrenderframework.h
index 715648f..c1d52fa 100644
--- a/tests/vkrenderframework.h
+++ b/tests/vkrenderframework.h
@@ -122,7 +122,7 @@
     VkFormat                            m_render_target_fmt;
     VkFormat                            m_depth_stencil_fmt;
     VkColorAttachmentBindInfo           m_colorBindings[8];
-    VkClearColor                        m_clear_color;
+    VkClearColorValue                   m_clear_color;
     bool                                m_clear_via_load_op;
     float                               m_depth_clear_color;
     uint32_t                            m_stencil_clear_color;
@@ -171,7 +171,7 @@
     void PipelineBarrier(VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages, bool32_t byRegion, uint32_t memBarrierCount, const void** ppMemBarriers);
     void AddRenderTarget(VkImageObj *renderTarget);
     void AddDepthStencil();
-    void ClearAllBuffers(VkClearColor clear_color, float depth_clear_color, uint32_t stencil_clear_color, VkDepthStencilObj *depthStencilObj);
+    void ClearAllBuffers(VkClearColorValue clear_color, float depth_clear_color, uint32_t stencil_clear_color, VkDepthStencilObj *depthStencilObj);
     void PrepareAttachments();
     void AddMemoryRefs(vk_testing::Object &vkObject);
     void AddMemoryRefs(uint32_t ref_count, const VkDeviceMemory *mem);
diff --git a/vulkan.py b/vulkan.py
index c8e9b8f..ffba32c 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -734,7 +734,7 @@
             [Param("VkCmdBuffer", "cmdBuffer"),
              Param("VkImage", "image"),
              Param("VkImageLayout", "imageLayout"),
-             Param("const VkClearColor*", "pColor"),
+             Param("const VkClearColorValue*", "pColor"),
              Param("uint32_t", "rangeCount"),
              Param("const VkImageSubresourceRange*", "pRanges")]),
 
@@ -751,7 +751,7 @@
             [Param("VkCmdBuffer", "cmdBuffer"),
              Param("uint32_t", "colorAttachment"),
              Param("VkImageLayout", "imageLayout"),
-             Param("const VkClearColor*", "pColor"),
+             Param("const VkClearColorValue*", "pColor"),
              Param("uint32_t", "rectCount"),
              Param("const VkRect3D*", "pRects")]),