diff options
author | John Zulauf <jzulauf@lunarg.com> | 2018-10-29 14:12:05 -0600 |
---|---|---|
committer | John Zulauf <32470354+jzulauf-lunarg@users.noreply.github.com> | 2018-11-06 10:03:27 -0700 |
commit | d87e81dbc25ee0d0316e388f42e99baba348bfb5 (patch) | |
tree | 7028ab73f77798c5e64cd159ab1de728a4b7d091 | |
parent | 0989083cdcf17b8e791de8d43022ec931f1c907a (diff) | |
download | Vulkan-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.cpp | 8 |
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, |