summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Zulauf <jzulauf@lunarg.com>2018-10-29 14:12:05 -0600
committerJohn Zulauf <32470354+jzulauf-lunarg@users.noreply.github.com>2018-11-06 10:03:27 -0700
commitd87e81dbc25ee0d0316e388f42e99baba348bfb5 (patch)
tree7028ab73f77798c5e64cd159ab1de728a4b7d091
parent0989083cdcf17b8e791de8d43022ec931f1c907a (diff)
downloadVulkan-ValidationLayers-d87e81dbc25ee0d0316e388f42e99baba348bfb5.tar.gz
Vulkan-ValidationLayers-d87e81dbc25ee0d0316e388f42e99baba348bfb5.tar.bz2
Vulkan-ValidationLayers-d87e81dbc25ee0d0316e388f42e99baba348bfb5.zip
layers: Fix false error: push descriptor not set
Prevent false positive regarding push descriptors that have been set, not being set. This fix avoids the false positive but adds no additional push descriptor validation. Change-Id: I9a75db913927742a1f39e92fbdb177a3ce081117
-rw-r--r--layers/core_validation.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index f2f7dd0b3..a57722b29 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -1214,6 +1214,14 @@ static bool ValidateCmdBufDrawState(layer_data *dev_data, GLOBAL_CB_NODE *cb_nod
for (const auto &set_binding_pair : pPipe->active_slots) {
uint32_t setIndex = set_binding_pair.first;
+
+ // TODO -- remove this continue path when CmdPushDescriptorSet is implemented, for now it prevents a false positive
+ if ((setIndex < pipeline_layout.set_layouts.size()) && pipeline_layout.set_layouts[setIndex] &&
+ pipeline_layout.set_layouts[setIndex]->IsPushDescriptor()) {
+ // Push descriptors currently don't record required state for this validation
+ continue;
+ }
+
// If valid set is not bound throw an error
if ((state.boundDescriptorSets.size() <= setIndex) || (!state.boundDescriptorSets[setIndex])) {
result |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,