anv/descriptor_set: add reference counting for descriptor set layouts
authorIago Toral Quiroga <itoral@igalia.com>
Thu, 25 Jan 2018 08:43:22 +0000 (09:43 +0100)
committerIago Toral Quiroga <itoral@igalia.com>
Fri, 26 Jan 2018 13:06:46 +0000 (14:06 +0100)
commit14f6275c92f1aa2c76308132f58096b66fe3901a
treef9736302dcd156253bbdeb003a0ddeb5e82a2f34
parente28233a5270f8d862251835b340ea7634547ff36
anv/descriptor_set: add reference counting for descriptor set layouts

The spec states that descriptor set layouts can be destroyed almost
at any time:

   "VkDescriptorSetLayout objects may be accessed by commands that
    operate on descriptor sets allocated using that layout, and those
    descriptor sets must not be updated with vkUpdateDescriptorSets
    after the descriptor set layout has been destroyed. Otherwise,
    descriptor set layouts can be destroyed any time they are not in
    use by an API command."

v2: allocate off the device allocator with DEVICE scope (Jason)

Fixes the following work-in-progress CTS tests:
dEQP-VK.api.descriptor_set.descriptor_set_layout_lifetime.graphics
dEQP-VK.api.descriptor_set.descriptor_set_layout_lifetime.compute

Suggested-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/vulkan/anv_cmd_buffer.c
src/intel/vulkan/anv_descriptor_set.c
src/intel/vulkan/anv_private.h