aboutsummaryrefslogtreecommitdiff
path: root/layers/param_checker.cpp
diff options
context:
space:
mode:
authorMichael Lentine <mlentine@google.com>2015-11-24 09:48:23 -0600
committerJeremy Hayes <jeremy@lunarg.com>2015-11-26 12:43:52 -0700
commitae652a469dcae827d1317a65b1f51aa3c6ba6f50 (patch)
tree4331d33224edcb7ee6a467441adc5532db73a42b /layers/param_checker.cpp
parent81a78396b853ff037a93fe01348b30d5eba377ca (diff)
downloadusermoji-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.cpp24
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);