diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2017-02-28 14:18:04 -0700 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2017-03-13 16:02:59 -0600 |
| commit | 2a9110e8c18c2f58617398ca7e1bb734aff026a0 (patch) | |
| tree | 6c72620250ec54545995e6106897fa2be0274a52 /layers/parameter_validation.cpp | |
| parent | 5252dc78b0cbef8df5c234b4f04609c1b59dab6a (diff) | |
| download | usermoji-2a9110e8c18c2f58617398ca7e1bb734aff026a0.tar.xz | |
layers: Validate device feature multiDrawIndirect
Change-Id: Iaf9daa2bc1e0fe301fb28b6901af2687c232d9a8
Diffstat (limited to 'layers/parameter_validation.cpp')
| -rw-r--r-- | layers/parameter_validation.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/layers/parameter_validation.cpp b/layers/parameter_validation.cpp index e81205ff..8cd7df74 100644 --- a/layers/parameter_validation.cpp +++ b/layers/parameter_validation.cpp @@ -4436,6 +4436,11 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuff layer_data *my_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map); assert(my_data != NULL); + if (!my_data->physical_device_features.multiDrawIndirect && ((count > 1))) { + skip = log_msg(my_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, + DEVICE_FEATURE, LayerName, + "CmdDrawIndirect(): Device feature multiDrawIndirect disabled: count must be 0 or 1 but is %d", count); + } skip |= parameter_validation_vkCmdDrawIndirect(my_data->report_data, buffer, offset, count, stride); if (!skip) { @@ -4448,7 +4453,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, bool skip = false; layer_data *my_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map); assert(my_data != NULL); - + if (!my_data->physical_device_features.multiDrawIndirect && ((count > 1))) { + skip = + log_msg(my_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, + DEVICE_FEATURE, LayerName, + "CmdDrawIndexedIndirect(): Device feature multiDrawIndirect disabled: count must be 0 or 1 but is %d", count); + } skip |= parameter_validation_vkCmdDrawIndexedIndirect(my_data->report_data, buffer, offset, count, stride); if (!skip) { |
