layers: Add support code to handle in_use for missing objects
authorTobin Ehlis <tobine@google.com>
Wed, 14 Sep 2016 17:21:55 +0000 (11:21 -0600)
committerTobin Ehlis <tobine@google.com>
Thu, 22 Sep 2016 13:21:24 +0000 (07:21 -0600)
commitc9b557f81aa5e480823e8051ea1663cacb8668c4
treeda232d8fab8bffafa26fa126acf8e243f2e36253
parent43da0bd4137df812a76b7f1488f641a4c8299f35
layers: Add support code to handle in_use for missing objects

Add case block to in-use Increment/Decrement functions to handle the missing
object types that may be bound to a command buffer. The actual bindings for
these missing types will be added in a future commit.
Here are the types that were added:
VkBufferView
VkImageView
VkDescriptorPool
VkCommandPool
VkFramebuffer
VkRenderPass
VkDeviceMemory

Also added new error enums for all of these type except RENDERPASS which already
had an appropriate error enum.

Unify object BASE_NODE look-up for removeCommandBufferBinding() and
DecrementBoundResources() to use common GetStateStructPtrFromObject() function.

Finally, had to update the state-wrapping class for DescriptorPool, DeviceMemory
and RenderPass to derive from BASE_NODE so that in_use can be tracked.
layers/core_validation.cpp
layers/core_validation.h
layers/core_validation_error_enums.h
layers/core_validation_types.h
layers/vk_validation_layer_details.md