diff options
| author | Michael Lentine <mlentine@google.com> | 2015-11-24 09:48:23 -0600 |
|---|---|---|
| committer | Jeremy Hayes <jeremy@lunarg.com> | 2015-11-26 12:43:52 -0700 |
| commit | ae652a469dcae827d1317a65b1f51aa3c6ba6f50 (patch) | |
| tree | 4331d33224edcb7ee6a467441adc5532db73a42b /layers/param_checker.cpp | |
| parent | 81a78396b853ff037a93fe01348b30d5eba377ca (diff) | |
| download | usermoji-ae652a469dcae827d1317a65b1f51aa3c6ba6f50.tar.xz | |
Update param checker.
Verify that the app isn't making an empty draw.
Diffstat (limited to 'layers/param_checker.cpp')
| -rw-r--r-- | layers/param_checker.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp index 4f0d3cc6..c94ce8f5 100644 --- a/layers/param_checker.cpp +++ b/layers/param_checker.cpp @@ -5209,6 +5209,28 @@ VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers( PostCmdBindVertexBuffers(commandBuffer, startBinding, bindingCount); } +bool PreCmdDraw( + VkCommandBuffer commandBuffer, + uint32_t vertexCount, + uint32_t instanceCount, + uint32_t firstVertex, + uint32_t firstInstance) +{ + if (vertexCount == 0) { + log_msg(mdd(commandBuffer), VK_DBG_REPORT_WARN_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", + "vkCmdDraw parameter, uint32_t vertexCount, is 0"); + return false; + } + + if (instanceCount == 0) { + log_msg(mdd(commandBuffer), VK_DBG_REPORT_WARN_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", + "vkCmdDraw parameter, uint32_t instanceCount, is 0"); + return false; + } + + return true; +} + bool PostCmdDraw( VkCommandBuffer commandBuffer, uint32_t firstVertex, @@ -5231,6 +5253,8 @@ VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdDraw( uint32_t firstVertex, uint32_t firstInstance) { + PreCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); + get_dispatch_table(pc_device_table_map, commandBuffer)->CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); PostCmdDraw(commandBuffer, firstVertex, vertexCount, firstInstance, instanceCount); |
