aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2017-10-12 12:25:00 -0700
committerChris Forbes <chrisf@ijw.co.nz>2017-10-12 13:04:55 -0700
commit49c306bc491d883c1fd70154b62dfd42cba64599 (patch)
treef8386b4a43a6c0571d943a1d99dc7a45b2401be7
parenta92a2ef006274c08585058a1edbe5e911aea801e (diff)
downloadusermoji-49c306bc491d883c1fd70154b62dfd42cba64599.tar.xz
layers: Only include self-dependencies in subpass->dep index
Only self-dependencies permit barriers within the renderpass, so we don't want any other dependencies here. Fixes #2123
-rw-r--r--layers/core_validation.cpp4
-rw-r--r--layers/core_validation_types.h2
2 files changed, 2 insertions, 4 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 995f5d3e..b12dc861 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -7723,13 +7723,11 @@ static bool CreatePassDAG(const layer_data *dev_data, const VkRenderPassCreateIn
"Dependency graph must be specified such that an earlier pass cannot depend on a later pass.");
} else if (dependency.srcSubpass == dependency.dstSubpass) {
has_self_dependency[dependency.srcSubpass] = true;
+ subpass_to_dep_index[dependency.srcSubpass] = i;
} else {
subpass_to_node[dependency.dstSubpass].prev.push_back(dependency.srcSubpass);
subpass_to_node[dependency.srcSubpass].next.push_back(dependency.dstSubpass);
}
- if (dependency.srcSubpass != VK_SUBPASS_EXTERNAL) {
- subpass_to_dep_index[dependency.srcSubpass] = i;
- }
}
return skip;
}
diff --git a/layers/core_validation_types.h b/layers/core_validation_types.h
index 7038d822..11fbd3e3 100644
--- a/layers/core_validation_types.h
+++ b/layers/core_validation_types.h
@@ -379,7 +379,7 @@ struct RENDER_PASS_STATE : public BASE_NODE {
safe_VkRenderPassCreateInfo createInfo;
std::vector<bool> hasSelfDependency;
std::vector<DAGNode> subpassToNode;
- std::vector<int32_t> subpass_to_dependency_index; // Map srcSubpass to its pDependency index (or -1 if none)
+ std::vector<int32_t> subpass_to_dependency_index; // srcSubpass to dependency index of self dep, or -1 if none
std::unordered_map<uint32_t, bool> attachment_first_read;
RENDER_PASS_STATE(VkRenderPassCreateInfo const *pCreateInfo) : createInfo(pCreateInfo) {}