aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2016-06-29 10:50:41 +1200
committerChris Forbes <chrisforbes@google.com>2016-06-30 11:02:13 +1200
commit04bf6b0684a05b0cfa49dbea77846ced120ffb5a (patch)
tree300847827bd56d6ea81b2321bc7046e845a93076
parent8acd594c445c59c48932159eaf10dd138ba96994 (diff)
downloadusermoji-04bf6b0684a05b0cfa49dbea77846ced120ffb5a.tar.xz
layers: Don't produce spurious validation errors for sample count
Previously we would emit a spurious validation error if the only color or depth attachment references were VK_ATTACHMENT_UNUSED. Signed-off-by: Chris Forbes <chrisforbes@google.com>
-rw-r--r--layers/core_validation.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index ab14ca14..a020a4c3 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -2844,7 +2844,6 @@ static bool validatePipelineDrawtimeState(layer_data const *my_data,
if (pCB->activeRenderPass) {
const VkRenderPassCreateInfo *render_pass_info = pCB->activeRenderPass->pCreateInfo;
const VkSubpassDescription *subpass_desc = &render_pass_info->pSubpasses[pCB->activeSubpass];
- VkSampleCountFlagBits subpass_num_samples = VkSampleCountFlagBits(0);
uint32_t i;
const safe_VkPipelineColorBlendStateCreateInfo *color_blend_state = pPipeline->graphicsPipelineCI.pColorBlendState;
@@ -2860,6 +2859,8 @@ static bool validatePipelineDrawtimeState(layer_data const *my_data,
reinterpret_cast<const uint64_t &>(pPipeline->pipeline));
}
+ VkSampleCountFlagBits subpass_num_samples = VkSampleCountFlagBits(0);
+
for (i = 0; i < subpass_desc->colorAttachmentCount; i++) {
VkSampleCountFlagBits samples;
@@ -2874,6 +2875,7 @@ static bool validatePipelineDrawtimeState(layer_data const *my_data,
break;
}
}
+
if ((subpass_desc->pDepthStencilAttachment != NULL) &&
(subpass_desc->pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED)) {
const VkSampleCountFlagBits samples =
@@ -2884,8 +2886,7 @@ static bool validatePipelineDrawtimeState(layer_data const *my_data,
subpass_num_samples = static_cast<VkSampleCountFlagBits>(-1);
}
- if (((subpass_desc->colorAttachmentCount > 0) || (subpass_desc->pDepthStencilAttachment != NULL)) &&
- (pso_num_samples != subpass_num_samples)) {
+ if (subpass_num_samples && pso_num_samples != subpass_num_samples) {
skip_call |=
log_msg(my_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
reinterpret_cast<const uint64_t &>(pPipeline->pipeline), __LINE__, DRAWSTATE_NUM_SAMPLES_MISMATCH, "DS",