aboutsummaryrefslogtreecommitdiff
path: root/layers/image.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'layers/image.cpp')
-rw-r--r--layers/image.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/layers/image.cpp b/layers/image.cpp
index 5f354502..ecfcc38d 100644
--- a/layers/image.cpp
+++ b/layers/image.cpp
@@ -664,6 +664,16 @@ VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
{
VkBool32 skipCall = VK_FALSE;
layer_data *device_data = get_my_data_ptr(get_dispatch_key(commandBuffer), layer_data_map);
+
+ if (imageLayout != VK_IMAGE_LAYOUT_GENERAL ||
+ imageLayout != VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL)
+ {
+ skipCall |= log_msg(device_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
+ (uint64_t)commandBuffer, __LINE__, IMAGE_INVALID_LAYOUT, "IMAGE",
+ "vkCmdClearColorImage parameter, imageLayout, must be VK_IMAGE_LAYOUT_GENERAL or "
+ "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL");
+ }
+
// For each range, image aspect must be color only
for (uint32_t i = 0; i < rangeCount; i++) {
if (pRanges[i].aspectMask != VK_IMAGE_ASPECT_COLOR_BIT) {