aboutsummaryrefslogtreecommitdiff
path: root/layers/buffer_validation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'layers/buffer_validation.cpp')
-rw-r--r--layers/buffer_validation.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/layers/buffer_validation.cpp b/layers/buffer_validation.cpp
index ca1f57cb..d6f87865 100644
--- a/layers/buffer_validation.cpp
+++ b/layers/buffer_validation.cpp
@@ -2824,6 +2824,21 @@ bool ValidateLayoutVsAttachmentDescription(const debug_report_data *report_data,
string_VkImageLayout(first_layout));
}
}
+ if (attachment_description.loadOp == VK_ATTACHMENT_LOAD_OP_CLEAR) {
+ if (first_layout == VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL) {
+ skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0,
+ VALIDATION_ERROR_12200c3c, "Cannot clear attachment %d with invalid first layout %s.", attachment,
+ string_VkImageLayout(first_layout));
+ }
+ }
+
+ if (attachment_description.stencilLoadOp == VK_ATTACHMENT_LOAD_OP_CLEAR) {
+ if (first_layout == VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL) {
+ skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0,
+ VALIDATION_ERROR_12200c3e, "Cannot clear attachment %d with invalid first layout %s.", attachment,
+ string_VkImageLayout(first_layout));
+ }
+ }
return skip;
}