aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2016-06-29 18:15:41 +1200
committerChris Forbes <chrisforbes@google.com>2016-07-01 17:44:15 +1200
commit0ec1475b5961db79fa9486c5eceb4526ffdd7ee0 (patch)
treebd95a29d424af4cfebf4a830544aea38f716751f /layers/core_validation.cpp
parente958d92cfb90249a55134853e0ab9ea0c5d257de (diff)
downloadusermoji-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.cpp29
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) {