diff options
| author | Chris Forbes <chrisforbes@google.com> | 2016-06-29 18:15:41 +1200 |
|---|---|---|
| committer | Chris Forbes <chrisforbes@google.com> | 2016-07-01 17:44:15 +1200 |
| commit | 0ec1475b5961db79fa9486c5eceb4526ffdd7ee0 (patch) | |
| tree | bd95a29d424af4cfebf4a830544aea38f716751f /layers/core_validation.cpp | |
| parent | e958d92cfb90249a55134853e0ab9ea0c5d257de (diff) | |
| download | usermoji-0ec1475b5961db79fa9486c5eceb4526ffdd7ee0.tar.xz | |
layers: Simplify draw-time subpass sample count handling
Renderpass creation has already failed for any cases that would hit this
logic.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Diffstat (limited to 'layers/core_validation.cpp')
| -rw-r--r-- | layers/core_validation.cpp | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index dd13079f..a71c5bfc 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -2859,31 +2859,18 @@ static bool validatePipelineDrawtimeState(layer_data const *my_data, reinterpret_cast<const uint64_t &>(pPipeline->pipeline)); } - VkSampleCountFlagBits subpass_num_samples = VkSampleCountFlagBits(0); + unsigned subpass_num_samples = 0; for (i = 0; i < subpass_desc->colorAttachmentCount; i++) { - VkSampleCountFlagBits samples; - - if (subpass_desc->pColorAttachments[i].attachment == VK_ATTACHMENT_UNUSED) - continue; - - samples = render_pass_info->pAttachments[subpass_desc->pColorAttachments[i].attachment].samples; - if (subpass_num_samples == static_cast<VkSampleCountFlagBits>(0)) { - subpass_num_samples = samples; - } else if (subpass_num_samples != samples) { - subpass_num_samples = static_cast<VkSampleCountFlagBits>(-1); - break; - } + auto attachment = subpass_desc->pColorAttachments[i].attachment; + if (attachment != VK_ATTACHMENT_UNUSED) + subpass_num_samples |= (unsigned)render_pass_info->pAttachments[attachment].samples; } - if ((subpass_desc->pDepthStencilAttachment != NULL) && - (subpass_desc->pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED)) { - const VkSampleCountFlagBits samples = - render_pass_info->pAttachments[subpass_desc->pDepthStencilAttachment->attachment].samples; - if (subpass_num_samples == static_cast<VkSampleCountFlagBits>(0)) - subpass_num_samples = samples; - else if (subpass_num_samples != samples) - subpass_num_samples = static_cast<VkSampleCountFlagBits>(-1); + if (subpass_desc->pDepthStencilAttachment && + subpass_desc->pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED) { + auto attachment = subpass_desc->pDepthStencilAttachment->attachment; + subpass_num_samples |= (unsigned)render_pass_info->pAttachments[attachment].samples; } if (subpass_num_samples && pso_num_samples != subpass_num_samples) { |
