From: Danylo Piliaiev Date: Tue, 12 Mar 2019 15:13:47 +0000 (+0200) Subject: anv: Fix destroying descriptor sets when pool gets reset X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9c80be956fff4d4786a9b77c6b9d3fec67ff2377;p=mesa.git anv: Fix destroying descriptor sets when pool gets reset pool->next and pool->free_list were reset before their usage in anv_descriptor_pool_free_set Fixes: 775aabdd "anv: destroy descriptor sets when pool gets reset" Signed-off-by: Danylo Piliaiev Reviewed-by: Jason Ekstrand Reviewed-by: Lionel Landwerlin --- diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c index f34a44aefd7..a648105970d 100644 --- a/src/intel/vulkan/anv_descriptor_set.c +++ b/src/intel/vulkan/anv_descriptor_set.c @@ -627,6 +627,11 @@ VkResult anv_ResetDescriptorPool( ANV_FROM_HANDLE(anv_device, device, _device); ANV_FROM_HANDLE(anv_descriptor_pool, pool, descriptorPool); + list_for_each_entry_safe(struct anv_descriptor_set, set, + &pool->desc_sets, pool_link) { + anv_descriptor_set_destroy(device, pool, set); + } + pool->next = 0; pool->free_list = EMPTY; @@ -636,12 +641,6 @@ VkResult anv_ResetDescriptorPool( } anv_state_stream_finish(&pool->surface_state_stream); - - list_for_each_entry_safe(struct anv_descriptor_set, set, - &pool->desc_sets, pool_link) { - anv_descriptor_set_destroy(device, pool, set); - } - anv_state_stream_init(&pool->surface_state_stream, &device->surface_state_pool, 4096); pool->surface_state_free_list = NULL;