diff options
Diffstat (limited to 'layers/image.cpp')
| -rw-r--r-- | layers/image.cpp | 10 |
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) { |
