summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/anv_cmd_buffer.c
diff options
context:
space:
mode:
authorIago Toral Quiroga <itoral@igalia.com>2018-01-25 09:43:22 +0100
committerIago Toral Quiroga <itoral@igalia.com>2018-01-26 14:06:46 +0100
commit14f6275c92f1aa2c76308132f58096b66fe3901a (patch)
treef9736302dcd156253bbdeb003a0ddeb5e82a2f34 /src/intel/vulkan/anv_cmd_buffer.c
parente28233a5270f8d862251835b340ea7634547ff36 (diff)
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>
Diffstat (limited to 'src/intel/vulkan/anv_cmd_buffer.c')
-rw-r--r--src/intel/vulkan/anv_cmd_buffer.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/intel/vulkan/anv_cmd_buffer.c b/src/intel/vulkan/anv_cmd_buffer.c
index bf80061c6d4..521cf6b6a54 100644
--- a/src/intel/vulkan/anv_cmd_buffer.c
+++ b/src/intel/vulkan/anv_cmd_buffer.c
@@ -913,8 +913,7 @@ void anv_CmdPushDescriptorSetKHR(
assert(_set < MAX_SETS);
- const struct anv_descriptor_set_layout *set_layout =
- layout->set[_set].layout;
+ struct anv_descriptor_set_layout *set_layout = layout->set[_set].layout;
struct anv_push_descriptor_set *push_set =
anv_cmd_buffer_get_push_descriptor_set(cmd_buffer,
@@ -1006,8 +1005,7 @@ void anv_CmdPushDescriptorSetWithTemplateKHR(
assert(_set < MAX_PUSH_DESCRIPTORS);
- const struct anv_descriptor_set_layout *set_layout =
- layout->set[_set].layout;
+ struct anv_descriptor_set_layout *set_layout = layout->set[_set].layout;
struct anv_push_descriptor_set *push_set =
anv_cmd_buffer_get_push_descriptor_set(cmd_buffer,