From 9c80be956fff4d4786a9b77c6b9d3fec67ff2377 Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Tue, 12 Mar 2019 17:13:47 +0200 Subject: [PATCH] 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 --- src/intel/vulkan/anv_descriptor_set.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) 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; -- 2.30.2