diff options
| author | Dustin Graves <dustin@lunarg.com> | 2016-05-06 10:16:06 -0600 |
|---|---|---|
| committer | Dustin Graves <dustin@lunarg.com> | 2016-05-06 10:16:06 -0600 |
| commit | 8dca61942ed1b0510b263e35bee88b5869914d21 (patch) | |
| tree | b526bc5be9975979e64e5755e09669f63593d98d /layers/parameter_validation.cpp | |
| parent | 934abc427280adc4d0bba62adfe623a490353df9 (diff) | |
| download | usermoji-8dca61942ed1b0510b263e35bee88b5869914d21.tar.xz | |
layers: Add missing vkCmdSetStencil param checks
Add missing parameter validation for vkCmdSetStencil* functions.
Change-Id: Ib2d2527341815412bc441427ba1dbf6d3826f3c6
Diffstat (limited to 'layers/parameter_validation.cpp')
| -rw-r--r-- | layers/parameter_validation.cpp | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/layers/parameter_validation.cpp b/layers/parameter_validation.cpp index 9546e4c3..5bec9dec 100644 --- a/layers/parameter_validation.cpp +++ b/layers/parameter_validation.cpp @@ -3122,17 +3122,41 @@ vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float m VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) { - get_dispatch_table(pc_device_table_map, commandBuffer)->CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask); + bool skipCall = false; + layer_data *my_data = get_my_data_ptr(get_dispatch_key(commandBuffer), layer_data_map); + assert(my_data != NULL); + + skipCall |= parameter_validation_vkCmdSetStencilCompareMask(my_data->report_data, faceMask, compareMask); + + if (!skipCall) { + get_dispatch_table(pc_device_table_map, commandBuffer)->CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask); + } } VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) { - get_dispatch_table(pc_device_table_map, commandBuffer)->CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask); + bool skipCall = false; + layer_data *my_data = get_my_data_ptr(get_dispatch_key(commandBuffer), layer_data_map); + assert(my_data != NULL); + + skipCall |= parameter_validation_vkCmdSetStencilWriteMask(my_data->report_data, faceMask, writeMask); + + if (!skipCall) { + get_dispatch_table(pc_device_table_map, commandBuffer)->CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask); + } } VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) { - get_dispatch_table(pc_device_table_map, commandBuffer)->CmdSetStencilReference(commandBuffer, faceMask, reference); + bool skipCall = false; + layer_data *my_data = get_my_data_ptr(get_dispatch_key(commandBuffer), layer_data_map); + assert(my_data != NULL); + + skipCall |= parameter_validation_vkCmdSetStencilReference(my_data->report_data, faceMask, reference); + + if (!skipCall) { + get_dispatch_table(pc_device_table_map, commandBuffer)->CmdSetStencilReference(commandBuffer, faceMask, reference); + } } VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL |
