diff options
| author | Chris Forbes <chrisforbes@google.com> | 2016-06-29 10:50:41 +1200 |
|---|---|---|
| committer | Chris Forbes <chrisforbes@google.com> | 2016-06-30 11:02:13 +1200 |
| commit | 04bf6b0684a05b0cfa49dbea77846ced120ffb5a (patch) | |
| tree | 300847827bd56d6ea81b2321bc7046e845a93076 | |
| parent | 8acd594c445c59c48932159eaf10dd138ba96994 (diff) | |
| download | usermoji-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.cpp | 7 |
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", |
